:root { --primary: #3B82F6;
  --primary-hover: #0b63f3;
  --primary-trans-10: rgba(59, 130, 246, 0.1);
  --primary-trans-20: rgba(59, 130, 246, 0.2);
  --primary-trans-50: rgba(59, 130, 246, 0.5);
  --secondary: #8B5CF6;
  --secondary-hover: #692cf3;
  --accent-hover: #c57f08;
  --base: #1F2937;
  --base-80: #000000;
  --base-90: #000000;
  --base-trans-10: rgba(31, 41, 55, 0.1);
  --base-trans-50: oklch(0.278 0.030 257 / 0.5);
  --light: #F9FAFB;
  --light-trans-20: oklch(0.985 0.002 248 / 0.2);
  --light-trans-30: oklch(0.985 0.002 248 / 0.3);
  --dark: #111827;
  --success-trans-20: rgba(16, 185, 129, 0.2);
  --danger: #EF4444;
  --danger-trans-20: rgba(239, 68, 68, 0.2);
  --space-xxs: clamp(3px, 3px + (1) * ((100vw - 320px) / 1600), 4px);
  --space-xs: 7.11px;
  --space-s: 10.67px;
  --space-m: clamp(12px, 12px + (4) * ((100vw - 320px) / 1600), 16px);
  --space-l: clamp(18px, 18px + (6) * ((100vw - 320px) / 1600), 24px);
  --space-xl: 36px;
  --space-xxl: clamp(40.5px, 40.5px + (13.5) * ((100vw - 320px) / 1600), 54px);
  --space-xxxl: clamp(60.756px, 60.756px + (20.251999999999995) * ((100vw - 320px) / 1600), 81.008px);
  --font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-heading: inherit;
  --base-font-size: 16px;
  --base-line-height: 1.6;
  --text-m: 16px;
  --text-l: 20px;
  --radius-m: 0.375rem;
  --shadow-m: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  --transition-fast: 150ms;
  --transition-base: 250ms;
  --content-gap: var(--space-m);
  --container-gap: var(--space-xl);
  --bg-body: var(--light);
  --text-body: var(--base); }
*, *::before, *::after { margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  box-sizing: border-box; }
html, body, div, h3, p, a, img, ul, li, tbody, article, figure, section { margin: 0;
  padding: 0;
  border: 0;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  vertical-align: baseline; }
h3 { display: block;
  width: fit-content;
  margin: 0;
  padding: 0;
  border: 0;
  font-size: inherit;
  font-weight: inherit;
  font-style: normal;
  line-height: inherit;
  color: inherit;
  background: transparent;
  
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  -webkit-margin-before: 0;
  -webkit-margin-after: 0;
  -webkit-margin-start: 0;
  -webkit-margin-end: 0; }
article, figure, section { display: block; }
ul { list-style: none;
  margin: 0;
  padding: 0; }
a { display: inline; }
tbody { display: table-row-group; }
img { display: block;
  max-width: 100%;
  vertical-align: middle; }
audio:not([controls]) { display: none; }
:where(section:not(section section)) { display: flex;
  flex-direction: column;
  gap: var(--container-gap); }
:where(section:not(section section)) > :where(div, ul, ol, article, aside) { display: flex;
  flex-direction: column;
  gap: var(--content-gap); }
a { text-decoration: none;
  color: inherit;
  cursor: pointer; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  } }
html { font-size: var(--base-font-size);
  line-height: var(--base-line-height);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
body { font-family: var(--font-base);
  color: var(--base);
  background-color: var(--light);
  line-height: 1.5; }
h3 { font-family: var(--font-heading);
  line-height: 1.2; }
.bg-noise::before { content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.05;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); }
.bg-overlay::before { content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  pointer-events: none; }
.bg-overlay-light::before { background: rgba(255, 255, 255, 0.5); }
.bg-overlay-primary::before { background: var(--primary-trans-50); }
.bg-overlay-gradient::before { background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.7)); }
.btn:focus { outline: 2px solid var(--primary);
  outline-offset: 2px; }
.btn:disabled { opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none; }
.btn--primary:hover { background-color: var(--primary-hover);
  border-color: var(--primary-hover); }
.btn--secondary:hover { background-color: var(--secondary-hover);
  border-color: var(--secondary-hover); }
.btn--accent:hover { background-color: var(--accent-hover);
  border-color: var(--accent-hover); }
.btn--outline-primary:hover { background-color: var(--primary);
  color: white; }
.btn--outline-secondary:hover { background-color: var(--secondary);
  color: white; }
.btn--ghost:hover { background-color: var(--primary-trans-10); }
.btn--link:hover { color: var(--primary-hover); }
.btn-group .btn:first-child { border-radius: var(--radius-m) 0 0 var(--radius-m); }
.btn-group .btn:last-child { border-radius: 0 var(--radius-m) var(--radius-m) 0; }
.btn-group .btn:not(:last-child) { border-right: none; }
.card:hover { box-shadow: var(--shadow-m); }
.card--elevated:hover { box-shadow: var(--shadow-xl); }
.card__body { padding: var(--space-m); }
.card__body--sm { padding: var(--space-s); }
.card__body--lg { padding: var(--space-l); }
.card--clickable:hover { transform: translateY(-2px); }
.form-row > * { flex: 1; }
.form-label--required::after { content: " *";
  color: var(--danger); }
.form-input:focus,
.form-select:focus,
.form-textarea:focus { outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px var(--primary-trans-20); }
.form-input.is-valid:focus,
.form-select.is-valid:focus,
.form-textarea.is-valid:focus { box-shadow: 0 0 0 3px var(--success-trans-20); }
.form-input.is-invalid:focus,
.form-select.is-invalid:focus,
.form-textarea.is-invalid:focus { box-shadow: 0 0 0 3px var(--danger-trans-20); }
.form-input:disabled,
.form-select:disabled,
.form-textarea:disabled { opacity: 0.6;
  cursor: not-allowed;
  background-color: var(--base-trans-10); }
.form-switch-input::before { content: "";
  position: absolute;
  width: 1em;
  height: 1em;
  top: 0.125em;
  left: 0.125em;
  background-color: white;
  border-radius: 50%;
  transition: transform var(--transition-fast) ease; }
.form-switch-input:checked { background-color: var(--primary); }
.form-switch-input:checked::before { transform: translateX(1.25em); }
.input-group .form-input:first-child { border-radius: var(--radius-m) 0 0 var(--radius-m); }
.input-group .form-input:last-child { border-radius: 0 var(--radius-m) var(--radius-m) 0; }
.input-group-text:first-child { border-right: none;
  border-radius: var(--radius-m) 0 0 var(--radius-m); }
.input-group-text:last-child { border-left: none;
  border-radius: 0 var(--radius-m) var(--radius-m) 0; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes ping { 75%, 100% { transform: scale(2); opacity: 0; } }
@keyframes pulse { 50% { opacity: 0.5; } }
@keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); }
  50% { transform: translateY(0); animation-timing-function: cubic-bezier(0, 0, 0.2, 1); } }
@keyframes shake { 0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
  20%, 40%, 60%, 80% { transform: translateX(5px); } }
@keyframes wiggle { 0%, 100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); } }
@keyframes fadeIn { from { opacity: 0; }
  to { opacity: 1; } }
@keyframes fadeOut { from { opacity: 1; }
  to { opacity: 0; } }
@keyframes slideInUp { from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); } }
@keyframes slideInDown { from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); } }
@keyframes slideInLeft { from { opacity: 0; transform: translateX(-20px); }
  to { opacity: 1; transform: translateX(0); } }
@keyframes slideInRight { from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); } }
@keyframes scaleIn { from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); } }
@keyframes scaleOut { from { opacity: 1; transform: scale(1); }
  to { opacity: 0; transform: scale(0.9); } }
@keyframes heartbeat { 0% { transform: scale(1); }
  14% { transform: scale(1.3); }
  28% { transform: scale(1); }
  42% { transform: scale(1.3); }
  70% { transform: scale(1); } }
@keyframes float { 0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); } }
@media (prefers-reduced-motion: reduce) { *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  } }
.focus-visible:focus-visible { outline: 2px solid var(--primary);
  outline-offset: 2px; }
@media (max-width: 639px) { .hide-mobile { display: none !important; } }
@media (min-width: 640px) and (max-width: 767px) { .hide-tablet { display: none !important; } }
@media (min-width: 1024px) { .hide-desktop { display: none !important; } }
@media (max-width: 639px) { .show-mobile { display: block !important; } }
@media (min-width: 640px) and (max-width: 767px) { .show-tablet { display: block !important; } }
@media (min-width: 1024px) { .show-desktop { display: block !important; } }
@media (min-width: 640px) { .sm:block { display: block; }
  .sm:inline-block { display: inline-block; }
  .sm:inline { display: inline; }
  .sm:flex { display: flex; }
  .sm:inline-flex { display: inline-flex; }
  .sm:grid { display: grid; }
  .sm:hidden { display: none; }
  
  .sm:flex-row { flex-direction: row; }
  .sm:flex-col { flex-direction: column; }
  
  .sm:items-start { align-items: flex-start; }
  .sm:items-center { align-items: center; }
  .sm:items-end { align-items: flex-end; }
  
  .sm:justify-start { justify-content: flex-start; }
  .sm:justify-center { justify-content: center; }
  .sm:justify-end { justify-content: flex-end; }
  .sm:justify-between { justify-content: space-between; }
  
  .sm:text-left { text-align: left; }
  .sm:text-center { text-align: center; }
  .sm:text-right { text-align: right; }
  
  .sm:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .sm:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sm:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  
  .sm:w-auto { width: auto; }
  .sm:w-full { width: 100%; }
  .sm:w-half { width: 50%; }
  .sm:w-third { width: 33.333333%; }
  .sm:w-quarter { width: 25%; } }
@media (min-width: 768px) { .md:block { display: block; }
  .md:inline-block { display: inline-block; }
  .md:inline { display: inline; }
  .md:flex { display: flex; }
  .md:inline-flex { display: inline-flex; }
  .md:grid { display: grid; }
  .md:hidden { display: none; }
  
  .md:flex-row { flex-direction: row; }
  .md:flex-col { flex-direction: column; }
  
  .md:items-start { align-items: flex-start; }
  .md:items-center { align-items: center; }
  .md:items-end { align-items: flex-end; }
  
  .md:justify-start { justify-content: flex-start; }
  .md:justify-center { justify-content: center; }
  .md:justify-end { justify-content: flex-end; }
  .md:justify-between { justify-content: space-between; }
  
  .md:text-left { text-align: left; }
  .md:text-center { text-align: center; }
  .md:text-right { text-align: right; }
  
  .md:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .md:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .md:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .md:grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  
  .md:w-auto { width: auto; }
  .md:w-full { width: 100%; }
  .md:w-half { width: 50%; }
  .md:w-third { width: 33.333333%; }
  .md:w-quarter { width: 25%; }
  
  .md:order-first { order: -9999; }
  .md:order-last { order: 9999; }
  .md:order-1 { order: 1; }
  .md:order-2 { order: 2; }
  .md:order-3 { order: 3; } }
@media (min-width: 1024px) { .lg:block { display: block; }
  .lg:inline-block { display: inline-block; }
  .lg:inline { display: inline; }
  .lg:flex { display: flex; }
  .lg:inline-flex { display: inline-flex; }
  .lg:grid { display: grid; }
  .lg:hidden { display: none; }
  
  .lg:flex-row { flex-direction: row; }
  .lg:flex-col { flex-direction: column; }
  
  .lg:items-start { align-items: flex-start; }
  .lg:items-center { align-items: center; }
  .lg:items-end { align-items: flex-end; }
  
  .lg:justify-start { justify-content: flex-start; }
  .lg:justify-center { justify-content: center; }
  .lg:justify-end { justify-content: flex-end; }
  .lg:justify-between { justify-content: space-between; }
  
  .lg:text-left { text-align: left; }
  .lg:text-center { text-align: center; }
  .lg:text-right { text-align: right; }
  
  .lg:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .lg:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lg:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lg:grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  
  .lg:w-auto { width: auto; }
  .lg:w-full { width: 100%; }
  .lg:w-half { width: 50%; }
  .lg:w-third { width: 33.333333%; }
  .lg:w-quarter { width: 25%; }
  
  .lg:order-first { order: -9999; }
  .lg:order-last { order: 9999; }
  .lg:order-1 { order: 1; }
  .lg:order-2 { order: 2; }
  .lg:order-3 { order: 3; } }
@media (min-width: 1280px) { .xl:block { display: block; }
  .xl:inline-block { display: inline-block; }
  .xl:inline { display: inline; }
  .xl:flex { display: flex; }
  .xl:inline-flex { display: inline-flex; }
  .xl:grid { display: grid; }
  .xl:hidden { display: none; }
  
  .xl:flex-row { flex-direction: row; }
  .xl:flex-col { flex-direction: column; }
  
  .xl:items-start { align-items: flex-start; }
  .xl:items-center { align-items: center; }
  .xl:items-end { align-items: flex-end; }
  
  .xl:justify-start { justify-content: flex-start; }
  .xl:justify-center { justify-content: center; }
  .xl:justify-end { justify-content: flex-end; }
  .xl:justify-between { justify-content: space-between; }
  
  .xl:text-left { text-align: left; }
  .xl:text-center { text-align: center; }
  .xl:text-right { text-align: right; }
  
  .xl:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .xl:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xl:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xl:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .xl:grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  
  .xl:w-auto { width: auto; }
  .xl:w-full { width: 100%; }
  .xl:w-half { width: 50%; }
  .xl:w-third { width: 33.333333%; }
  .xl:w-quarter { width: 25%; } }
@media (min-width: 1536px) { .xxl:block { display: block; }
  .xxl:flex { display: flex; }
  .xxl:grid { display: grid; }
  .xxl:hidden { display: none; }
  
  .xxl:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .xxl:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xxl:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xxl:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .xxl:grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (min-width: 640px) { .sm:p-xxs { padding: var(--space-xxs); }
  .sm:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .sm:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .sm:m-xxs { margin: var(--space-xxs); }
  .sm:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .sm:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .sm:gap-xxs { gap: var(--space-xxs); }
  .sm:p-xs { padding: var(--space-xs); }
  .sm:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .sm:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .sm:m-xs { margin: var(--space-xs); }
  .sm:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .sm:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .sm:gap-xs { gap: var(--space-xs); }
  .sm:p-s { padding: var(--space-s); }
  .sm:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .sm:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .sm:m-s { margin: var(--space-s); }
  .sm:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .sm:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .sm:gap-s { gap: var(--space-s); }
  .sm:p-m { padding: var(--space-m); }
  .sm:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .sm:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .sm:m-m { margin: var(--space-m); }
  .sm:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .sm:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .sm:gap-m { gap: var(--space-m); }
  .sm:p-l { padding: var(--space-l); }
  .sm:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .sm:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .sm:m-l { margin: var(--space-l); }
  .sm:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .sm:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .sm:gap-l { gap: var(--space-l); }
  .sm:p-xl { padding: var(--space-xl); }
  .sm:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .sm:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .sm:m-xl { margin: var(--space-xl); }
  .sm:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .sm:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .sm:gap-xl { gap: var(--space-xl); }
  .sm:p-xxl { padding: var(--space-xxl); }
  .sm:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .sm:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .sm:m-xxl { margin: var(--space-xxl); }
  .sm:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .sm:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .sm:gap-xxl { gap: var(--space-xxl); }
  .sm:p-xxxl { padding: var(--space-xxxl); }
  .sm:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .sm:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .sm:m-xxxl { margin: var(--space-xxxl); }
  .sm:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .sm:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .sm:gap-xxxl { gap: var(--space-xxxl); } }
@media (min-width: 768px) { .md:p-xxs { padding: var(--space-xxs); }
  .md:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .md:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .md:m-xxs { margin: var(--space-xxs); }
  .md:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .md:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .md:gap-xxs { gap: var(--space-xxs); }
  .md:p-xs { padding: var(--space-xs); }
  .md:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .md:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .md:m-xs { margin: var(--space-xs); }
  .md:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .md:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .md:gap-xs { gap: var(--space-xs); }
  .md:p-s { padding: var(--space-s); }
  .md:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .md:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .md:m-s { margin: var(--space-s); }
  .md:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .md:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .md:gap-s { gap: var(--space-s); }
  .md:p-m { padding: var(--space-m); }
  .md:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .md:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .md:m-m { margin: var(--space-m); }
  .md:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .md:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .md:gap-m { gap: var(--space-m); }
  .md:p-l { padding: var(--space-l); }
  .md:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .md:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .md:m-l { margin: var(--space-l); }
  .md:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .md:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .md:gap-l { gap: var(--space-l); }
  .md:p-xl { padding: var(--space-xl); }
  .md:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .md:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .md:m-xl { margin: var(--space-xl); }
  .md:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .md:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .md:gap-xl { gap: var(--space-xl); }
  .md:p-xxl { padding: var(--space-xxl); }
  .md:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .md:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .md:m-xxl { margin: var(--space-xxl); }
  .md:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .md:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .md:gap-xxl { gap: var(--space-xxl); }
  .md:p-xxxl { padding: var(--space-xxxl); }
  .md:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .md:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .md:m-xxxl { margin: var(--space-xxxl); }
  .md:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .md:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .md:gap-xxxl { gap: var(--space-xxxl); } }
@media (min-width: 1024px) { .lg:p-xxs { padding: var(--space-xxs); }
  .lg:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .lg:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .lg:m-xxs { margin: var(--space-xxs); }
  .lg:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .lg:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .lg:gap-xxs { gap: var(--space-xxs); }
  .lg:p-xs { padding: var(--space-xs); }
  .lg:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .lg:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .lg:m-xs { margin: var(--space-xs); }
  .lg:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .lg:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .lg:gap-xs { gap: var(--space-xs); }
  .lg:p-s { padding: var(--space-s); }
  .lg:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .lg:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .lg:m-s { margin: var(--space-s); }
  .lg:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .lg:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .lg:gap-s { gap: var(--space-s); }
  .lg:p-m { padding: var(--space-m); }
  .lg:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .lg:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .lg:m-m { margin: var(--space-m); }
  .lg:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .lg:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .lg:gap-m { gap: var(--space-m); }
  .lg:p-l { padding: var(--space-l); }
  .lg:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .lg:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .lg:m-l { margin: var(--space-l); }
  .lg:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .lg:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .lg:gap-l { gap: var(--space-l); }
  .lg:p-xl { padding: var(--space-xl); }
  .lg:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .lg:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .lg:m-xl { margin: var(--space-xl); }
  .lg:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .lg:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .lg:gap-xl { gap: var(--space-xl); }
  .lg:p-xxl { padding: var(--space-xxl); }
  .lg:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .lg:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .lg:m-xxl { margin: var(--space-xxl); }
  .lg:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .lg:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .lg:gap-xxl { gap: var(--space-xxl); }
  .lg:p-xxxl { padding: var(--space-xxxl); }
  .lg:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .lg:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .lg:m-xxxl { margin: var(--space-xxxl); }
  .lg:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .lg:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .lg:gap-xxxl { gap: var(--space-xxxl); } }
@media (min-width: 1280px) { .xl:p-xxs { padding: var(--space-xxs); }
  .xl:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .xl:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .xl:m-xxs { margin: var(--space-xxs); }
  .xl:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .xl:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .xl:gap-xxs { gap: var(--space-xxs); }
  .xl:p-xs { padding: var(--space-xs); }
  .xl:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .xl:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .xl:m-xs { margin: var(--space-xs); }
  .xl:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .xl:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .xl:gap-xs { gap: var(--space-xs); }
  .xl:p-s { padding: var(--space-s); }
  .xl:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .xl:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .xl:m-s { margin: var(--space-s); }
  .xl:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .xl:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .xl:gap-s { gap: var(--space-s); }
  .xl:p-m { padding: var(--space-m); }
  .xl:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .xl:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .xl:m-m { margin: var(--space-m); }
  .xl:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .xl:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .xl:gap-m { gap: var(--space-m); }
  .xl:p-l { padding: var(--space-l); }
  .xl:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .xl:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .xl:m-l { margin: var(--space-l); }
  .xl:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .xl:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .xl:gap-l { gap: var(--space-l); }
  .xl:p-xl { padding: var(--space-xl); }
  .xl:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .xl:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .xl:m-xl { margin: var(--space-xl); }
  .xl:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .xl:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .xl:gap-xl { gap: var(--space-xl); }
  .xl:p-xxl { padding: var(--space-xxl); }
  .xl:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .xl:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .xl:m-xxl { margin: var(--space-xxl); }
  .xl:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .xl:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .xl:gap-xxl { gap: var(--space-xxl); }
  .xl:p-xxxl { padding: var(--space-xxxl); }
  .xl:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .xl:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .xl:m-xxxl { margin: var(--space-xxxl); }
  .xl:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .xl:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .xl:gap-xxxl { gap: var(--space-xxxl); } }
@media (min-width: 1536px) { .xxl:p-xxs { padding: var(--space-xxs); }
  .xxl:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .xxl:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .xxl:m-xxs { margin: var(--space-xxs); }
  .xxl:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .xxl:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .xxl:gap-xxs { gap: var(--space-xxs); }
  .xxl:p-xs { padding: var(--space-xs); }
  .xxl:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .xxl:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .xxl:m-xs { margin: var(--space-xs); }
  .xxl:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .xxl:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .xxl:gap-xs { gap: var(--space-xs); }
  .xxl:p-s { padding: var(--space-s); }
  .xxl:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .xxl:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .xxl:m-s { margin: var(--space-s); }
  .xxl:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .xxl:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .xxl:gap-s { gap: var(--space-s); }
  .xxl:p-m { padding: var(--space-m); }
  .xxl:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .xxl:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .xxl:m-m { margin: var(--space-m); }
  .xxl:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .xxl:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .xxl:gap-m { gap: var(--space-m); }
  .xxl:p-l { padding: var(--space-l); }
  .xxl:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .xxl:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .xxl:m-l { margin: var(--space-l); }
  .xxl:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .xxl:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .xxl:gap-l { gap: var(--space-l); }
  .xxl:p-xl { padding: var(--space-xl); }
  .xxl:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .xxl:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .xxl:m-xl { margin: var(--space-xl); }
  .xxl:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .xxl:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .xxl:gap-xl { gap: var(--space-xl); }
  .xxl:p-xxl { padding: var(--space-xxl); }
  .xxl:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .xxl:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .xxl:m-xxl { margin: var(--space-xxl); }
  .xxl:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .xxl:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .xxl:gap-xxl { gap: var(--space-xxl); }
  .xxl:p-xxxl { padding: var(--space-xxxl); }
  .xxl:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .xxl:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .xxl:m-xxxl { margin: var(--space-xxxl); }
  .xxl:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .xxl:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .xxl:gap-xxxl { gap: var(--space-xxxl); } }
@media (prefers-color-scheme: dark) { :root:not(.light) {
    --color-scheme: dark;
    
    --bg-body: var(--dark);
    --text-body: var(--light);
    --bg-surface: var(--base-90);
    --bg-surface-raised: var(--base-80);
    --border-default: var(--light-trans-20);
  } }
@media (prefers-color-scheme: dark) { :root:not(.light) .dark:bg-dark { background-color: var(--dark); }
  :root:not(.light) .dark:bg-base { background-color: var(--base); }
  :root:not(.light) .dark:text-light { color: var(--light); }
  :root:not(.light) .dark:text-white { color: white; }
  :root:not(.light) .dark:border-light { border-color: var(--light-trans-30); } }
.bg-body { background-color: var(--bg-body); }
.text-body { color: var(--text-body); }
@media (prefers-color-scheme: dark) { :root:not(.light) .dark-invert {
    filter: invert(1) hue-rotate(180deg);
  } }
.skip-link:focus { top: 0;
  outline: none; }
:focus-visible { outline: 2px solid var(--primary);
  outline-offset: 2px; }
.focus-ring:focus { outline: 2px solid var(--primary);
  outline-offset: 2px; }
.focus-ring-inset:focus { outline: 2px solid var(--primary);
  outline-offset: -2px; }
.focus-within:ring:focus-within { outline: 2px solid var(--primary);
  outline-offset: 2px; }
:focus:not(:focus-visible) { outline: none; }
.focus-outline * { outline: 1px solid red !important; }
@media (prefers-contrast: high) { :root {
    --primary: #0000ff;
    --secondary: #800080;
    --success: #008000;
    --danger: #ff0000;
    --warning: #ff8c00;
    --info: #0000cd;
    --base: #000000;
    --light: #ffffff;
    --dark: #000000;
  }
  
  .btn,
  .form-input,
  .form-select,
  .form-textarea,
  .card {
    border-width: 2px;
  }
  
  a {
    text-decoration: underline;
  } }
@media (forced-colors: active) { .btn {
    border: 2px solid currentColor;
  }
  
  .btn--primary,
  .btn--secondary,
  .btn--accent {
    background: ButtonFace;
    color: ButtonText;
  }
  
  .btn--primary:hover,
  .btn--secondary:hover,
  .btn--accent:hover {
    background: Highlight;
    color: HighlightText;
  }
  
  .form-input,
  .form-select,
  .form-textarea {
    border: 2px solid currentColor;
    background: Field;
    color: FieldText;
  }
  
  .form-input:focus,
  .form-select:focus,
  .form-textarea:focus {
    outline: 2px solid Highlight;
  }
  
  .card {
    border: 2px solid currentColor;
  }
  
  
  svg {
    forced-color-adjust: auto;
  } }
@media (prefers-reduced-motion: reduce) { *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  .animate-spin,
  .animate-pulse,
  .animate-bounce,
  .animate-ping {
    animation: none !important;
  } }
@media (prefers-reduced-motion: no-preference) { .motion-safe:animate-spin {
    animation: spin 1s linear infinite;
  }
  
  .motion-safe:animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  }
  
  .motion-safe:animate-bounce {
    animation: bounce 1s infinite;
  }
  
  .motion-safe:transition {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-duration: var(--transition-base);
  } }
a { min-height: 44px; }
.color-indicator::before { content: "";
  display: inline-block;
  width: 0.75em;
  height: 0.75em;
  margin-right: 0.5em;
  border-radius: 50%;
  background: currentColor; }
.status-success::before { content: "✓ "; }
.status-error::before { content: "✕ "; }
.status-warning::before { content: "⚠ "; }
.status-info::before { content: "ℹ "; }
@media (prefers-reduced-motion: reduce) { .scroll-smooth {
    scroll-behavior: auto;
  } }
@media print { .print:hidden { display: none !important; }
  .print:block { display: block !important; }
  
  
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 0.8em;
    font-weight: normal;
  }
  
  
  .print:avoid-break {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  
  
  .print:break-before {
    break-before: page;
    page-break-before: always;
  }
  
  .print:break-after {
    break-after: page;
    page-break-after: always;
  }
  
  
  body {
    color: black !important;
    background: white !important;
  } }
*, *::before, *::after { box-sizing: border-box; }
body, h3, p, figure { margin: 0; }
ul { list-style: none;
  margin: 0;
  padding: 0; }
img { display: block;
  max-width: 100%; }
a { text-decoration: none;
  color: inherit;
  cursor: pointer; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  } }
html { font-size: var(--base-font-size);
  line-height: var(--base-line-height);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  color-scheme: var(--color-scheme, light); }
body { font-family: var(--font-base);
  color: var(--text-body, var(--base));
  background-color: var(--bg-body, var(--light));
  line-height: var(--base-line-height); }
h3 { font-family: var(--font-heading);
  line-height: 1.2; }
body { min-height: 100vh;
  display: flex;
  flex-direction: column; }
@media (prefers-color-scheme: dark) { :root:not(.light) {
    --color-scheme: dark;
    
    --bg-body: var(--dark);
    --text-body: var(--light);
    --bg-surface: var(--base-90);
    --bg-surface-raised: var(--base-80);
    --border-default: var(--light-trans-20);
  } }
@media (prefers-color-scheme: dark) { :root:not(.light) .dark:bg-dark { background-color: var(--dark); }
  :root:not(.light) .dark:bg-base { background-color: var(--base); }
  :root:not(.light) .dark:text-light { color: var(--light); }
  :root:not(.light) .dark:text-white { color: white; }
  :root:not(.light) .dark:border-light { border-color: var(--light-trans-30); } }
@media (prefers-color-scheme: dark) { :root:not(.light) .dark-invert {
    filter: invert(1) hue-rotate(180deg);
  } }
h3 { font-family: var(--font-heading);
  font-size: var(--text-l);
  font-weight: 600;
  color: inherit; }
p { font-family: var(--font-base);
  font-size: var(--text-m);
  font-weight: 400;
  color: var(--text-body); }
body { font-family: var(--font-base);
  font-size: var(--text-m);
  font-weight: 400;
  color: var(--dark); }
.programs-list { display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem; }
.program-card { padding: var(--space-xs);
  background-color: var(--light);
  border-radius: 0.6rem;
  box-shadow: 5px 3px 3px var(--base-trans-50); }
.program-card__featured-image-wrapper { widith: 600px;
  height: 400px; }
.program-card__featured-image { width: 100%;
  height: 100%;
  object-fit: cover; }
.program-card__content-wrapper { padding: var(--space-s);
  display: flex;
  flex-direction: column;
  gap: var(--content-gap); }
.section-intro { max-width: 1440px;
  margin: auto; }
.programs-section { background-color: #8399b9;
  padding: var(--space-xl); }
:root { --primary: #3B82F6;
  --primary-hover: #0b63f3;
  --primary-trans-10: rgba(59, 130, 246, 0.1);
  --primary-trans-20: rgba(59, 130, 246, 0.2);
  --primary-trans-50: rgba(59, 130, 246, 0.5);
  --secondary: #8B5CF6;
  --secondary-hover: #692cf3;
  --accent-hover: #c57f08;
  --base: #1F2937;
  --base-80: #000000;
  --base-90: #000000;
  --base-trans-10: rgba(31, 41, 55, 0.1);
  --light: #F9FAFB;
  --light-trans-20: rgba(249, 250, 251, 0.2);
  --light-trans-30: rgba(249, 250, 251, 0.3);
  --dark: #111827;
  --success-trans-20: rgba(16, 185, 129, 0.2);
  --danger: #EF4444;
  --danger-trans-20: rgba(239, 68, 68, 0.2);
  --space-xxs: clamp(3px, 3px + (1) * ((100vw - 320px) / 1600), 4px);
  --space-xs: clamp(6px, 6px + (2) * ((100vw - 320px) / 1600), 8px);
  --space-s: clamp(9px, 9px + (3) * ((100vw - 320px) / 1600), 12px);
  --space-m: clamp(12px, 12px + (4) * ((100vw - 320px) / 1600), 16px);
  --space-l: clamp(18px, 18px + (6) * ((100vw - 320px) / 1600), 24px);
  --space-xl: clamp(27px, 27px + (9) * ((100vw - 320px) / 1600), 36px);
  --space-xxl: clamp(40.5px, 40.5px + (13.5) * ((100vw - 320px) / 1600), 54px);
  --space-xxxl: clamp(60.756px, 60.756px + (20.251999999999995) * ((100vw - 320px) / 1600), 81.008px);
  --font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-heading: inherit;
  --base-font-size: 16px;
  --base-line-height: 1.6;
  --radius-m: 0.375rem;
  --shadow-m: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  --transition-fast: 150ms;
  --transition-base: 250ms;
  --content-gap: var(--space-m);
  --container-gap: var(--space-xl);
  --bg-body: var(--light);
  --text-body: var(--base); }
html, body, div, h2, tbody, section { margin: 0;
  padding: 0;
  border: 0;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  vertical-align: baseline; }
h2 { display: block;
  width: fit-content;
  margin: 0;
  padding: 0;
  border: 0;
  font-size: inherit;
  font-weight: inherit;
  font-style: normal;
  line-height: inherit;
  color: inherit;
  background: transparent;
  
  margin-block-start: 0;
  margin-block-end: 0;
  margin-inline-start: 0;
  margin-inline-end: 0;
  -webkit-margin-before: 0;
  -webkit-margin-after: 0;
  -webkit-margin-start: 0;
  -webkit-margin-end: 0; }
section { display: block; }
h2 { font-family: var(--font-heading);
  line-height: 1.2; }
.vh-section { padding: 60px 0; }
.vh-block { padding: 20px; }
.vh-heading { font-size: 2rem;
    font-weight: 700;
    margin-bottom: 1rem; }
:root { --primary: #3B82F6;
  --primary-hover: #0b63f3;
  --primary-trans-10: rgba(59, 130, 246, 0.1);
  --primary-trans-20: rgba(59, 130, 246, 0.2);
  --primary-trans-50: rgba(59, 130, 246, 0.5);
  --secondary: #8B5CF6;
  --secondary-hover: #692cf3;
  --accent-hover: #c57f08;
  --base: #1F2937;
  --base-80: #000000;
  --base-90: #000000;
  --base-trans-10: rgba(31, 41, 55, 0.1);
  --light: #F9FAFB;
  --light-trans-20: rgba(249, 250, 251, 0.2);
  --light-trans-30: rgba(249, 250, 251, 0.3);
  --dark: #111827;
  --success-trans-20: rgba(16, 185, 129, 0.2);
  --danger: #EF4444;
  --danger-trans-20: rgba(239, 68, 68, 0.2);
  --space-xxs: clamp(3px, 3px + (1) * ((100vw - 320px) / 1600), 4px);
  --space-xs: clamp(6px, 6px + (2) * ((100vw - 320px) / 1600), 8px);
  --space-s: clamp(9px, 9px + (3) * ((100vw - 320px) / 1600), 12px);
  --space-m: clamp(12px, 12px + (4) * ((100vw - 320px) / 1600), 16px);
  --space-l: clamp(18px, 18px + (6) * ((100vw - 320px) / 1600), 24px);
  --space-xl: clamp(27px, 27px + (9) * ((100vw - 320px) / 1600), 36px);
  --space-xxl: clamp(40.5px, 40.5px + (13.5) * ((100vw - 320px) / 1600), 54px);
  --space-xxxl: clamp(60.756px, 60.756px + (20.251999999999995) * ((100vw - 320px) / 1600), 81.008px);
  --font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --base-font-size: 16px;
  --base-line-height: 1.6;
  --radius-m: 0.375rem;
  --shadow-m: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  --transition-fast: 150ms;
  --transition-base: 250ms;
  --content-gap: var(--space-m);
  --container-gap: var(--space-xl);
  --bg-body: var(--light);
  --text-body: var(--base); }
html, body, p, blockquote, a, tbody { margin: 0;
  padding: 0;
  border: 0;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  vertical-align: baseline; }
html, body, h2, p, strong, tbody { margin: 0;
  padding: 0;
  border: 0;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  vertical-align: baseline; }
strong { display: inline; }
strong { font-weight: inherit; }
.vh-error { text-align: center; padding: 4rem 2rem; }
.vh-posts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 2rem; }
:root { --light: #F9FAFB;
  --dark: #111827;
  --base: #1F2937;
  --space-m: 16px;
  --space-xl: 36px;
  --space-2xl: 54px;
  --font-heading: inherit;
  --base-font-size: 16px;
  --text-xs: 10.24px;
  --text-s: 12.8px;
  --text-m: 16px;
  --text-xl: 25px;
  --container-padding: clamp(10.67px, 0.6002rem + 0.3331vw, 16px); }
body, h4, p { margin: 0; }
html { font-size: var(--base-font-size);
  line-height: var(--base-line-height);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
body { font-family: var(--font-base);
  color: var(--base);
  background-color: var(--light);
  line-height: var(--base-line-height); }
h4 { font-family: var(--font-heading);
  line-height: 1.2; }
.footer { width: 100%; }
.container { max-width: var(--container-max-width);
  width: 100%;
  margin: 0 auto;
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
  display: flex;
  flex-direction: column;
  gap: var(--gap, var(--gutter-width)); }
.container-wide { max-width: calc(var(--container-max-width) * 1.25); }
h4 { font-family: var(--font-heading);
  font-size: var(--text-m);
  font-weight: 600;
  color: inherit; }
.footer__brand .footer__logo { font-size: var(--text-xl);
  margin-bottom: var(--space-m); }
.footer__brand p { font-size: var(--text-s);
  color: var(--text-dim);
  max-width: 260px;
  line-height: 1.7; }
.footer__col h4 { font-size: var(--text-s);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  margin-bottom: var(--space-m); }
.footer__col a { display: block;
  font-size: var(--text-s);
  color: var(--text-dim);
  padding: 4px 0;
  transition: color var(--transition-fast); }
.footer__col a:hover { color: var(--primary); }
.footer__bottom { display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--space-xl);
  border-top: 1px solid var(--border);
  font-size: var(--text-xs);
  color: var(--text-muted);
  flex-wrap: wrap;
  gap: var(--space-m); }
.footer__bottom a { color: var(--text-muted); }
.footer__bottom a:hover { color: var(--primary); }
.footer { border-top: 1px solid var(--border);
  padding: var(--space-2xl) 0;
  color: var(--text-light);
  background-color: var(--dark); }
.footer .container { flex-direction: row;
  align-items: flex-start;
  gap: var(--space-2xl); }
@media (max-width: 768px) { .footer .container {
    flex-direction: column;
    gap: var(--space-xl);
  } }
:root { --primary-hover:      #e65100;
  --primary-trans-20:   oklch(0.700 0.202 44 / 0.2);
  --light:              #F9FAFB;
  --light-trans-20:     oklch(0.985 0.002 248 / 0.2);
  --light-trans-30:     oklch(0.985 0.002 248 / 0.3);
  --dark:               #111827;
  --base:               #1F2937;
  --space-xs:  7.11px;
  --space-s:   10.67px;
  --space-m:   16px;
  --space-l:   24px;
  --space-xl:  36px;
  --base-font-size: 16px;
  --text-s:         12.8px;
  --text-m:         16px;
  --text-l:         20px;
  --radius-m:    clamp(4.8px, 0.285rem + 0.075vw, 6px);
  --radius-full: 9999px;
  --z-fixed:           1030;
  --container-padding: clamp(10.67px, 0.6002rem + 0.3331vw, 16px);
  --text-body:    var(--base); }
@media (prefers-color-scheme: dark) { :root:not(.light) {
    --color-scheme:    dark;
    --bg-body:         var(--dark);
    --text-body:       var(--light);
    --bg-surface:      var(--base-90);
    --bg-surface-raised: var(--base-80);
    --border-default:  var(--light-trans-20);
  }

  :root:not(.light) .dark\:bg-dark   { background-color: var(--dark); }
  :root:not(.light) .dark\:bg-base   { background-color: var(--base); }
  :root:not(.light) .dark\:text-light { color: var(--light); }
  :root:not(.light) .dark\:text-white { color: white; }
  :root:not(.light) .dark\:border-light { border-color: var(--light-trans-30); }

  :root:not(.light) .dark-invert {
    filter: invert(1) hue-rotate(180deg);
  } }
html:has(#darkmode-toggle:not(:checked)) { color-scheme: var(--vh-el-prop-colorscheme);

  
  --vh-bg-base:                var(--vh-el-prop-vhbgbase);
  --vh-bg-surface:             var(--vh-el-prop-vhbgsurface);
  --vh-bg-elevated:            var(--vh-el-prop-vhbgelevated);
  --vh-bg-input:               var(--vh-el-prop-vhbginput);
  --vh-bg-hover:               var(--vh-el-prop-vhbghover);
  --vh-bg-raised:              var(--vh-el-prop-vhbgraised);
  --vh-border:                 var(--vh-el-prop-vhborder);
  --vh-border-subtle:          var(--vh-el-prop-vhbordersubtle);
  --vh-border-input:           var(--vh-el-prop-vhborderinput);
  --vh-border-strong:          var(--vh-el-prop-vhborderstrong);
  --vh-text:                   var(--vh-el-prop-vhtext);
  --vh-text-bright:            var(--vh-el-prop-vhtextbright);
  --vh-text-white:             var(--vh-el-prop-vhtextwhite);
  --vh-text-muted:             var(--vh-el-prop-vhtextmuted);
  --vh-text-faint:             var(--vh-el-prop-vhtextfaint);
  --vh-text-dim:               var(--vh-el-prop-vhtextdim);
  --vh-scrollbar-track:        var(--vh-el-prop-vhscrollbartrack);
  --vh-scrollbar-thumb:        var(--vh-el-prop-vhscrollbarthumb);
  --vh-scrollbar-thumb-hover:  var(--vh-el-prop-vhscrollbarthumbhover);
  --vh-shadow-popup:           var(--vh-el-prop-vhshadowpopup);
  --vh-shadow-frame:           var(--vh-el-prop-vhshadowframe);

  --bg-level-1:   #ffffff;
  --bg-level-2:   #f2f3f5;
  --border-color: var(--vh-el-prop-bordercolor);

  
  --light:      var(--vh-el-prop-light_2);
  --base:       var(--vh-el-prop-base_2);
  --bg:         var(--vh-el-prop-bg);
  --bg-card:    var(--vh-el-prop-bgcard);
  --text:       var(--vh-el-prop-text);
  --text-muted: var(--vh-el-prop-textmuted);
  --text-dim:   var(--vh-el-prop-textdim);
  --border:     var(--vh-el-prop-border_7);
  --border-lit: var(--vh-el-prop-borderlit); }
html:has(#darkmode-toggle:not(:checked)) .status-bar { background:   var(--vh-el-prop-background_11);
  border-color: var(--vh-el-prop-bordercolor_2); }
html:has(#darkmode-toggle:not(:checked)) .feature-card { background: var(--vh-el-prop-background_12);
  box-shadow: var(--vh-el-prop-boxshadow_4); }
html:has(#darkmode-toggle:not(:checked)) .hero-stats { border-top-color: var(--vh-el-prop-bordertopcolor); }
html:has(#darkmode-toggle:not(:checked)) .vh-footer { background: var(--vh-el-prop-background_13);
  color:      var(--vh-el-prop-text_color_11); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar { background:        var(--vh-el-prop-background_14);
  border-right-color: var(--vh-el-prop-borderrightcolor); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-profile { border-bottom-color: var(--vh-el-prop-borderbottomcolor); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-profile:hover { background: var(--vh-el-prop-background_15); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-profile-avatar { background: var(--vh-el-prop-background_16);
  color:      var(--vh-el-prop-text_color_12, var(--vh-text-faint)); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-profile-name { color: var(--vh-el-prop-text_color_13, var(--vh-text-white)); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-profile-status { color: var(--vh-el-prop-text_color_14, var(--vh-text-faint)); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-section-header { border-bottom-color: var(--vh-el-prop-borderbottomcolor_2);
  color:               var(--vh-el-prop-text_color_15, var(--vh-text)); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-section-header:hover { background: var(--vh-el-prop-background_17); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-item { color: var(--vh-el-prop-text_color_16, var(--vh-text)); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-item:hover { background: var(--vh-el-prop-background_18);
  color:      var(--vh-el-prop-text_color_17, var(--vh-text-white)); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-item.active { background: var(--vh-el-prop-background_19);
  color:      var(--vh-el-prop-text_color_18, var(--vh-brand-600)); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-item svg { color: var(--vh-el-prop-text_color_19, var(--vh-text-faint)); }
html:has(#darkmode-toggle:not(:checked)) .vh-sidebar-item.active svg { color: var(--vh-el-prop-text_color_20, var(--vh-brand-500)); }
html:has(#darkmode-toggle:not(:checked)) .header { background:   var(--vh-el-prop-background_10);
  border-bottom: var(--vh-el-prop-borderbottom); }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after {
    animation-duration:       0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration:      0.01ms !important;
    scroll-behavior:          auto !important;
  } }
body { margin: 0; }
ul { list-style: none;
  margin:     0;
  padding:    0; }
button { font:       inherit;
  color:      inherit;
  background: transparent;
  border:     none;
  padding:    0;
  margin:     0; }
button { cursor: pointer; }
img { display:   block;
  max-width: 100%; }
a { text-decoration: none;
  color:           inherit;
  cursor:          pointer; }
html { font-size:               var(--base-font-size);
  line-height:             var(--base-line-height);
  -webkit-font-smoothing:  antialiased;
  -moz-osx-font-smoothing: grayscale;
  color-scheme:            var(--color-scheme, light); }
body { min-height:    100vh;
  display:       flex;
  flex-direction: column;
  font-family:   var(--font-base);
  font-size:     var(--text-m);
  font-weight:   400;
  color:         var(--text-body, var(--base));
  background-color: var(--bg-body, var(--light));
  line-height:   var(--base-line-height); }
.header { width: 100%; }
.container { max-width:     var(--container-max-width);
  width:         100%;
  margin:        0 auto;
  padding-left:  var(--container-padding);
  padding-right: var(--container-padding);
  display:       flex;
  flex-direction: column;
  gap:           var(--gap, var(--gutter-width)); }
.header .container { flex-direction:  row;
  align-items:     center;
  justify-content: space-between;
  gap:             var(--space-l); }
.header { position:         sticky;
  top:              0;
  z-index:          var(--z-fixed);
  height:           64px;
  display:          flex;
  align-items:      center;
  background:       var(--header-bg, rgba(13,13,13,0.90));
  border-bottom:    1px solid var(--border);
  backdrop-filter:  blur(14px);
  -webkit-backdrop-filter: blur(14px); }
.header__logo { display:      flex;
  align-items:  center;
  gap:          var(--space-s);
  font-weight:  700;
  font-size:    var(--text-l);
  letter-spacing: -0.02em;
  color:        var(--text);
  flex-shrink:  0; }
.header__logo-icon { width:       34px;
  height:      34px;
  display:     grid;
  place-items: center;
  flex-shrink: 0; }
.header__logo-icon img { width:       28px;
  height:      28px;
  object-fit:  contain; }
.header__logo span { color: var(--primary); }
.header__nav-list { display:     flex;
  align-items: center;
  gap:         var(--space-xl); }
.header__nav-list a { font-size:   var(--text-s);
  font-weight: 500;
  color:       var(--text-dim);
  transition:  color var(--transition-fast); }
.header__nav-list a:hover,
.header__nav-list a.active { color: var(--primary); }
.header__controls { display:     flex;
  align-items: center;
  gap:         var(--space-m); }
.header__theme-toggle:hover,
.header__theme-toggle:focus-visible { color:       var(--primary);
  border-color: var(--border-lit);
  box-shadow:  0 0 0 2px var(--primary-trans-20); }
html:not([data-theme='light']) .header__theme-icon--moon { display: block; }
html[data-theme='light']       .header__theme-icon--sun { display: block; }
.header__cta { padding:      var(--space-xs) var(--space-l);
  background:   var(--primary);
  color:        var(--dark);
  border-radius: var(--radius-m);
  font-size:    var(--text-s);
  font-weight:  700;
  transition:   background var(--transition-fast), box-shadow var(--transition-fast);
  flex-shrink:  0; }
.header__cta:hover { background: var(--primary-hover);
  box-shadow: var(--glow); }
.header__toggle { display:        none;
  flex-direction: column;
  gap:            5px;
  padding:        var(--space-xs);
  cursor:         pointer; }
.header__toggle span { display:       block;
  width:         22px;
  height:        2px;
  background:    var(--text);
  border-radius: var(--radius-full);
  transition:    all var(--transition-fast); }
input:checked + label + .background { background: var(--vh-el-prop-background_5); }
input:checked + label { background: var(--vh-el-prop-background_8);
  box-shadow: var(--vh-el-prop-boxshadow_3); }
input:checked + label:after { transform:  var(--vh-el-prop-transform);
  background: var(--vh-el-prop-background_9); }
label:active:after { width: var(--vh-el-prop-width_5); }
input:checked + label svg.sun { fill:    var(--vh-el-prop-fill_3);
  opacity: var(--vh-el-prop-opacity_3); }
input:checked + label svg.moon { fill:    var(--vh-el-prop-fill_4);
  opacity: var(--vh-el-prop-opacity_4); }
.vh-single { max-width: 800px; margin: 0 auto; padding: 2rem; }
:root { --primary: #3B82F6;
  --primary-hover: #0b63f3;
  --primary-trans-10: rgba(59, 130, 246, 0.1);
  --primary-trans-20: rgba(59, 130, 246, 0.2);
  --primary-trans-50: rgba(59, 130, 246, 0.5);
  --secondary: #8B5CF6;
  --secondary-hover: #692cf3;
  --accent-hover: #c57f08;
  --base: #1F2937;
  --base-80: #000000;
  --base-90: #000000;
  --base-trans-10: rgba(31, 41, 55, 0.1);
  --light: #F9FAFB;
  --light-trans-20: oklch(0.985 0.002 248 / 0.2);
  --light-trans-30: oklch(0.985 0.002 248 / 0.3);
  --dark: #111827;
  --success-trans-20: rgba(16, 185, 129, 0.2);
  --danger: #EF4444;
  --danger-trans-20: rgba(239, 68, 68, 0.2);
  --space-xxs: clamp(3px, 3px + (1) * ((100vw - 320px) / 1600), 4px);
  --space-xs: 7.11px;
  --space-s: 10.67px;
  --space-m: clamp(12px, 12px + (4) * ((100vw - 320px) / 1600), 16px);
  --space-l: clamp(18px, 18px + (6) * ((100vw - 320px) / 1600), 24px);
  --space-xl: 36px;
  --space-xxl: clamp(40.5px, 40.5px + (13.5) * ((100vw - 320px) / 1600), 54px);
  --space-xxxl: clamp(60.756px, 60.756px + (20.251999999999995) * ((100vw - 320px) / 1600), 81.008px);
  --font-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --base-font-size: 16px;
  --base-line-height: 1.6;
  --text-m: 16px;
  --radius-m: 0.375rem;
  --shadow-m: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
  --transition-fast: 150ms;
  --transition-base: 250ms;
  --content-gap: var(--space-m);
  --container-gap: var(--space-xl);
  --bg-body: var(--light);
  --text-body: var(--base); }
html, body, tbody, section { margin: 0;
  padding: 0;
  border: 0;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
  vertical-align: baseline; }
@media (min-width: 640px) { .sm\:block { display: block; }
  .sm\:inline-block { display: inline-block; }
  .sm\:inline { display: inline; }
  .sm\:flex { display: flex; }
  .sm\:inline-flex { display: inline-flex; }
  .sm\:grid { display: grid; }
  .sm\:hidden { display: none; }
  
  .sm\:flex-row { flex-direction: row; }
  .sm\:flex-col { flex-direction: column; }
  
  .sm\:items-start { align-items: flex-start; }
  .sm\:items-center { align-items: center; }
  .sm\:items-end { align-items: flex-end; }
  
  .sm\:justify-start { justify-content: flex-start; }
  .sm\:justify-center { justify-content: center; }
  .sm\:justify-end { justify-content: flex-end; }
  .sm\:justify-between { justify-content: space-between; }
  
  .sm\:text-left { text-align: left; }
  .sm\:text-center { text-align: center; }
  .sm\:text-right { text-align: right; }
  
  .sm\:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .sm\:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm\:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sm\:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  
  .sm\:w-auto { width: auto; }
  .sm\:w-full { width: 100%; }
  .sm\:w-half { width: 50%; }
  .sm\:w-third { width: 33.333333%; }
  .sm\:w-quarter { width: 25%; } }
@media (min-width: 768px) { .md\:block { display: block; }
  .md\:inline-block { display: inline-block; }
  .md\:inline { display: inline; }
  .md\:flex { display: flex; }
  .md\:inline-flex { display: inline-flex; }
  .md\:grid { display: grid; }
  .md\:hidden { display: none; }
  
  .md\:flex-row { flex-direction: row; }
  .md\:flex-col { flex-direction: column; }
  
  .md\:items-start { align-items: flex-start; }
  .md\:items-center { align-items: center; }
  .md\:items-end { align-items: flex-end; }
  
  .md\:justify-start { justify-content: flex-start; }
  .md\:justify-center { justify-content: center; }
  .md\:justify-end { justify-content: flex-end; }
  .md\:justify-between { justify-content: space-between; }
  
  .md\:text-left { text-align: left; }
  .md\:text-center { text-align: center; }
  .md\:text-right { text-align: right; }
  
  .md\:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .md\:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .md\:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .md\:grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  
  .md\:w-auto { width: auto; }
  .md\:w-full { width: 100%; }
  .md\:w-half { width: 50%; }
  .md\:w-third { width: 33.333333%; }
  .md\:w-quarter { width: 25%; }
  
  .md\:order-first { order: -9999; }
  .md\:order-last { order: 9999; }
  .md\:order-1 { order: 1; }
  .md\:order-2 { order: 2; }
  .md\:order-3 { order: 3; } }
@media (min-width: 1024px) { .lg\:block { display: block; }
  .lg\:inline-block { display: inline-block; }
  .lg\:inline { display: inline; }
  .lg\:flex { display: flex; }
  .lg\:inline-flex { display: inline-flex; }
  .lg\:grid { display: grid; }
  .lg\:hidden { display: none; }
  
  .lg\:flex-row { flex-direction: row; }
  .lg\:flex-col { flex-direction: column; }
  
  .lg\:items-start { align-items: flex-start; }
  .lg\:items-center { align-items: center; }
  .lg\:items-end { align-items: flex-end; }
  
  .lg\:justify-start { justify-content: flex-start; }
  .lg\:justify-center { justify-content: center; }
  .lg\:justify-end { justify-content: flex-end; }
  .lg\:justify-between { justify-content: space-between; }
  
  .lg\:text-left { text-align: left; }
  .lg\:text-center { text-align: center; }
  .lg\:text-right { text-align: right; }
  
  .lg\:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .lg\:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lg\:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lg\:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lg\:grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  
  .lg\:w-auto { width: auto; }
  .lg\:w-full { width: 100%; }
  .lg\:w-half { width: 50%; }
  .lg\:w-third { width: 33.333333%; }
  .lg\:w-quarter { width: 25%; }
  
  .lg\:order-first { order: -9999; }
  .lg\:order-last { order: 9999; }
  .lg\:order-1 { order: 1; }
  .lg\:order-2 { order: 2; }
  .lg\:order-3 { order: 3; } }
@media (min-width: 1280px) { .xl\:block { display: block; }
  .xl\:inline-block { display: inline-block; }
  .xl\:inline { display: inline; }
  .xl\:flex { display: flex; }
  .xl\:inline-flex { display: inline-flex; }
  .xl\:grid { display: grid; }
  .xl\:hidden { display: none; }
  
  .xl\:flex-row { flex-direction: row; }
  .xl\:flex-col { flex-direction: column; }
  
  .xl\:items-start { align-items: flex-start; }
  .xl\:items-center { align-items: center; }
  .xl\:items-end { align-items: flex-end; }
  
  .xl\:justify-start { justify-content: flex-start; }
  .xl\:justify-center { justify-content: center; }
  .xl\:justify-end { justify-content: flex-end; }
  .xl\:justify-between { justify-content: space-between; }
  
  .xl\:text-left { text-align: left; }
  .xl\:text-center { text-align: center; }
  .xl\:text-right { text-align: right; }
  
  .xl\:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .xl\:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xl\:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xl\:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .xl\:grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  
  .xl\:w-auto { width: auto; }
  .xl\:w-full { width: 100%; }
  .xl\:w-half { width: 50%; }
  .xl\:w-third { width: 33.333333%; }
  .xl\:w-quarter { width: 25%; } }
@media (min-width: 1536px) { .xxl\:block { display: block; }
  .xxl\:flex { display: flex; }
  .xxl\:grid { display: grid; }
  .xxl\:hidden { display: none; }
  
  .xxl\:grid--1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .xxl\:grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xxl\:grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .xxl\:grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .xxl\:grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (min-width: 640px) { .sm\:p-xxs { padding: var(--space-xxs); }
  .sm\:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .sm\:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .sm\:m-xxs { margin: var(--space-xxs); }
  .sm\:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .sm\:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .sm\:gap-xxs { gap: var(--space-xxs); }
  .sm\:p-xs { padding: var(--space-xs); }
  .sm\:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .sm\:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .sm\:m-xs { margin: var(--space-xs); }
  .sm\:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .sm\:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .sm\:gap-xs { gap: var(--space-xs); }
  .sm\:p-s { padding: var(--space-s); }
  .sm\:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .sm\:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .sm\:m-s { margin: var(--space-s); }
  .sm\:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .sm\:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .sm\:gap-s { gap: var(--space-s); }
  .sm\:p-m { padding: var(--space-m); }
  .sm\:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .sm\:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .sm\:m-m { margin: var(--space-m); }
  .sm\:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .sm\:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .sm\:gap-m { gap: var(--space-m); }
  .sm\:p-l { padding: var(--space-l); }
  .sm\:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .sm\:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .sm\:m-l { margin: var(--space-l); }
  .sm\:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .sm\:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .sm\:gap-l { gap: var(--space-l); }
  .sm\:p-xl { padding: var(--space-xl); }
  .sm\:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .sm\:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .sm\:m-xl { margin: var(--space-xl); }
  .sm\:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .sm\:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .sm\:gap-xl { gap: var(--space-xl); }
  .sm\:p-xxl { padding: var(--space-xxl); }
  .sm\:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .sm\:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .sm\:m-xxl { margin: var(--space-xxl); }
  .sm\:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .sm\:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .sm\:gap-xxl { gap: var(--space-xxl); }
  .sm\:p-xxxl { padding: var(--space-xxxl); }
  .sm\:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .sm\:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .sm\:m-xxxl { margin: var(--space-xxxl); }
  .sm\:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .sm\:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .sm\:gap-xxxl { gap: var(--space-xxxl); } }
@media (min-width: 768px) { .md\:p-xxs { padding: var(--space-xxs); }
  .md\:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .md\:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .md\:m-xxs { margin: var(--space-xxs); }
  .md\:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .md\:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .md\:gap-xxs { gap: var(--space-xxs); }
  .md\:p-xs { padding: var(--space-xs); }
  .md\:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .md\:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .md\:m-xs { margin: var(--space-xs); }
  .md\:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .md\:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .md\:gap-xs { gap: var(--space-xs); }
  .md\:p-s { padding: var(--space-s); }
  .md\:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .md\:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .md\:m-s { margin: var(--space-s); }
  .md\:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .md\:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .md\:gap-s { gap: var(--space-s); }
  .md\:p-m { padding: var(--space-m); }
  .md\:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .md\:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .md\:m-m { margin: var(--space-m); }
  .md\:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .md\:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .md\:gap-m { gap: var(--space-m); }
  .md\:p-l { padding: var(--space-l); }
  .md\:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .md\:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .md\:m-l { margin: var(--space-l); }
  .md\:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .md\:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .md\:gap-l { gap: var(--space-l); }
  .md\:p-xl { padding: var(--space-xl); }
  .md\:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .md\:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .md\:m-xl { margin: var(--space-xl); }
  .md\:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .md\:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .md\:gap-xl { gap: var(--space-xl); }
  .md\:p-xxl { padding: var(--space-xxl); }
  .md\:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .md\:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .md\:m-xxl { margin: var(--space-xxl); }
  .md\:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .md\:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .md\:gap-xxl { gap: var(--space-xxl); }
  .md\:p-xxxl { padding: var(--space-xxxl); }
  .md\:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .md\:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .md\:m-xxxl { margin: var(--space-xxxl); }
  .md\:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .md\:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .md\:gap-xxxl { gap: var(--space-xxxl); } }
@media (min-width: 1024px) { .lg\:p-xxs { padding: var(--space-xxs); }
  .lg\:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .lg\:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .lg\:m-xxs { margin: var(--space-xxs); }
  .lg\:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .lg\:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .lg\:gap-xxs { gap: var(--space-xxs); }
  .lg\:p-xs { padding: var(--space-xs); }
  .lg\:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .lg\:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .lg\:m-xs { margin: var(--space-xs); }
  .lg\:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .lg\:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .lg\:gap-xs { gap: var(--space-xs); }
  .lg\:p-s { padding: var(--space-s); }
  .lg\:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .lg\:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .lg\:m-s { margin: var(--space-s); }
  .lg\:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .lg\:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .lg\:gap-s { gap: var(--space-s); }
  .lg\:p-m { padding: var(--space-m); }
  .lg\:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .lg\:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .lg\:m-m { margin: var(--space-m); }
  .lg\:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .lg\:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .lg\:gap-m { gap: var(--space-m); }
  .lg\:p-l { padding: var(--space-l); }
  .lg\:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .lg\:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .lg\:m-l { margin: var(--space-l); }
  .lg\:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .lg\:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .lg\:gap-l { gap: var(--space-l); }
  .lg\:p-xl { padding: var(--space-xl); }
  .lg\:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .lg\:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .lg\:m-xl { margin: var(--space-xl); }
  .lg\:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .lg\:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .lg\:gap-xl { gap: var(--space-xl); }
  .lg\:p-xxl { padding: var(--space-xxl); }
  .lg\:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .lg\:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .lg\:m-xxl { margin: var(--space-xxl); }
  .lg\:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .lg\:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .lg\:gap-xxl { gap: var(--space-xxl); }
  .lg\:p-xxxl { padding: var(--space-xxxl); }
  .lg\:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .lg\:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .lg\:m-xxxl { margin: var(--space-xxxl); }
  .lg\:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .lg\:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .lg\:gap-xxxl { gap: var(--space-xxxl); } }
@media (min-width: 1280px) { .xl\:p-xxs { padding: var(--space-xxs); }
  .xl\:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .xl\:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .xl\:m-xxs { margin: var(--space-xxs); }
  .xl\:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .xl\:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .xl\:gap-xxs { gap: var(--space-xxs); }
  .xl\:p-xs { padding: var(--space-xs); }
  .xl\:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .xl\:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .xl\:m-xs { margin: var(--space-xs); }
  .xl\:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .xl\:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .xl\:gap-xs { gap: var(--space-xs); }
  .xl\:p-s { padding: var(--space-s); }
  .xl\:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .xl\:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .xl\:m-s { margin: var(--space-s); }
  .xl\:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .xl\:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .xl\:gap-s { gap: var(--space-s); }
  .xl\:p-m { padding: var(--space-m); }
  .xl\:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .xl\:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .xl\:m-m { margin: var(--space-m); }
  .xl\:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .xl\:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .xl\:gap-m { gap: var(--space-m); }
  .xl\:p-l { padding: var(--space-l); }
  .xl\:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .xl\:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .xl\:m-l { margin: var(--space-l); }
  .xl\:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .xl\:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .xl\:gap-l { gap: var(--space-l); }
  .xl\:p-xl { padding: var(--space-xl); }
  .xl\:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .xl\:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .xl\:m-xl { margin: var(--space-xl); }
  .xl\:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .xl\:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .xl\:gap-xl { gap: var(--space-xl); }
  .xl\:p-xxl { padding: var(--space-xxl); }
  .xl\:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .xl\:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .xl\:m-xxl { margin: var(--space-xxl); }
  .xl\:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .xl\:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .xl\:gap-xxl { gap: var(--space-xxl); }
  .xl\:p-xxxl { padding: var(--space-xxxl); }
  .xl\:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .xl\:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .xl\:m-xxxl { margin: var(--space-xxxl); }
  .xl\:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .xl\:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .xl\:gap-xxxl { gap: var(--space-xxxl); } }
@media (min-width: 1536px) { .xxl\:p-xxs { padding: var(--space-xxs); }
  .xxl\:px-xxs { padding-left: var(--space-xxs); padding-right: var(--space-xxs); }
  .xxl\:py-xxs { padding-top: var(--space-xxs); padding-bottom: var(--space-xxs); }
  .xxl\:m-xxs { margin: var(--space-xxs); }
  .xxl\:mx-xxs { margin-left: var(--space-xxs); margin-right: var(--space-xxs); }
  .xxl\:my-xxs { margin-top: var(--space-xxs); margin-bottom: var(--space-xxs); }
  .xxl\:gap-xxs { gap: var(--space-xxs); }
  .xxl\:p-xs { padding: var(--space-xs); }
  .xxl\:px-xs { padding-left: var(--space-xs); padding-right: var(--space-xs); }
  .xxl\:py-xs { padding-top: var(--space-xs); padding-bottom: var(--space-xs); }
  .xxl\:m-xs { margin: var(--space-xs); }
  .xxl\:mx-xs { margin-left: var(--space-xs); margin-right: var(--space-xs); }
  .xxl\:my-xs { margin-top: var(--space-xs); margin-bottom: var(--space-xs); }
  .xxl\:gap-xs { gap: var(--space-xs); }
  .xxl\:p-s { padding: var(--space-s); }
  .xxl\:px-s { padding-left: var(--space-s); padding-right: var(--space-s); }
  .xxl\:py-s { padding-top: var(--space-s); padding-bottom: var(--space-s); }
  .xxl\:m-s { margin: var(--space-s); }
  .xxl\:mx-s { margin-left: var(--space-s); margin-right: var(--space-s); }
  .xxl\:my-s { margin-top: var(--space-s); margin-bottom: var(--space-s); }
  .xxl\:gap-s { gap: var(--space-s); }
  .xxl\:p-m { padding: var(--space-m); }
  .xxl\:px-m { padding-left: var(--space-m); padding-right: var(--space-m); }
  .xxl\:py-m { padding-top: var(--space-m); padding-bottom: var(--space-m); }
  .xxl\:m-m { margin: var(--space-m); }
  .xxl\:mx-m { margin-left: var(--space-m); margin-right: var(--space-m); }
  .xxl\:my-m { margin-top: var(--space-m); margin-bottom: var(--space-m); }
  .xxl\:gap-m { gap: var(--space-m); }
  .xxl\:p-l { padding: var(--space-l); }
  .xxl\:px-l { padding-left: var(--space-l); padding-right: var(--space-l); }
  .xxl\:py-l { padding-top: var(--space-l); padding-bottom: var(--space-l); }
  .xxl\:m-l { margin: var(--space-l); }
  .xxl\:mx-l { margin-left: var(--space-l); margin-right: var(--space-l); }
  .xxl\:my-l { margin-top: var(--space-l); margin-bottom: var(--space-l); }
  .xxl\:gap-l { gap: var(--space-l); }
  .xxl\:p-xl { padding: var(--space-xl); }
  .xxl\:px-xl { padding-left: var(--space-xl); padding-right: var(--space-xl); }
  .xxl\:py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); }
  .xxl\:m-xl { margin: var(--space-xl); }
  .xxl\:mx-xl { margin-left: var(--space-xl); margin-right: var(--space-xl); }
  .xxl\:my-xl { margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
  .xxl\:gap-xl { gap: var(--space-xl); }
  .xxl\:p-xxl { padding: var(--space-xxl); }
  .xxl\:px-xxl { padding-left: var(--space-xxl); padding-right: var(--space-xxl); }
  .xxl\:py-xxl { padding-top: var(--space-xxl); padding-bottom: var(--space-xxl); }
  .xxl\:m-xxl { margin: var(--space-xxl); }
  .xxl\:mx-xxl { margin-left: var(--space-xxl); margin-right: var(--space-xxl); }
  .xxl\:my-xxl { margin-top: var(--space-xxl); margin-bottom: var(--space-xxl); }
  .xxl\:gap-xxl { gap: var(--space-xxl); }
  .xxl\:p-xxxl { padding: var(--space-xxxl); }
  .xxl\:px-xxxl { padding-left: var(--space-xxxl); padding-right: var(--space-xxxl); }
  .xxl\:py-xxxl { padding-top: var(--space-xxxl); padding-bottom: var(--space-xxxl); }
  .xxl\:m-xxxl { margin: var(--space-xxxl); }
  .xxl\:mx-xxxl { margin-left: var(--space-xxxl); margin-right: var(--space-xxxl); }
  .xxl\:my-xxxl { margin-top: var(--space-xxxl); margin-bottom: var(--space-xxxl); }
  .xxl\:gap-xxxl { gap: var(--space-xxxl); } }
@media (prefers-color-scheme: dark) { :root:not(.light) .dark\:bg-dark { background-color: var(--dark); }
  :root:not(.light) .dark\:bg-base { background-color: var(--base); }
  :root:not(.light) .dark\:text-light { color: var(--light); }
  :root:not(.light) .dark\:text-white { color: white; }
  :root:not(.light) .dark\:border-light { border-color: var(--light-trans-30); } }
.focus-within\:ring:focus-within { outline: 2px solid var(--primary);
  outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) { .motion-safe\:animate-spin {
    animation: spin 1s linear infinite;
  }
  
  .motion-safe\:animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  }
  
  .motion-safe\:animate-bounce {
    animation: bounce 1s infinite;
  }
  
  .motion-safe\:transition {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-duration: var(--transition-base);
  } }
@media print { .print\:hidden { display: none !important; }
  .print\:block { display: block !important; }
  
  
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 0.8em;
    font-weight: normal;
  }
  
  
  .print\:avoid-break {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  
  
  .print\:break-before {
    break-before: page;
    page-break-before: always;
  }
  
  .print\:break-after {
    break-after: page;
    page-break-after: always;
  }
  
  
  body {
    color: black !important;
    background: white !important;
  } }
@media (prefers-reduced-motion: reduce) { *, *: :before, *::after;
 {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  } }
@media (prefers-color-scheme: dark) { : root:not(.light);
 {
    --color-scheme: dark;
    --bg-body: var(--dark);
    --text-body: var(--light);
    --bg-surface: var(--base-90);
    --bg-surface-raised: var(--base-80);
    --border-default: var(--light-trans-20);
  } }
@media (prefers-color-scheme: dark) { : root:not(.light) .dark:bg-dark;
 {
    background-color: var(--dark);
  }

  : root:not(.light) .dark:bg-base;
 {
    background-color: var(--base);
  }

  : root:not(.light) .dark:text-light;
 {
    color: var(--light);
  }

  : root:not(.light) .dark:text-white;
 {
    color: white;
  }

  : root:not(.light) .dark:border-light;
 {
    border-color: var(--light-trans-30);
  } }
@media (prefers-color-scheme: dark) { : root:not(.light) .dark-invert;
 {
    filter: invert(1) hue-rotate(180deg);
  } }
.header-alpha { padding-block: var(--space-s, 0.9rem);
    padding-inline: var(--gutter, 1rem);
    background: var(--neutral-ultra-light, #eee);
    &[data-header-position="fixed"] {
      position: fixed;
      inset-block-start: calc(0px + var(--wp-admin--admin-bar--height));
      inset-inline-start: 0;
    } }
.header-alpha__inner { display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: var(--content-gap, 1em); }
.etch-skip-link { position: absolute !important;
    inset-block-start: 1rem !important;
    inset-inline-start: 1rem !important;
    transform: translateY(-250%) !important;
    z-index: 100 !important;
  
    &:focus-visible {
      transform: translateY(0) !important;
    } }
.header-alpha__logo-link-wrapper { flex-shrink: 0; }
.flex-mobile-trigger { --burger-size: 24px;
    --burger-line-height: 1.5px;
    --burger-gap: 6px;
    --burger-offset: calc(var(--burger-gap) + var(--burger-line-height));
  
    display: var(--flex-nav-trigger-display, none);
    flex-direction: column;
    justify-content: center;
    block-size: var(--burger-size);
    inline-size: var(--burger-size);
    aspect-ratio: 1;
    padding: 0;
    margin: 0;
    gap: var(--burger-gap);
    z-index: 99999;
    &[aria-expanded='true'] {
      position: absolute;
      top: 1em;
      right: 1em;
      span:nth-child(1) {
        transform: translateY(var(--burger-offset)) rotate(45deg);
      }
      span:nth-child(2) {
        opacity: 0;
      }
      span:nth-child(3) {
        transform: translateY(calc(var(--burger-offset) * -1)) rotate(-45deg);
      }
    } }
.nav-burger-line { min-width: 0;
    min-height: 0;
    block-size: var(--burger-line-height);
    inline-size: 100%;
    background: var(--black);
    transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out; }
.flex-nav--custom { --mobile-nav-header: 'Navigation';
    &[data-flex-nav-status='desktop' i] {
      --flex-nav-background: transparent;
      --flex-nav-padding-block: 0;
      --flex-nav-padding-inline: 0;
      .flex-nav-item--custom {
      }
      .flex-nav-dropdown--custom {
        --panel-background: var(--white, #fff);
      }
    }
    &[data-flex-nav-status='mobile' i] {
      --flex-nav-background: var(--white, #fff);
      --flex-nav-padding-block: var(--section-space-m, 1.5em);
      --flex-nav-padding-inline: var(--gutter, 1em);
      .flex-nav-item--custom {
      }
      .flex-nav-dropdown--custom {
        --panel-background: transparent;
      }
    }
  :has(> &) {
  	container-type: inline-size;
  } }
.flex-nav { position: relative;
    
    &:has([data-panel-alignment='full' i]) {
      position: static;
    }
    
    header[data-header-detected-position='static']:has(&) {
      position: relative;
    }
    
    display: var(--nav-display, flex);
    flex-direction: row;
    align-items: center;
    inline-size: 100%;
    max-inline-size: 100%;
    z-index: 9999;
    
    &[data-flex-nav-status='desktop'] {
      ul {
        justify-content: end;
      }
    }
    
    &[data-flex-nav-status='mobile'] {
      --nav-direction: column;
      --nav-background: var(--white);
      position: absolute;
      inset-block-start: 0;
      inset-inline-start: 0;
      overflow: auto;
    }
    
    &[data-flex-nav-status='desktop' i] [data-display-item-on='mobile' i] {
      display: none;
    }
  
    &[data-flex-nav-status='mobile' i] [data-display-item-on='desktop' i] {
      display: none;
    }
    
    :where(ul, li) {
      list-style: none;
      padding: 0;
      margin: 0;
    } }
.flex-nav__list { display: flex;
    flex-direction: var(--flex-nav-direction, row);
    gap: var(--content-gap, 1rem);
    align-items: stretch;
    inline-size: 100%;
    padding: var(--flex-nav-padding-block) var(--flex-nav-padding-inline);
    background: var(--flex-nav-background, transparent);
  
    
    [data-flex-nav-status='mobile'] & {
      &::before {
        content: var(--mobile-nav-header);
        font-weight: bold;
        text-transform: uppercase;
        font-size: var(--text-s, 0.8rem);
      }
    } }
.flex-nav__list-item { display: flex;
    flex-direction: var(--nav-direction, row);
    align-items: var(--nav-item-alignment, center);
    justify-content: start;
    &[data-has-dropdown-style='standard' i] {
      position: relative;
    }
    [data-flex-nav-status='mobile'] & {
      --nav-item-alignment: start;
    } }
.flex-nav__link { line-height: 1.2;
    color: inherit;
    text-decoration: inherit; }
.flex-nav__dropdown-trigger { display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5em;
    :where(&) {
      padding: 0;
      margin: 0;
    }
    svg {
      inline-size: 1em;
      color: currentColor;
      transition: rotate .2s ease-in-out;
    }
    &[aria-expanded="true"] {
      svg {
        rotate: 180deg;
      }
    } }
.flex-nav-dropdown--custom { > * {
        box-shadow: 0 0 15px -5px hsl(from black h s l / 0.15);
    } }
.flex-nav__dropdown { --panel-block-padding: 1em;
    --panel-inline-padding: 1em;
    position: var(--panel-position, absolute);
    interpolate-size: allow-keywords;
    top: 100%;
    display: flex;
    visibility: hidden;
    
    &[data-dropdown-style='standard' i] {
      width: auto;
      inline-size: max-content;
      max-inline-size: 300px;
      min-inline-size: 200px;
      left: 0;
      right: auto;
    }
    
    &[data-panel-alignment='right' i] {
      left: auto;
      right: 0;
    }
    [data-flex-nav-status='desktop' i] &[data-panel-alignment='center' i] {
      left: 50%;
      translate: -50% 0;
    }
    [data-flex-nav-status='desktop' i] &[data-panel-alignment='full' i] {
      left: 0;
      top: 100%;
      inline-size: 100dvw;
      max-inline-size: 100dvw;
      min-inline-size: 100dvw;
      [data-flex-nav-inner] {
        border-radius: 0;
      }
    }
    
    width: 100%;
    max-inline-size: var(--panel-width);
    flex-direction: column;
    
    &[data-preview='true'].etch-builder-block {
      block-size: auto !important;
      visibiliy: visible !important;
      opacity: 1 !important;
      [data-flex-nav-inner] {
        visibility: visible !important;
        opacity: 1 !important;
        block-size: auto !important;
      }
    }
    
    [data-flex-nav-status='mobile'] & {
      --panel-inline-padding: 1em 0;
      --panel-offset-block: 0;
      display: grid;
      grid-template-rows: 0fr;
      min-block-size: 0;
      block-size: 0;
      transition:
        grid-template-rows 0.2s ease,
        block-size 0.2s ease;
    }
    [data-flex-nav-status='mobile'] &[data-open='true'] {
      grid-template-rows: 1fr;
      block-size: auto;
    } }
.flex-nav__dropdown-inner { display: flex;
    flex-direction: column;
    gap: var(--panel-content-gap, 0.5em);
    inline-size: 100%;
    max-inline-size: 100%;
    position: relative;
    top: var(--panel-offset-block, 0);
    padding: var(--panel-block-padding, 1em) var(--panel-inline-padding, 1em);
    background: var(--panel-background);
    border-radius: var(--radius, 0.5rem);
    &[data-flex-nav-inner] {
      opacity: 0;
      min-block-size: 0;
      visibility: hidden;
      transform: scaleY(0.95);
      transform-origin: top;
      overflow: hidden;
      transition:
        opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0.2s;
    }
  
    [data-dropdown-panel][data-open='true'] & {
      opacity: 1;
      visibility: visible;
      transform: scaleY(1);
    } }
LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgVkggRnJhbWV3b3JrIHYxLjAuMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKCjpyb290IHsKICAvKiBDb2xvcnMgKi8KICAtLXByaW1hcnk6ICNmNTllMGI7CiAgLS1wcmltYXJ5LWxpZ2h0LTE6ICNmZmRiNjY7CiAgLS1wcmltYXJ5LWxpZ2h0LTI6ICNmZmNiNTQ7CiAgLS1wcmltYXJ5LWxpZ2h0LTM6ICNmZmJjNDI7CiAgLS1wcmltYXJ5LWxpZ2h0LTQ6ICNmZmFkMmQ7CiAgLS1wcmltYXJ5LWRhcmstMTogI2MxNmUwMDsKICAtLXByaW1hcnktZGFyay0yOiAjOGYzZjAwOwogIC0tcHJpbWFyeS1kYXJrLTM6ICM1ZjBjMDA7CiAgLS1wcmltYXJ5LWRhcmstNDogIzJmMDAwMDsKICAtLXByaW1hcnktaG92ZXI6ICNkYjg2MDA7CiAgLS1wcmltYXJ5LXRyYW5zLTEwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuMSk7CiAgLS1wcmltYXJ5LXRyYW5zLTIwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuMik7CiAgLS1wcmltYXJ5LXRyYW5zLTMwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuMyk7CiAgLS1wcmltYXJ5LXRyYW5zLTQwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuNCk7CiAgLS1wcmltYXJ5LXRyYW5zLTUwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuNSk7CiAgLS1wcmltYXJ5LXRyYW5zLTYwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuNik7CiAgLS1wcmltYXJ5LXRyYW5zLTcwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuNyk7CiAgLS1wcmltYXJ5LXRyYW5zLTgwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuOCk7CiAgLS1wcmltYXJ5LXRyYW5zLTkwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuOSk7CiAgLS1zZWNvbmRhcnk6ICNlYTU4MGM7CiAgLS1zZWNvbmRhcnktbGlnaHQtMTogI2ZmYjY3YjsKICAtLXNlY29uZGFyeS1saWdodC0yOiAjZmY5ZTYzOwogIC0tc2Vjb25kYXJ5LWxpZ2h0LTM6ICNmZjg3NGI7CiAgLS1zZWNvbmRhcnktbGlnaHQtNDogI2ZmNzAzMTsKICAtLXNlY29uZGFyeS1kYXJrLTE6ICNiYzI5MDA7CiAgLS1zZWNvbmRhcnktZGFyay0yOiAjOGYwMDAwOwogIC0tc2Vjb25kYXJ5LWRhcmstMzogIzYyMDAwMDsKICAtLXNlY29uZGFyeS1kYXJrLTQ6ICMzNjAwMDA7CiAgLS1zZWNvbmRhcnktaG92ZXI6ICNkMzQyMDA7CiAgLS1zZWNvbmRhcnktdHJhbnMtMTA6IG9rbGNoKDAuNjQ2IDAuMTk0IDQxIC8gMC4xKTsKICAtLXNlY29uZGFyeS10cmFucy0yMDogb2tsY2goMC42NDYgMC4xOTQgNDEgLyAwLjIpOwogIC0tc2Vjb25kYXJ5LXRyYW5zLTMwOiBva2xjaCgwLjY0NiAwLjE5NCA0MSAvIDAuMyk7CiAgLS1zZWNvbmRhcnktdHJhbnMtNDA6IG9rbGNoKDAuNjQ2IDAuMTk0IDQxIC8gMC40KTsKICAtLXNlY29uZGFyeS10cmFucy01MDogb2tsY2goMC42NDYgMC4xOTQgNDEgLyAwLjUpOwogIC0tc2Vjb25kYXJ5LXRyYW5zLTYwOiBva2xjaCgwLjY0NiAwLjE5NCA0MSAvIDAuNik7CiAgLS1zZWNvbmRhcnktdHJhbnMtNzA6IG9rbGNoKDAuNjQ2IDAuMTk0IDQxIC8gMC43KTsKICAtLXNlY29uZGFyeS10cmFucy04MDogb2tsY2goMC42NDYgMC4xOTQgNDEgLyAwLjgpOwogIC0tc2Vjb25kYXJ5LXRyYW5zLTkwOiBva2xjaCgwLjY0NiAwLjE5NCA0MSAvIDAuOSk7CiAgLS1hY2NlbnQ6ICM4YjVjZjY7CiAgLS1hY2NlbnQtbGlnaHQtMTogI2VjYzRmZjsKICAtLWFjY2VudC1saWdodC0yOiAjZDNhYWZmOwogIC0tYWNjZW50LWxpZ2h0LTM6ICNiYTkwZmY7CiAgLS1hY2NlbnQtbGlnaHQtNDogI2EyNzZmZjsKICAtLWFjY2VudC1kYXJrLTE6ICM2OTMyY2M7CiAgLS1hY2NlbnQtZGFyay0yOiAjNGIwMGEzOwogIC0tYWNjZW50LWRhcmstMzogIzMwMDA3YjsKICAtLWFjY2VudC1kYXJrLTQ6ICMxYjAwNTQ7CiAgLS1hY2NlbnQtaG92ZXI6ICM3YTQ4ZTE7CiAgLS1hY2NlbnQtdHJhbnMtMTA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuMSk7CiAgLS1hY2NlbnQtdHJhbnMtMjA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuMik7CiAgLS1hY2NlbnQtdHJhbnMtMzA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuMyk7CiAgLS1hY2NlbnQtdHJhbnMtNDA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuNCk7CiAgLS1hY2NlbnQtdHJhbnMtNTA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuNSk7CiAgLS1hY2NlbnQtdHJhbnMtNjA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuNik7CiAgLS1hY2NlbnQtdHJhbnMtNzA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuNyk7CiAgLS1hY2NlbnQtdHJhbnMtODA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuOCk7CiAgLS1hY2NlbnQtdHJhbnMtOTA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuOSk7CiAgLS1zdWNjZXNzOiAjMTBiOTgxOwogIC0tc3VjY2Vzcy1saWdodC0xOiAjODBmZmNkOwogIC0tc3VjY2Vzcy1saWdodC0yOiAjNmFmNWJhOwogIC0tc3VjY2Vzcy1saWdodC0zOiAjNTJlMWE2OwogIC0tc3VjY2Vzcy1saWdodC00OiAjMzhjZDkzOwogIC0tc3VjY2Vzcy1kYXJrLTE6ICMwMDhkNTg7CiAgLS1zdWNjZXNzLWRhcmstMjogIzAwNjMzMjsKICAtLXN1Y2Nlc3MtZGFyay0zOiAjMDAzYjBlOwogIC0tc3VjY2Vzcy1kYXJrLTQ6ICMwMDE1MDA7CiAgLS1zdWNjZXNzLWhvdmVyOiAjMDBhMzZjOwogIC0tc3VjY2Vzcy10cmFucy0xMDogb2tsY2goMC42OTYgMC4xNDkgMTYyIC8gMC4xKTsKICAtLXN1Y2Nlc3MtdHJhbnMtMjA6IG9rbGNoKDAuNjk2IDAuMTQ5IDE2MiAvIDAuMik7CiAgLS1zdWNjZXNzLXRyYW5zLTMwOiBva2xjaCgwLjY5NiAwLjE0OSAxNjIgLyAwLjMpOwogIC0tc3VjY2Vzcy10cmFucy00MDogb2tsY2goMC42OTYgMC4xNDkgMTYyIC8gMC40KTsKICAtLXN1Y2Nlc3MtdHJhbnMtNTA6IG9rbGNoKDAuNjk2IDAuMTQ5IDE2MiAvIDAuNSk7CiAgLS1zdWNjZXNzLXRyYW5zLTYwOiBva2xjaCgwLjY5NiAwLjE0OSAxNjIgLyAwLjYpOwogIC0tc3VjY2Vzcy10cmFucy03MDogb2tsY2goMC42OTYgMC4xNDkgMTYyIC8gMC43KTsKICAtLXN1Y2Nlc3MtdHJhbnMtODA6IG9rbGNoKDAuNjk2IDAuMTQ5IDE2MiAvIDAuOCk7CiAgLS1zdWNjZXNzLXRyYW5zLTkwOiBva2xjaCgwLjY5NiAwLjE0OSAxNjIgLyAwLjkpOwogIC0tZXJyb3I6ICNlZjQ0NDQ7CiAgLS1lcnJvci1saWdodC0xOiAjZmZhODllOwogIC0tZXJyb3ItbGlnaHQtMjogI2ZmOTA4NzsKICAtLWVycm9yLWxpZ2h0LTM6ICNmZjc3NzA7CiAgLS1lcnJvci1saWdodC00OiAjZmY1ZTVhOwogIC0tZXJyb3ItZGFyay0xOiAjYzEwMDFjOwogIC0tZXJyb3ItZGFyay0yOiAjOTMwMDAwOwogIC0tZXJyb3ItZGFyay0zOiAjNjYwMDAwOwogIC0tZXJyb3ItZGFyay00OiAjMzkwMDAwOwogIC0tZXJyb3ItaG92ZXI6ICNkODJhMzE7CiAgLS1lcnJvci10cmFucy0xMDogb2tsY2goMC42MzcgMC4yMDggMjUgLyAwLjEpOwogIC0tZXJyb3ItdHJhbnMtMjA6IG9rbGNoKDAuNjM3IDAuMjA4IDI1IC8gMC4yKTsKICAtLWVycm9yLXRyYW5zLTMwOiBva2xjaCgwLjYzNyAwLjIwOCAyNSAvIDAuMyk7CiAgLS1lcnJvci10cmFucy00MDogb2tsY2goMC42MzcgMC4yMDggMjUgLyAwLjQpOwogIC0tZXJyb3ItdHJhbnMtNTA6IG9rbGNoKDAuNjM3IDAuMjA4IDI1IC8gMC41KTsKICAtLWVycm9yLXRyYW5zLTYwOiBva2xjaCgwLjYzNyAwLjIwOCAyNSAvIDAuNik7CiAgLS1lcnJvci10cmFucy03MDogb2tsY2goMC42MzcgMC4yMDggMjUgLyAwLjcpOwogIC0tZXJyb3ItdHJhbnMtODA6IG9rbGNoKDAuNjM3IDAuMjA4IDI1IC8gMC44KTsKICAtLWVycm9yLXRyYW5zLTkwOiBva2xjaCgwLjYzNyAwLjIwOCAyNSAvIDAuOSk7CiAgLS1saWdodDogI2ZmZmZmZjsKICAtLWxpZ2h0LWxpZ2h0LTE6ICNmZmZmZmY7CiAgLS1saWdodC1saWdodC0yOiAjZmZmZmZmOwogIC0tbGlnaHQtbGlnaHQtMzogI2ZmZmZmZjsKICAtLWxpZ2h0LWxpZ2h0LTQ6ICNmZmZmZmY7CiAgLS1saWdodC1kYXJrLTE6ICNiZWJlYmU7CiAgLS1saWdodC1kYXJrLTI6ICM4MDgwODA7CiAgLS1saWdodC1kYXJrLTM6ICM0ODQ4NDg7CiAgLS1saWdodC1kYXJrLTQ6ICMxNjE2MTY7CiAgLS1saWdodC1ob3ZlcjogI2RlZGVkZTsKICAtLWxpZ2h0LXRyYW5zLTEwOiBva2xjaCgxLjAwMCAwLjAwMCA5MCAvIDAuMSk7CiAgLS1saWdodC10cmFucy0yMDogb2tsY2goMS4wMDAgMC4wMDAgOTAgLyAwLjIpOwogIC0tbGlnaHQtdHJhbnMtMzA6IG9rbGNoKDEuMDAwIDAuMDAwIDkwIC8gMC4zKTsKICAtLWxpZ2h0LXRyYW5zLTQwOiBva2xjaCgxLjAwMCAwLjAwMCA5MCAvIDAuNCk7CiAgLS1saWdodC10cmFucy01MDogb2tsY2goMS4wMDAgMC4wMDAgOTAgLyAwLjUpOwogIC0tbGlnaHQtdHJhbnMtNjA6IG9rbGNoKDEuMDAwIDAuMDAwIDkwIC8gMC42KTsKICAtLWxpZ2h0LXRyYW5zLTcwOiBva2xjaCgxLjAwMCAwLjAwMCA5MCAvIDAuNyk7CiAgLS1saWdodC10cmFucy04MDogb2tsY2goMS4wMDAgMC4wMDAgOTAgLyAwLjgpOwogIC0tbGlnaHQtdHJhbnMtOTA6IG9rbGNoKDEuMDAwIDAuMDAwIDkwIC8gMC45KTsKICAtLWRhcms6ICMxMTE4Mjc7CiAgLS1kYXJrLWxpZ2h0LTE6ICNjMWNiZTE7CiAgLS1kYXJrLWxpZ2h0LTI6ICM5MDlhYWU7CiAgLS1kYXJrLWxpZ2h0LTM6ICM2MjZiN2U7CiAgLS1kYXJrLWxpZ2h0LTQ6ICMzNzNmNTA7CiAgLS1kYXJrLWRhcmstMTogIzA4MGYxZDsKICAtLWRhcmstZGFyay0yOiAjMDMwNjEzOwogIC0tZGFyay1kYXJrLTM6ICMwMDAxMGE7CiAgLS1kYXJrLWRhcmstNDogIzAwMDAwMzsKICAtLWRhcmstaG92ZXI6ICMwYzEzMjI7CiAgLS1kYXJrLXRyYW5zLTEwOiBva2xjaCgwLjIxMCAwLjAzMiAyNjUgLyAwLjEpOwogIC0tZGFyay10cmFucy0yMDogb2tsY2goMC4yMTAgMC4wMzIgMjY1IC8gMC4yKTsKICAtLWRhcmstdHJhbnMtMzA6IG9rbGNoKDAuMjEwIDAuMDMyIDI2NSAvIDAuMyk7CiAgLS1kYXJrLXRyYW5zLTQwOiBva2xjaCgwLjIxMCAwLjAzMiAyNjUgLyAwLjQpOwogIC0tZGFyay10cmFucy01MDogb2tsY2goMC4yMTAgMC4wMzIgMjY1IC8gMC41KTsKICAtLWRhcmstdHJhbnMtNjA6IG9rbGNoKDAuMjEwIDAuMDMyIDI2NSAvIDAuNik7CiAgLS1kYXJrLXRyYW5zLTcwOiBva2xjaCgwLjIxMCAwLjAzMiAyNjUgLyAwLjcpOwogIC0tZGFyay10cmFucy04MDogb2tsY2goMC4yMTAgMC4wMzIgMjY1IC8gMC44KTsKICAtLWRhcmstdHJhbnMtOTA6IG9rbGNoKDAuMjEwIDAuMDMyIDI2NSAvIDAuOSk7CgogIC8qIFNwYWNpbmcgKi8KICAtLXNwYWNlLTJ4czogNC43NHB4OwogIC0tc3BhY2UteHM6IDcuMTFweDsKICAtLXNwYWNlLXM6IDEwLjY3cHg7CiAgLS1zcGFjZS1tOiAxNnB4OwogIC0tc3BhY2UtbDogMjRweDsKICAtLXNwYWNlLXhsOiAzNnB4OwogIC0tc3BhY2UtMnhsOiA1NHB4OwoKICAvKiBUeXBvZ3JhcGh5ICovCiAgLS1mb250LWJhc2U6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAtLWZvbnQtaGVhZGluZzogaW5oZXJpdDsKICAtLWZvbnQtbW9ubzogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgIlNGIE1vbm8iLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgLS1iYXNlLWZvbnQtc2l6ZTogMTZweDsgLyogTW9iaWxlIGJhc2UgKi8KICAtLWJhc2UtbGluZS1oZWlnaHQ6IDEuNjsKICAtLXRleHQtMnhzOiA4LjE5cHg7CiAgLS10ZXh0LXhzOiAxMC4yNHB4OwogIC0tdGV4dC1zOiAxMi44cHg7CiAgLS10ZXh0LW06IDE2cHg7CiAgLS10ZXh0LWw6IDIwcHg7CiAgLS10ZXh0LXhsOiAyNXB4OwogIC0tdGV4dC0yeGw6IDMxLjI1cHg7CgogIC8qIEJvcmRlciBSYWRpdXMgKi8KICAtLXJhZGl1cy1ub25lOiAwcHg7CiAgLS1yYWRpdXMteHM6IGNsYW1wKDMuMDdweCwgMC4xODIzcmVtICsgMC4wNDgxdncsIDMuODRweCk7CiAgLS1yYWRpdXMtczogY2xhbXAoMy44NHB4LCAwLjIyOHJlbSArIDAuMDZ2dywgNC44cHgpOwogIC0tcmFkaXVzLW06IGNsYW1wKDQuOHB4LCAwLjI4NXJlbSArIDAuMDc1dncsIDZweCk7CiAgLS1yYWRpdXMtbDogY2xhbXAoNnB4LCAwLjM1NjNyZW0gKyAwLjA5Mzh2dywgNy41cHgpOwogIC0tcmFkaXVzLXhsOiBjbGFtcCg3LjVweCwgMC40NDUzcmVtICsgMC4xMTc1dncsIDkuMzhweCk7CiAgLS1yYWRpdXMteHhsOiBjbGFtcCg5LjM4cHgsIDAuNTU3cmVtICsgMC4xNDYzdncsIDExLjcycHgpOwogIC0tcmFkaXVzLWZ1bGw6IDk5OTlweDsKCiAgLyogU2hhZG93cyAqLwogIC0tc2hhZG93LXhzOiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogIC0tc2hhZG93LXM6IDAgMXB4IDNweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTsKICAtLXNoYWRvdy1tOiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgLS1zaGFkb3ctbDogMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgLS1zaGFkb3cteGw6IDAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogIC0tc2hhZG93LXh4bDogMCAyNXB4IDUwcHggLTEycHggcmdiYSgwLCAwLCAwLCAwLjI1KTsKCiAgLyogVHJhbnNpdGlvbnMgKi8KICAtLXRyYW5zaXRpb24tZmFzdDogMTUwbXM7CiAgLS10cmFuc2l0aW9uLWJhc2U6IDI1MG1zOwogIC0tdHJhbnNpdGlvbi1zbG93OiAzNTBtczsKCiAgLyogWi1JbmRleCAqLwogIC0tei0wOiAwOwogIC0tei0xMDogMTA7CiAgLS16LWRyb3Bkb3duOiAxMDAwOwogIC0tei1zdGlja3k6IDEwMjA7CiAgLS16LWZpeGVkOiAxMDMwOwogIC0tei1vdmVybGF5OiAxMDQwOwogIC0tei1tb2RhbDogMTA1MDsKCiAgLyogR2VuZXJhbCBEZWZhdWx0cyAqLwogIC0tc2l0ZS1jb250ZW50LWJnOiB2YXIoLS1wcmltYXJ5KTsKCgogIC8qIExheW91dCDigJQgRmx1aWQgKFV0b3BpYS1zdHlsZSkgKi8KICAtLWNvbnRhaW5lci1tYXgtd2lkdGg6IDEyMDBweDsKICAtLWNvbnRhaW5lci1wYWRkaW5nOiBjbGFtcCgxMC42N3B4LCAwLjYwMDJyZW0gKyAwLjMzMzF2dywgMTZweCk7CiAgLS1zZWN0aW9uLXBhZGRpbmcteTogY2xhbXAoMjRweCwgMS4zNXJlbSArIDAuNzV2dywgMzZweCk7CiAgLS1zZWN0aW9uLXBhZGRpbmcteDogY2xhbXAoMTAuNjdweCwgMC42MDAycmVtICsgMC4zMzMxdncsIDE2cHgpOwogIC0tZ2FwOiBjbGFtcCgxMC42N3B4LCAwLjYwMDJyZW0gKyAwLjMzMzF2dywgMTZweCk7CiAgLS1zdGFjay1nYXA6IGNsYW1wKDE2cHgsIDAuOXJlbSArIDAuNXZ3LCAyNHB4KTsKICAtLWd1dHRlci13aWR0aDogY2xhbXAoMTAuNjdweCwgMC42MDAycmVtICsgMC4zMzMxdncsIDE2cHgpOyAvKiBsZWdhY3kgYWxpYXMgKi8KICAtLWNvbnRhaW5lci1zbTogY2FsYyh2YXIoLS1jb250YWluZXItbWF4LXdpZHRoKSAqIDAuNzUpOwogIC0tY29udGFpbmVyLWxnOiBjYWxjKHZhcigtLWNvbnRhaW5lci1tYXgtd2lkdGgpICogMS4yNSk7CgogIC8qIEZsdWlkIFNwYWNlIFBhaXJzICovCiAgLS1zcGFjZS0yeHMteHM6IGNsYW1wKDQuNzRweCwgMC4yNjY2cmVtICsgMC4xNDgxdncsIDcuMTFweCk7CiAgLS1zcGFjZS14cy1zOiBjbGFtcCg3LjExcHgsIDAuMzk5OXJlbSArIDAuMjIyNXZ3LCAxMC42N3B4KTsKICAtLXNwYWNlLXMtbTogY2xhbXAoMTAuNjdweCwgMC42MDAycmVtICsgMC4zMzMxdncsIDE2cHgpOwogIC0tc3BhY2UtbS1sOiBjbGFtcCgxNnB4LCAwLjlyZW0gKyAwLjV2dywgMjRweCk7CiAgLS1zcGFjZS1sLXhsOiBjbGFtcCgyNHB4LCAxLjM1cmVtICsgMC43NXZ3LCAzNnB4KTsKICAtLXNwYWNlLXhsLTJ4bDogY2xhbXAoMzZweCwgMi4wMjVyZW0gKyAxLjEyNXZ3LCA1NHB4KTsKfQoKCi8qIFZIIEZyYW1ld29yayAtIENsZWFuIFZhbmlsbGEgQ1NTIFJlc2V0ICovCgoqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9CgovKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4vcGFkZGluZyBmb3Igcm9vdCB0ZXh0IGVsZW1lbnRzICovCmJvZHksIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGZpZ3VyZSwgYmxvY2txdW90ZSwgZGwsIGRkIHsKICBtYXJnaW46IDA7Cn0KCi8qIExpc3RzIC0gbm8gZGVmYXVsdCBtYXJrZXJzIG9yIGluZGVudGF0aW9uICovCnVsLCBvbCwgbWVudSB7CiAgbGlzdC1zdHlsZTogbm9uZTsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsKfQoKLyogVGFibGVzICovCnRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgYm9yZGVyLXNwYWNpbmc6IDA7IH0KCi8qIEZvcm0gZWxlbWVudHMgKi8KYnV0dG9uLCBpbnB1dCwgb3B0Z3JvdXAsIHNlbGVjdCwgdGV4dGFyZWEgewogIGZvbnQ6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyOiBub25lOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9CmJ1dHRvbiwgc2VsZWN0IHsgY3Vyc29yOiBwb2ludGVyOyB9CnRleHRhcmVhIHsgZGlzcGxheTogYmxvY2s7IHJlc2l6ZTogdmVydGljYWw7IH0KCi8qIE1lZGlhIGVsZW1lbnRzICovCmltZywgcGljdHVyZSwgdmlkZW8sIGNhbnZhcywgc3ZnIHsKICBkaXNwbGF5OiBibG9jazsKICBtYXgtd2lkdGg6IDEwMCU7Cn0KCi8qIExpbmtzICovCmEgewogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICBjb2xvcjogaW5oZXJpdDsKICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi8qIFJlbW92ZSBhbmltYXRpb25zIGZvciByZWR1Y2VkIG1vdGlvbiBwcmVmZXJlbmNlICovCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7CiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50OwogICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7CiAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDsKICB9Cn0KCi8qIEdsb2JhbCBUeXBvZ3JhcGh5ICYgQmFja2dyb3VuZHMgKi8KaHRtbCB7CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKfQoKYm9keSB7CiAgLyogRnVuZGFtZW50YWxzIGNvbmZpZyB3aWxsIGluamVjdCBwcm9wZXJ0aWVzIGhlcmUgKi8KfQoKaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgLyogRnVuZGFtZW50YWxzIGNvbmZpZyB3aWxsIGluamVjdCBwcm9wZXJ0aWVzIGhlcmUgKi8KfQoKCgovKiBMYXlvdXQgRWxlbWVudHMgKi8KYm9keSB7CiAgbWluLWhlaWdodDogMTAwdmg7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgouaGVhZGVyLCAuZm9vdGVyIHsKICB3aWR0aDogMTAwJTsKfQoKLm1haW4gewogIGZsZXg6IDE7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9Cgouc2VjdGlvbiB7CiAgd2lkdGg6IDEwMCU7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIHBhZGRpbmc6IHZhcigtLXNlY3Rpb24tcGFkZGluZy15KSB2YXIoLS1zZWN0aW9uLXBhZGRpbmcteCk7Cn0KCi5jb250YWluZXIgewogIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyLW1heC13aWR0aCk7CiAgd2lkdGg6IDEwMCU7CiAgbWFyZ2luOiAwIGF1dG87CiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jb250YWluZXItcGFkZGluZyk7CiAgcGFkZGluZy1yaWdodDogdmFyKC0tY29udGFpbmVyLXBhZGRpbmcpOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBnYXA6IHZhcigtLWdhcCwgdmFyKC0tZ3V0dGVyLXdpZHRoKSk7Cn0KCi8qIEJhc2UgdXRpbGl0eSBmb3IgaGlkaW5nIGVsZW1lbnRzICovCi5oaWRkZW4geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KCi8qIENvbnRhaW5lciBWYXJpYW50cyAqLwouY29udGFpbmVyLW5hcnJvdyB7IG1heC13aWR0aDogY2FsYyh2YXIoLS1jb250YWluZXItbWF4LXdpZHRoKSAqIDAuNzUpOyB9Ci5jb250YWluZXItd2lkZSAgIHsgbWF4LXdpZHRoOiBjYWxjKHZhcigtLWNvbnRhaW5lci1tYXgtd2lkdGgpICogMS4yNSk7IH0KLmNvbnRhaW5lci1mdWxsICAgeyBtYXgtd2lkdGg6IDEwMCU7IH0KCi8qIFNlY3Rpb24gU2l6ZSBWYXJpYW50cyAqLwouc2VjdGlvbi0tc20geyBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zdGFjay1nYXApOyB9Ci5zZWN0aW9uLS1sZyB7IHBhZGRpbmctYmxvY2s6IGNhbGModmFyKC0tc2VjdGlvbi1wYWRkaW5nLXkpICogMS41KTsgfQoKCgovKiBAdmgtZGFya21vZGUtYmxvY2s6c3RhcnQgKi8KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgRGFyayBNb2RlIFN1cHBvcnQKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCi8qIERhcmsgbW9kZSBjb2xvciBzY2hlbWUgdmFyaWFibGVzICovCjpyb290IHsKICAtLWNvbG9yLXNjaGVtZTogbGlnaHQ7CiAgCiAgLyogTGlnaHQgbW9kZSBkZWZhdWx0cyAoYWxyZWFkeSBkZWZpbmVkIGluIGNvbG9ycykgKi8KICAtLWJnLWJvZHk6IHZhcigtLWxpZ2h0KTsKICAtLXRleHQtYm9keTogdmFyKC0tYmFzZSk7CiAgLS1iZy1zdXJmYWNlOiB3aGl0ZTsKICAtLWJnLXN1cmZhY2UtcmFpc2VkOiB2YXIoLS1saWdodCk7CiAgLS1ib3JkZXItZGVmYXVsdDogdmFyKC0tYmFzZS10cmFucy0yMCk7Cn0KCi8qIERhcmsgbW9kZSB1c2luZyBjbGFzcyB0b2dnbGUgKi8KLmRhcmsgewogIC0tY29sb3Itc2NoZW1lOiBkYXJrOwogIAogIC0tYmctYm9keTogdmFyKC0tZGFyayk7CiAgLS10ZXh0LWJvZHk6IHZhcigtLWxpZ2h0KTsKICAtLWJnLXN1cmZhY2U6IHZhcigtLWJhc2UtOTApOwogIC0tYmctc3VyZmFjZS1yYWlzZWQ6IHZhcigtLWJhc2UtODApOwogIC0tYm9yZGVyLWRlZmF1bHQ6IHZhcigtLWxpZ2h0LXRyYW5zLTIwKTsKICAtLXNpdGUtY29udGVudC1iZzogdmFyKC0tcHJpbWFyeS1saWdodC0xKTsKfQoKLyogRGFyayBtb2RlIHVzaW5nIHN5c3RlbSBwcmVmZXJlbmNlICovCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICA6cm9vdDpub3QoLmxpZ2h0KSB7CiAgICAtLWNvbG9yLXNjaGVtZTogZGFyazsKICAgIAogICAgLS1iZy1ib2R5OiB2YXIoLS1kYXJrKTsKICAgIC0tdGV4dC1ib2R5OiB2YXIoLS1saWdodCk7CiAgICAtLWJnLXN1cmZhY2U6IHZhcigtLWJhc2UtOTApOwogICAgLS1iZy1zdXJmYWNlLXJhaXNlZDogdmFyKC0tYmFzZS04MCk7CiAgICAtLWJvcmRlci1kZWZhdWx0OiB2YXIoLS1saWdodC10cmFucy0yMCk7CiAgICAtLXNpdGUtY29udGVudC1iZzogdmFyKC0tcHJpbWFyeS1saWdodC0xKTsKICB9Cn0KCi8qIERhcmsgbW9kZSB1dGlsaXR5IGNsYXNzZXMgKi8KLmRhcmtcOmJnLWRhcmsgeyB9Ci5kYXJrXDp0ZXh0LWxpZ2h0IHsgfQoKLmRhcmsgLmRhcmtcOmJnLWRhcmsgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXJrKTsgfQouZGFyayAuZGFya1w6YmctYmFzZSB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhc2UpOyB9Ci5kYXJrIC5kYXJrXDp0ZXh0LWxpZ2h0IHsgY29sb3I6IHZhcigtLWxpZ2h0KTsgfQouZGFyayAuZGFya1w6dGV4dC13aGl0ZSB7IGNvbG9yOiB3aGl0ZTsgfQouZGFyayAuZGFya1w6Ym9yZGVyLWxpZ2h0IHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1saWdodC10cmFucy0zMCk7IH0KCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICA6cm9vdDpub3QoLmxpZ2h0KSAuZGFya1w6YmctZGFyayB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmspOyB9CiAgOnJvb3Q6bm90KC5saWdodCkgLmRhcmtcOmJnLWJhc2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYXNlKTsgfQogIDpyb290Om5vdCgubGlnaHQpIC5kYXJrXDp0ZXh0LWxpZ2h0IHsgY29sb3I6IHZhcigtLWxpZ2h0KTsgfQogIDpyb290Om5vdCgubGlnaHQpIC5kYXJrXDp0ZXh0LXdoaXRlIHsgY29sb3I6IHdoaXRlOyB9CiAgOnJvb3Q6bm90KC5saWdodCkgLmRhcmtcOmJvcmRlci1saWdodCB7IGJvcmRlci1jb2xvcjogdmFyKC0tbGlnaHQtdHJhbnMtMzApOyB9Cn0KCi8qIFNlbWFudGljIGRhcmsgbW9kZSBjbGFzc2VzICovCi5iZy1ib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctYm9keSk7IH0KLnRleHQtYm9keSB7IGNvbG9yOiB2YXIoLS10ZXh0LWJvZHkpOyB9Ci5iZy1zdXJmYWNlIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctc3VyZmFjZSk7IH0KLmJnLXN1cmZhY2UtcmFpc2VkIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctc3VyZmFjZS1yYWlzZWQpOyB9Ci5ib3JkZXItZGVmYXVsdCB7IGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQpOyB9CgovKiBJbnZlcnQgZm9yIGRhcmsgbW9kZSAqLwouZGFyay1pbnZlcnQgewogIGZpbHRlcjogaW52ZXJ0KDApOwp9CgouZGFyayAuZGFyay1pbnZlcnQsCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICA6cm9vdDpub3QoLmxpZ2h0KSAuZGFyay1pbnZlcnQgewogICAgZmlsdGVyOiBpbnZlcnQoMSkgaHVlLXJvdGF0ZSgxODBkZWcpOwogIH0KfQovKiBAdmgtZGFya21vZGUtYmxvY2s6ZW5kICovCgovKiBTZW1hbnRpYyBTdHlsZSBHdWlkZSBNYXBwaW5ncyAqLwpoMSwgLmgxIHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsKICBmb250LXNpemU6IHZhcigtLXRleHQteHhsKTsKICBmb250LXdlaWdodDogNzAwOwogIGNvbG9yOiBpbmhlcml0Owp9CgpoMiwgLmgyIHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsKICBmb250LXNpemU6IHZhcigtLXRleHQteGwpOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgY29sb3I6IGluaGVyaXQ7Cn0KCmgzLCAuaDMgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sKTsKICBmb250LXdlaWdodDogNjAwOwogIGNvbG9yOiBpbmhlcml0Owp9CgpoNCwgLmg0IHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsKICBmb250LXNpemU6IHZhcigtLXRleHQtbSk7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBjb2xvcjogaW5oZXJpdDsKfQoKaDUsIC5oNSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaGVhZGluZyk7CiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXMpOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgY29sb3I6IGluaGVyaXQ7Cn0KCmg2LCAuaDYgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14cyk7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBjb2xvcjogaW5oZXJpdDsKfQoKcCwgLnAgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJhc2UpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1tKTsKICBmb250LXdlaWdodDogNDAwOwogIGNvbG9yOiB2YXIoLS10ZXh0LWJvZHkpOwp9Cgpib2R5IHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1iYXNlKTsKICBmb250LXNpemU6IHZhcigtLXRleHQtbSk7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBjb2xvcjogdmFyKC0tZGFyayk7Cn0KCi5idG4tcHJpbWFyeSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7CiAgY29sb3I6IHZhcigtLWxpZ2h0KTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbSk7CiAgcGFkZGluZzogdmFyKC0tc3BhY2UtcykgdmFyKC0tc3BhY2UtbSk7Cn0KCi5idG4tc2Vjb25kYXJ5IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW0pOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXMpIHZhcigtLXNwYWNlLW0pOwp9CgouY2FyZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQpOwogIGNvbG9yOiBpbmhlcml0OwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1sKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbSk7Cn0KCmlucHV0LmZvcm0tY29udHJvbCwgdGV4dGFyZWEuZm9ybS1jb250cm9sLCBzZWxlY3QuZm9ybS1jb250cm9sIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodCk7CiAgY29sb3I6IHZhcigtLWRhcmspOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyYXktMzAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcyk7CiAgcGFkZGluZzogdmFyKC0tc3BhY2UteHMpIHZhcigtLXNwYWNlLXMpOwp9CgoKCi8qIC0tLSBDdXN0b20gRnVuZGFtZW50YWxzIFN0eWxlc2hlZXRzIC0tLSAqLwoKLyogZ2xvYmFsLmNzcyAqLwovKiBHbG9iYWwgQ3VzdG9tIENTUyAqLwo6cm9vdCB7CiAgLS1zaXRlLXdpZHRoOiAxMjAwcHg7CiAgLS1zaXRlLXNoYWRvdzogdmFyKC0tc2hhZG93LXhsKTsKfQoK
:where([data-etch-element="section"]) { inline-size: 100%;
  display: flex;
  flex-direction: column;
  align-items: center; }
.header-alpha { padding-block: var(--space-s, 0.9rem);
  padding-inline: var(--gutter, 1rem);
  background: var(--neutral-ultra-light, #eee);
  &[data-header-position="fixed"];
 {
    position: fixed;
    inset-block-start: calc(0px + var(--wp-admin--admin-bar--height));
    inset-inline-start: 0;
  } }
.etch-skip-link { position: absolute !important;
  inset-block-start: 1rem !important;
  inset-inline-start: 1rem !important;
  transform: translateY(-250%) !important;
  z-index: 100 !important;
  &: focus-visible;
 {
    transform: translateY(0) !important;
  } }
.flex-mobile-trigger { --burger-size: 24px;
  --burger-line-height: 1.5px;
  --burger-gap: 6px;
  --burger-offset: calc(var(--burger-gap) + var(--burger-line-height));
  display: var(--flex-nav-trigger-display, none);
  flex-direction: column;
  justify-content: center;
  block-size: var(--burger-size);
  inline-size: var(--burger-size);
  aspect-ratio: 1;
  padding: 0;
  margin: 0;
  gap: var(--burger-gap);
  z-index: 99999;
  &[aria-expanded='true'];
 {
    position: absolute;
    top: 1em;
    right: 1em;
    span: nth-child(1);
 {
      transform: translateY(var(--burger-offset)) rotate(45deg);
    }

    span: nth-child(2);
 {
      opacity: 0;
    }

    span: nth-child(3);
 {
      transform: translateY(calc(var(--burger-offset) * -1)) rotate(-45deg);
    }

  } }
.nav-burger-line { min-width: 0;
  min-height: 0;
  block-size: var(--burger-line-height);
  inline-size: 100%;
  background: var(--black);
  transition: transform 0.3s ease-in-out, opacity 0.3s ease-in-out; }
.flex-nav--custom { --mobile-nav-header: 'Navigation';
  &[data-flex-nav-status='desktop' i];
 {
    --flex-nav-background: transparent;
    --flex-nav-padding-block: 0;
    --flex-nav-padding-inline: 0;
    .flex-nav-item--custom;
 {
    }

    .flex-nav-dropdown--custom;
 {
      --panel-background: var(--white, #fff);
    }

  }

  &[data-flex-nav-status='mobile' i];
 {
    --flex-nav-background: var(--white, #fff);
    --flex-nav-padding-block: var(--section-space-m, 1.5em);
    --flex-nav-padding-inline: var(--gutter, 1em);
    .flex-nav-item--custom;
 {
    }

    .flex-nav-dropdown--custom;
 {
      --panel-background: transparent;
    }

  }

  : has(> &);
 {
    container-type: inline-size;
  } }
.flex-nav { position: relative;
  &: has([data-panel-alignment='full' i]);
 {
    position: static;
  }

  header[data-header-detected-position='static']: has(&);
 {
    position: relative;
  }

  display: var(--nav-display, flex);
  flex-direction: row;
  align-items: center;
  inline-size: 100%;
  max-inline-size: 100%;
  z-index: 9999;
  &[data-flex-nav-status='desktop'];
 {
    ul;
 {
      justify-content: end;
    }

  }

  &[data-flex-nav-status='mobile'];
 {
    --nav-direction: column;
    --nav-background: var(--white);
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 0;
    overflow: auto;
  }

  &[data-flex-nav-status='desktop' i] [data-display-item-on='mobile' i];
 {
    display: none;
  }

  &[data-flex-nav-status='mobile' i] [data-display-item-on='desktop' i];
 {
    display: none;
  }

  : where(ul, li);
 {
    list-style: none;
    padding: 0;
    margin: 0;
  } }
.flex-nav__list { display: flex;
  flex-direction: var(--flex-nav-direction, row);
  gap: var(--content-gap, 1rem);
  align-items: stretch;
  inline-size: 100%;
  padding: var(--flex-nav-padding-block) var(--flex-nav-padding-inline);
  background: var(--flex-nav-background, transparent);
  [data-flex-nav-status='mobile'] &;
 {
    &: :before;
 {
      content: var(--mobile-nav-header);
      font-weight: bold;
      text-transform: uppercase;
      font-size: var(--text-s, 0.8rem);
    }

  } }
.flex-nav__list-item { display: flex;
  flex-direction: var(--nav-direction, row);
  align-items: var(--nav-item-alignment, center);
  justify-content: start;
  &[data-has-dropdown-style='standard' i];
 {
    position: relative;
  }

  [data-flex-nav-status='mobile'] &;
 {
    --nav-item-alignment: start;
  } }
.flex-nav__link { line-height: 1.2;
  color: inherit;
  text-decoration: inherit; }
.flex-nav__dropdown-trigger { display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5em;
  : where(&);
 {
    padding: 0;
    margin: 0;
  }

  svg;
 {
    inline-size: 1em;
    color: currentColor;
    transition: rotate .2s ease-in-out;
  }

  &[aria-expanded="true"];
 {
    svg;
 {
      rotate: 180deg;
    }

  } }
.flex-nav__dropdown-inner { display: flex;
  flex-direction: column;
  gap: var(--panel-content-gap, 0.5em);
  inline-size: 100%;
  max-inline-size: 100%;
  position: relative;
  top: var(--panel-offset-block, 0);
  padding: var(--panel-block-padding, 1em) var(--panel-inline-padding, 1em);
  background: var(--panel-background);
  border-radius: var(--radius, 0.5rem);
  &[data-flex-nav-inner];
 {
    opacity: 0;
    min-block-size: 0;
    visibility: hidden;
    transform: scaleY(0.95);
    transform-origin: top;
    overflow: hidden;
    transition: opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0.2s;
  }

  [data-dropdown-panel][data-open='true'] &;
 {
    opacity: 1;
    visibility: visible;
    transform: scaleY(1);
  } }
.vh-heading { font-size: 2rem;
    font-weight: 700;
    margin-bottom: 1rem; }
:where([data-etch-element="section"]) { inline-size: 100%;
  display: flex;
  flex-direction: column;
  align-items: center; }
:where([data-etch-element="container"]) { inline-size: 100%;
  display: flex;
  flex-direction: column;
  max-width: var(--content-width, 1366px);
  align-self: center;
  margin-inline: auto; }
.header-alpha__inner { display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: var(--content-gap, 1em); }
.flex-nav-dropdown--custom { > *;
 {
    box-shadow: 0 0 15px -5px hsl(from black h s l / 0.15);
  } }
.flex-nav__dropdown { --panel-block-padding: 1em;
  --panel-inline-padding: 1em;
  position: var(--panel-position, absolute);
  interpolate-size: allow-keywords;
  top: 100%;
  display: flex;
  visibility: hidden;
  &[data-dropdown-style='standard' i];
 {
    width: auto;
    inline-size: max-content;
    max-inline-size: 300px;
    min-inline-size: 200px;
    left: 0;
    right: auto;
  }

  &[data-panel-alignment='right' i];
 {
    left: auto;
    right: 0;
  }

  [data-flex-nav-status='desktop' i] &[data-panel-alignment='center' i];
 {
    left: 50%;
    translate: -50% 0;
  }

  [data-flex-nav-status='desktop' i] &[data-panel-alignment='full' i];
 {
    left: 0;
    top: 100%;
    inline-size: 100dvw;
    max-inline-size: 100dvw;
    min-inline-size: 100dvw;
    [data-flex-nav-inner];
 {
      border-radius: 0;
    }

  }

  width: 100%;
  max-inline-size: var(--panel-width);
  flex-direction: column;
  &[data-preview='true'].etch-builder-block;
 {
    block-size: auto !important;
    visibiliy: visible !important;
    opacity: 1 !important;
    [data-flex-nav-inner];
 {
      visibility: visible !important;
      opacity: 1 !important;
      block-size: auto !important;
    }

  }

  [data-flex-nav-status='mobile'] &;
 {
    --panel-inline-padding: 1em 0;
    --panel-offset-block: 0;
    display: grid;
    grid-template-rows: 0fr;
    min-block-size: 0;
    block-size: 0;
    transition: grid-template-rows 0.2s ease,
        block-size 0.2s ease;
  }

  [data-flex-nav-status='mobile'] &[data-open='true'];
 {
    grid-template-rows: 1fr;
    block-size: auto;
  } }
.vh-heading { font-size: 2rem;
  font-weight: 700;
  margin-bottom: 1rem; }
LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgVkggRnJhbWV3b3JrIHYxLjAuMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKCjpyb290IHsKICAvKiBDb2xvcnMgKi8KICAtLXByaW1hcnk6ICNmNTllMGI7CiAgLS1wcmltYXJ5LWxpZ2h0LTE6ICNmZmRiNjY7CiAgLS1wcmltYXJ5LWxpZ2h0LTI6ICNmZmNiNTQ7CiAgLS1wcmltYXJ5LWxpZ2h0LTM6ICNmZmJjNDI7CiAgLS1wcmltYXJ5LWxpZ2h0LTQ6ICNmZmFkMmQ7CiAgLS1wcmltYXJ5LWRhcmstMTogI2MxNmUwMDsKICAtLXByaW1hcnktZGFyay0yOiAjOGYzZjAwOwogIC0tcHJpbWFyeS1kYXJrLTM6ICM1ZjBjMDA7CiAgLS1wcmltYXJ5LWRhcmstNDogIzJmMDAwMDsKICAtLXByaW1hcnktaG92ZXI6ICNkYjg2MDA7CiAgLS1wcmltYXJ5LXRyYW5zLTEwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuMSk7CiAgLS1wcmltYXJ5LXRyYW5zLTIwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuMik7CiAgLS1wcmltYXJ5LXRyYW5zLTMwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuMyk7CiAgLS1wcmltYXJ5LXRyYW5zLTQwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuNCk7CiAgLS1wcmltYXJ5LXRyYW5zLTUwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuNSk7CiAgLS1wcmltYXJ5LXRyYW5zLTYwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuNik7CiAgLS1wcmltYXJ5LXRyYW5zLTcwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuNyk7CiAgLS1wcmltYXJ5LXRyYW5zLTgwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuOCk7CiAgLS1wcmltYXJ5LXRyYW5zLTkwOiBva2xjaCgwLjc2OSAwLjE2NSA3MCAvIDAuOSk7CiAgLS1zZWNvbmRhcnk6ICNlYTU4MGM7CiAgLS1zZWNvbmRhcnktbGlnaHQtMTogI2ZmYjY3YjsKICAtLXNlY29uZGFyeS1saWdodC0yOiAjZmY5ZTYzOwogIC0tc2Vjb25kYXJ5LWxpZ2h0LTM6ICNmZjg3NGI7CiAgLS1zZWNvbmRhcnktbGlnaHQtNDogI2ZmNzAzMTsKICAtLXNlY29uZGFyeS1kYXJrLTE6ICNiYzI5MDA7CiAgLS1zZWNvbmRhcnktZGFyay0yOiAjOGYwMDAwOwogIC0tc2Vjb25kYXJ5LWRhcmstMzogIzYyMDAwMDsKICAtLXNlY29uZGFyeS1kYXJrLTQ6ICMzNjAwMDA7CiAgLS1zZWNvbmRhcnktaG92ZXI6ICNkMzQyMDA7CiAgLS1zZWNvbmRhcnktdHJhbnMtMTA6IG9rbGNoKDAuNjQ2IDAuMTk0IDQxIC8gMC4xKTsKICAtLXNlY29uZGFyeS10cmFucy0yMDogb2tsY2goMC42NDYgMC4xOTQgNDEgLyAwLjIpOwogIC0tc2Vjb25kYXJ5LXRyYW5zLTMwOiBva2xjaCgwLjY0NiAwLjE5NCA0MSAvIDAuMyk7CiAgLS1zZWNvbmRhcnktdHJhbnMtNDA6IG9rbGNoKDAuNjQ2IDAuMTk0IDQxIC8gMC40KTsKICAtLXNlY29uZGFyeS10cmFucy01MDogb2tsY2goMC42NDYgMC4xOTQgNDEgLyAwLjUpOwogIC0tc2Vjb25kYXJ5LXRyYW5zLTYwOiBva2xjaCgwLjY0NiAwLjE5NCA0MSAvIDAuNik7CiAgLS1zZWNvbmRhcnktdHJhbnMtNzA6IG9rbGNoKDAuNjQ2IDAuMTk0IDQxIC8gMC43KTsKICAtLXNlY29uZGFyeS10cmFucy04MDogb2tsY2goMC42NDYgMC4xOTQgNDEgLyAwLjgpOwogIC0tc2Vjb25kYXJ5LXRyYW5zLTkwOiBva2xjaCgwLjY0NiAwLjE5NCA0MSAvIDAuOSk7CiAgLS1hY2NlbnQ6ICM4YjVjZjY7CiAgLS1hY2NlbnQtbGlnaHQtMTogI2VjYzRmZjsKICAtLWFjY2VudC1saWdodC0yOiAjZDNhYWZmOwogIC0tYWNjZW50LWxpZ2h0LTM6ICNiYTkwZmY7CiAgLS1hY2NlbnQtbGlnaHQtNDogI2EyNzZmZjsKICAtLWFjY2VudC1kYXJrLTE6ICM2OTMyY2M7CiAgLS1hY2NlbnQtZGFyay0yOiAjNGIwMGEzOwogIC0tYWNjZW50LWRhcmstMzogIzMwMDA3YjsKICAtLWFjY2VudC1kYXJrLTQ6ICMxYjAwNTQ7CiAgLS1hY2NlbnQtaG92ZXI6ICM3YTQ4ZTE7CiAgLS1hY2NlbnQtdHJhbnMtMTA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuMSk7CiAgLS1hY2NlbnQtdHJhbnMtMjA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuMik7CiAgLS1hY2NlbnQtdHJhbnMtMzA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuMyk7CiAgLS1hY2NlbnQtdHJhbnMtNDA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuNCk7CiAgLS1hY2NlbnQtdHJhbnMtNTA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuNSk7CiAgLS1hY2NlbnQtdHJhbnMtNjA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuNik7CiAgLS1hY2NlbnQtdHJhbnMtNzA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuNyk7CiAgLS1hY2NlbnQtdHJhbnMtODA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuOCk7CiAgLS1hY2NlbnQtdHJhbnMtOTA6IG9rbGNoKDAuNjA2IDAuMjE5IDI5MyAvIDAuOSk7CiAgLS1zdWNjZXNzOiAjMTBiOTgxOwogIC0tc3VjY2Vzcy1saWdodC0xOiAjODBmZmNkOwogIC0tc3VjY2Vzcy1saWdodC0yOiAjNmFmNWJhOwogIC0tc3VjY2Vzcy1saWdodC0zOiAjNTJlMWE2OwogIC0tc3VjY2Vzcy1saWdodC00OiAjMzhjZDkzOwogIC0tc3VjY2Vzcy1kYXJrLTE6ICMwMDhkNTg7CiAgLS1zdWNjZXNzLWRhcmstMjogIzAwNjMzMjsKICAtLXN1Y2Nlc3MtZGFyay0zOiAjMDAzYjBlOwogIC0tc3VjY2Vzcy1kYXJrLTQ6ICMwMDE1MDA7CiAgLS1zdWNjZXNzLWhvdmVyOiAjMDBhMzZjOwogIC0tc3VjY2Vzcy10cmFucy0xMDogb2tsY2goMC42OTYgMC4xNDkgMTYyIC8gMC4xKTsKICAtLXN1Y2Nlc3MtdHJhbnMtMjA6IG9rbGNoKDAuNjk2IDAuMTQ5IDE2MiAvIDAuMik7CiAgLS1zdWNjZXNzLXRyYW5zLTMwOiBva2xjaCgwLjY5NiAwLjE0OSAxNjIgLyAwLjMpOwogIC0tc3VjY2Vzcy10cmFucy00MDogb2tsY2goMC42OTYgMC4xNDkgMTYyIC8gMC40KTsKICAtLXN1Y2Nlc3MtdHJhbnMtNTA6IG9rbGNoKDAuNjk2IDAuMTQ5IDE2MiAvIDAuNSk7CiAgLS1zdWNjZXNzLXRyYW5zLTYwOiBva2xjaCgwLjY5NiAwLjE0OSAxNjIgLyAwLjYpOwogIC0tc3VjY2Vzcy10cmFucy03MDogb2tsY2goMC42OTYgMC4xNDkgMTYyIC8gMC43KTsKICAtLXN1Y2Nlc3MtdHJhbnMtODA6IG9rbGNoKDAuNjk2IDAuMTQ5IDE2MiAvIDAuOCk7CiAgLS1zdWNjZXNzLXRyYW5zLTkwOiBva2xjaCgwLjY5NiAwLjE0OSAxNjIgLyAwLjkpOwogIC0tZXJyb3I6ICNlZjQ0NDQ7CiAgLS1lcnJvci1saWdodC0xOiAjZmZhODllOwogIC0tZXJyb3ItbGlnaHQtMjogI2ZmOTA4NzsKICAtLWVycm9yLWxpZ2h0LTM6ICNmZjc3NzA7CiAgLS1lcnJvci1saWdodC00OiAjZmY1ZTVhOwogIC0tZXJyb3ItZGFyay0xOiAjYzEwMDFjOwogIC0tZXJyb3ItZGFyay0yOiAjOTMwMDAwOwogIC0tZXJyb3ItZGFyay0zOiAjNjYwMDAwOwogIC0tZXJyb3ItZGFyay00OiAjMzkwMDAwOwogIC0tZXJyb3ItaG92ZXI6ICNkODJhMzE7CiAgLS1lcnJvci10cmFucy0xMDogb2tsY2goMC42MzcgMC4yMDggMjUgLyAwLjEpOwogIC0tZXJyb3ItdHJhbnMtMjA6IG9rbGNoKDAuNjM3IDAuMjA4IDI1IC8gMC4yKTsKICAtLWVycm9yLXRyYW5zLTMwOiBva2xjaCgwLjYzNyAwLjIwOCAyNSAvIDAuMyk7CiAgLS1lcnJvci10cmFucy00MDogb2tsY2goMC42MzcgMC4yMDggMjUgLyAwLjQpOwogIC0tZXJyb3ItdHJhbnMtNTA6IG9rbGNoKDAuNjM3IDAuMjA4IDI1IC8gMC41KTsKICAtLWVycm9yLXRyYW5zLTYwOiBva2xjaCgwLjYzNyAwLjIwOCAyNSAvIDAuNik7CiAgLS1lcnJvci10cmFucy03MDogb2tsY2goMC42MzcgMC4yMDggMjUgLyAwLjcpOwogIC0tZXJyb3ItdHJhbnMtODA6IG9rbGNoKDAuNjM3IDAuMjA4IDI1IC8gMC44KTsKICAtLWVycm9yLXRyYW5zLTkwOiBva2xjaCgwLjYzNyAwLjIwOCAyNSAvIDAuOSk7CiAgLS1saWdodDogI2ZmZmZmZjsKICAtLWxpZ2h0LWxpZ2h0LTE6ICNmZmZmZmY7CiAgLS1saWdodC1saWdodC0yOiAjZmZmZmZmOwogIC0tbGlnaHQtbGlnaHQtMzogI2ZmZmZmZjsKICAtLWxpZ2h0LWxpZ2h0LTQ6ICNmZmZmZmY7CiAgLS1saWdodC1kYXJrLTE6ICNiZWJlYmU7CiAgLS1saWdodC1kYXJrLTI6ICM4MDgwODA7CiAgLS1saWdodC1kYXJrLTM6ICM0ODQ4NDg7CiAgLS1saWdodC1kYXJrLTQ6ICMxNjE2MTY7CiAgLS1saWdodC1ob3ZlcjogI2RlZGVkZTsKICAtLWxpZ2h0LXRyYW5zLTEwOiBva2xjaCgxLjAwMCAwLjAwMCA5MCAvIDAuMSk7CiAgLS1saWdodC10cmFucy0yMDogb2tsY2goMS4wMDAgMC4wMDAgOTAgLyAwLjIpOwogIC0tbGlnaHQtdHJhbnMtMzA6IG9rbGNoKDEuMDAwIDAuMDAwIDkwIC8gMC4zKTsKICAtLWxpZ2h0LXRyYW5zLTQwOiBva2xjaCgxLjAwMCAwLjAwMCA5MCAvIDAuNCk7CiAgLS1saWdodC10cmFucy01MDogb2tsY2goMS4wMDAgMC4wMDAgOTAgLyAwLjUpOwogIC0tbGlnaHQtdHJhbnMtNjA6IG9rbGNoKDEuMDAwIDAuMDAwIDkwIC8gMC42KTsKICAtLWxpZ2h0LXRyYW5zLTcwOiBva2xjaCgxLjAwMCAwLjAwMCA5MCAvIDAuNyk7CiAgLS1saWdodC10cmFucy04MDogb2tsY2goMS4wMDAgMC4wMDAgOTAgLyAwLjgpOwogIC0tbGlnaHQtdHJhbnMtOTA6IG9rbGNoKDEuMDAwIDAuMDAwIDkwIC8gMC45KTsKICAtLWRhcms6ICMxMTE4Mjc7CiAgLS1kYXJrLWxpZ2h0LTE6ICNjMWNiZTE7CiAgLS1kYXJrLWxpZ2h0LTI6ICM5MDlhYWU7CiAgLS1kYXJrLWxpZ2h0LTM6ICM2MjZiN2U7CiAgLS1kYXJrLWxpZ2h0LTQ6ICMzNzNmNTA7CiAgLS1kYXJrLWRhcmstMTogIzA4MGYxZDsKICAtLWRhcmstZGFyay0yOiAjMDMwNjEzOwogIC0tZGFyay1kYXJrLTM6ICMwMDAxMGE7CiAgLS1kYXJrLWRhcmstNDogIzAwMDAwMzsKICAtLWRhcmstaG92ZXI6ICMwYzEzMjI7CiAgLS1kYXJrLXRyYW5zLTEwOiBva2xjaCgwLjIxMCAwLjAzMiAyNjUgLyAwLjEpOwogIC0tZGFyay10cmFucy0yMDogb2tsY2goMC4yMTAgMC4wMzIgMjY1IC8gMC4yKTsKICAtLWRhcmstdHJhbnMtMzA6IG9rbGNoKDAuMjEwIDAuMDMyIDI2NSAvIDAuMyk7CiAgLS1kYXJrLXRyYW5zLTQwOiBva2xjaCgwLjIxMCAwLjAzMiAyNjUgLyAwLjQpOwogIC0tZGFyay10cmFucy01MDogb2tsY2goMC4yMTAgMC4wMzIgMjY1IC8gMC41KTsKICAtLWRhcmstdHJhbnMtNjA6IG9rbGNoKDAuMjEwIDAuMDMyIDI2NSAvIDAuNik7CiAgLS1kYXJrLXRyYW5zLTcwOiBva2xjaCgwLjIxMCAwLjAzMiAyNjUgLyAwLjcpOwogIC0tZGFyay10cmFucy04MDogb2tsY2goMC4yMTAgMC4wMzIgMjY1IC8gMC44KTsKICAtLWRhcmstdHJhbnMtOTA6IG9rbGNoKDAuMjEwIDAuMDMyIDI2NSAvIDAuOSk7CgogIC8qIFNwYWNpbmcgKi8KICAtLXNwYWNlLTJ4czogNC43NHB4OwogIC0tc3BhY2UteHM6IDcuMTFweDsKICAtLXNwYWNlLXM6IDEwLjY3cHg7CiAgLS1zcGFjZS1tOiAxNnB4OwogIC0tc3BhY2UtbDogMjRweDsKICAtLXNwYWNlLXhsOiAzNnB4OwogIC0tc3BhY2UtMnhsOiA1NHB4OwoKICAvKiBUeXBvZ3JhcGh5ICovCiAgLS1mb250LWJhc2U6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgIlNlZ29lIFVJIiwgUm9ib3RvLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAtLWZvbnQtaGVhZGluZzogaW5oZXJpdDsKICAtLWZvbnQtbW9ubzogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgIlNGIE1vbm8iLCBNb25hY28sIENvbnNvbGFzLCBtb25vc3BhY2U7CiAgLS1iYXNlLWZvbnQtc2l6ZTogMTZweDsgLyogTW9iaWxlIGJhc2UgKi8KICAtLWJhc2UtbGluZS1oZWlnaHQ6IDEuNjsKICAtLXRleHQtMnhzOiA4LjE5cHg7CiAgLS10ZXh0LXhzOiAxMC4yNHB4OwogIC0tdGV4dC1zOiAxMi44cHg7CiAgLS10ZXh0LW06IDE2cHg7CiAgLS10ZXh0LWw6IDIwcHg7CiAgLS10ZXh0LXhsOiAyNXB4OwogIC0tdGV4dC0yeGw6IDMxLjI1cHg7CgogIC8qIEJvcmRlciBSYWRpdXMgKi8KICAtLXJhZGl1cy1ub25lOiAwcHg7CiAgLS1yYWRpdXMteHM6IGNsYW1wKDMuMDdweCwgMC4xODIzcmVtICsgMC4wNDgxdncsIDMuODRweCk7CiAgLS1yYWRpdXMtczogY2xhbXAoMy44NHB4LCAwLjIyOHJlbSArIDAuMDZ2dywgNC44cHgpOwogIC0tcmFkaXVzLW06IGNsYW1wKDQuOHB4LCAwLjI4NXJlbSArIDAuMDc1dncsIDZweCk7CiAgLS1yYWRpdXMtbDogY2xhbXAoNnB4LCAwLjM1NjNyZW0gKyAwLjA5Mzh2dywgNy41cHgpOwogIC0tcmFkaXVzLXhsOiBjbGFtcCg3LjVweCwgMC40NDUzcmVtICsgMC4xMTc1dncsIDkuMzhweCk7CiAgLS1yYWRpdXMteHhsOiBjbGFtcCg5LjM4cHgsIDAuNTU3cmVtICsgMC4xNDYzdncsIDExLjcycHgpOwogIC0tcmFkaXVzLWZ1bGw6IDk5OTlweDsKCiAgLyogU2hhZG93cyAqLwogIC0tc2hhZG93LXhzOiAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpOwogIC0tc2hhZG93LXM6IDAgMXB4IDNweCAwIHJnYmEoMCwgMCwgMCwgMC4xKTsKICAtLXNoYWRvdy1tOiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgLS1zaGFkb3ctbDogMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSk7CiAgLS1zaGFkb3cteGw6IDAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpOwogIC0tc2hhZG93LXh4bDogMCAyNXB4IDUwcHggLTEycHggcmdiYSgwLCAwLCAwLCAwLjI1KTsKCiAgLyogVHJhbnNpdGlvbnMgKi8KICAtLXRyYW5zaXRpb24tZmFzdDogMTUwbXM7CiAgLS10cmFuc2l0aW9uLWJhc2U6IDI1MG1zOwogIC0tdHJhbnNpdGlvbi1zbG93OiAzNTBtczsKCiAgLyogWi1JbmRleCAqLwogIC0tei0wOiAwOwogIC0tei0xMDogMTA7CiAgLS16LWRyb3Bkb3duOiAxMDAwOwogIC0tei1zdGlja3k6IDEwMjA7CiAgLS16LWZpeGVkOiAxMDMwOwogIC0tei1vdmVybGF5OiAxMDQwOwogIC0tei1tb2RhbDogMTA1MDsKCiAgLyogR2VuZXJhbCBEZWZhdWx0cyAqLwogIC0tc2l0ZS1jb250ZW50LWJnOiB2YXIoLS1wcmltYXJ5KTsKCgogIC8qIExheW91dCDigJQgRmx1aWQgKFV0b3BpYS1zdHlsZSkgKi8KICAtLWNvbnRhaW5lci1tYXgtd2lkdGg6IDEyMDBweDsKICAtLWNvbnRhaW5lci1wYWRkaW5nOiBjbGFtcCgxMC42N3B4LCAwLjYwMDJyZW0gKyAwLjMzMzF2dywgMTZweCk7CiAgLS1zZWN0aW9uLXBhZGRpbmcteTogY2xhbXAoMjRweCwgMS4zNXJlbSArIDAuNzV2dywgMzZweCk7CiAgLS1zZWN0aW9uLXBhZGRpbmcteDogY2xhbXAoMTAuNjdweCwgMC42MDAycmVtICsgMC4zMzMxdncsIDE2cHgpOwogIC0tZ2FwOiBjbGFtcCgxMC42N3B4LCAwLjYwMDJyZW0gKyAwLjMzMzF2dywgMTZweCk7CiAgLS1zdGFjay1nYXA6IGNsYW1wKDE2cHgsIDAuOXJlbSArIDAuNXZ3LCAyNHB4KTsKICAtLWd1dHRlci13aWR0aDogY2xhbXAoMTAuNjdweCwgMC42MDAycmVtICsgMC4zMzMxdncsIDE2cHgpOyAvKiBsZWdhY3kgYWxpYXMgKi8KICAtLWNvbnRhaW5lci1zbTogY2FsYyh2YXIoLS1jb250YWluZXItbWF4LXdpZHRoKSAqIDAuNzUpOwogIC0tY29udGFpbmVyLWxnOiBjYWxjKHZhcigtLWNvbnRhaW5lci1tYXgtd2lkdGgpICogMS4yNSk7CgogIC8qIEZsdWlkIFNwYWNlIFBhaXJzICovCiAgLS1zcGFjZS0yeHMteHM6IGNsYW1wKDQuNzRweCwgMC4yNjY2cmVtICsgMC4xNDgxdncsIDcuMTFweCk7CiAgLS1zcGFjZS14cy1zOiBjbGFtcCg3LjExcHgsIDAuMzk5OXJlbSArIDAuMjIyNXZ3LCAxMC42N3B4KTsKICAtLXNwYWNlLXMtbTogY2xhbXAoMTAuNjdweCwgMC42MDAycmVtICsgMC4zMzMxdncsIDE2cHgpOwogIC0tc3BhY2UtbS1sOiBjbGFtcCgxNnB4LCAwLjlyZW0gKyAwLjV2dywgMjRweCk7CiAgLS1zcGFjZS1sLXhsOiBjbGFtcCgyNHB4LCAxLjM1cmVtICsgMC43NXZ3LCAzNnB4KTsKICAtLXNwYWNlLXhsLTJ4bDogY2xhbXAoMzZweCwgMi4wMjVyZW0gKyAxLjEyNXZ3LCA1NHB4KTsKfQoKCi8qIFZIIEZyYW1ld29yayAtIENsZWFuIFZhbmlsbGEgQ1NTIFJlc2V0ICovCgoqLCAqOjpiZWZvcmUsICo6OmFmdGVyIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9CgovKiBSZW1vdmUgZGVmYXVsdCBtYXJnaW4vcGFkZGluZyBmb3Igcm9vdCB0ZXh0IGVsZW1lbnRzICovCmJvZHksIGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIHAsIGZpZ3VyZSwgYmxvY2txdW90ZSwgZGwsIGRkIHsKICBtYXJnaW46IDA7Cn0KCi8qIExpc3RzIC0gbm8gZGVmYXVsdCBtYXJrZXJzIG9yIGluZGVudGF0aW9uICovCnVsLCBvbCwgbWVudSB7CiAgbGlzdC1zdHlsZTogbm9uZTsKICBtYXJnaW46IDA7CiAgcGFkZGluZzogMDsKfQoKLyogVGFibGVzICovCnRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgYm9yZGVyLXNwYWNpbmc6IDA7IH0KCi8qIEZvcm0gZWxlbWVudHMgKi8KYnV0dG9uLCBpbnB1dCwgb3B0Z3JvdXAsIHNlbGVjdCwgdGV4dGFyZWEgewogIGZvbnQ6IGluaGVyaXQ7CiAgY29sb3I6IGluaGVyaXQ7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyOiBub25lOwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAwOwp9CmJ1dHRvbiwgc2VsZWN0IHsgY3Vyc29yOiBwb2ludGVyOyB9CnRleHRhcmVhIHsgZGlzcGxheTogYmxvY2s7IHJlc2l6ZTogdmVydGljYWw7IH0KCi8qIE1lZGlhIGVsZW1lbnRzICovCmltZywgcGljdHVyZSwgdmlkZW8sIGNhbnZhcywgc3ZnIHsKICBkaXNwbGF5OiBibG9jazsKICBtYXgtd2lkdGg6IDEwMCU7Cn0KCi8qIExpbmtzICovCmEgewogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICBjb2xvcjogaW5oZXJpdDsKICBjdXJzb3I6IHBvaW50ZXI7Cn0KCi8qIFJlbW92ZSBhbmltYXRpb25zIGZvciByZWR1Y2VkIG1vdGlvbiBwcmVmZXJlbmNlICovCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgKiwgKjo6YmVmb3JlLCAqOjphZnRlciB7CiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50OwogICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMSAhaW1wb3J0YW50OwogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zICFpbXBvcnRhbnQ7CiAgICBzY3JvbGwtYmVoYXZpb3I6IGF1dG8gIWltcG9ydGFudDsKICB9Cn0KCi8qIEdsb2JhbCBUeXBvZ3JhcGh5ICYgQmFja2dyb3VuZHMgKi8KaHRtbCB7CiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKfQoKYm9keSB7CiAgLyogRnVuZGFtZW50YWxzIGNvbmZpZyB3aWxsIGluamVjdCBwcm9wZXJ0aWVzIGhlcmUgKi8KfQoKaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CiAgLyogRnVuZGFtZW50YWxzIGNvbmZpZyB3aWxsIGluamVjdCBwcm9wZXJ0aWVzIGhlcmUgKi8KfQoKCgovKiBMYXlvdXQgRWxlbWVudHMgKi8KYm9keSB7CiAgbWluLWhlaWdodDogMTAwdmg7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgouaGVhZGVyLCAuZm9vdGVyIHsKICB3aWR0aDogMTAwJTsKfQoKLm1haW4gewogIGZsZXg6IDE7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9Cgouc2VjdGlvbiB7CiAgd2lkdGg6IDEwMCU7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIHBhZGRpbmc6IHZhcigtLXNlY3Rpb24tcGFkZGluZy15KSB2YXIoLS1zZWN0aW9uLXBhZGRpbmcteCk7Cn0KCi5jb250YWluZXIgewogIG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyLW1heC13aWR0aCk7CiAgd2lkdGg6IDEwMCU7CiAgbWFyZ2luOiAwIGF1dG87CiAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jb250YWluZXItcGFkZGluZyk7CiAgcGFkZGluZy1yaWdodDogdmFyKC0tY29udGFpbmVyLXBhZGRpbmcpOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBnYXA6IHZhcigtLWdhcCwgdmFyKC0tZ3V0dGVyLXdpZHRoKSk7Cn0KCi8qIEJhc2UgdXRpbGl0eSBmb3IgaGlkaW5nIGVsZW1lbnRzICovCi5oaWRkZW4geyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0KCi8qIENvbnRhaW5lciBWYXJpYW50cyAqLwouY29udGFpbmVyLW5hcnJvdyB7IG1heC13aWR0aDogY2FsYyh2YXIoLS1jb250YWluZXItbWF4LXdpZHRoKSAqIDAuNzUpOyB9Ci5jb250YWluZXItd2lkZSAgIHsgbWF4LXdpZHRoOiBjYWxjKHZhcigtLWNvbnRhaW5lci1tYXgtd2lkdGgpICogMS4yNSk7IH0KLmNvbnRhaW5lci1mdWxsICAgeyBtYXgtd2lkdGg6IDEwMCU7IH0KCi8qIFNlY3Rpb24gU2l6ZSBWYXJpYW50cyAqLwouc2VjdGlvbi0tc20geyBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zdGFjay1nYXApOyB9Ci5zZWN0aW9uLS1sZyB7IHBhZGRpbmctYmxvY2s6IGNhbGModmFyKC0tc2VjdGlvbi1wYWRkaW5nLXkpICogMS41KTsgfQoKCgovKiBAdmgtZGFya21vZGUtYmxvY2s6c3RhcnQgKi8KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgRGFyayBNb2RlIFN1cHBvcnQKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCi8qIERhcmsgbW9kZSBjb2xvciBzY2hlbWUgdmFyaWFibGVzICovCjpyb290IHsKICAtLWNvbG9yLXNjaGVtZTogbGlnaHQ7CiAgCiAgLyogTGlnaHQgbW9kZSBkZWZhdWx0cyAoYWxyZWFkeSBkZWZpbmVkIGluIGNvbG9ycykgKi8KICAtLWJnLWJvZHk6IHZhcigtLWxpZ2h0KTsKICAtLXRleHQtYm9keTogdmFyKC0tYmFzZSk7CiAgLS1iZy1zdXJmYWNlOiB3aGl0ZTsKICAtLWJnLXN1cmZhY2UtcmFpc2VkOiB2YXIoLS1saWdodCk7CiAgLS1ib3JkZXItZGVmYXVsdDogdmFyKC0tYmFzZS10cmFucy0yMCk7Cn0KCi8qIERhcmsgbW9kZSB1c2luZyBjbGFzcyB0b2dnbGUgKi8KLmRhcmsgewogIC0tY29sb3Itc2NoZW1lOiBkYXJrOwogIAogIC0tYmctYm9keTogdmFyKC0tZGFyayk7CiAgLS10ZXh0LWJvZHk6IHZhcigtLWxpZ2h0KTsKICAtLWJnLXN1cmZhY2U6IHZhcigtLWJhc2UtOTApOwogIC0tYmctc3VyZmFjZS1yYWlzZWQ6IHZhcigtLWJhc2UtODApOwogIC0tYm9yZGVyLWRlZmF1bHQ6IHZhcigtLWxpZ2h0LXRyYW5zLTIwKTsKICAtLXNpdGUtY29udGVudC1iZzogdmFyKC0tcHJpbWFyeS1saWdodC0xKTsKfQoKLyogRGFyayBtb2RlIHVzaW5nIHN5c3RlbSBwcmVmZXJlbmNlICovCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICA6cm9vdDpub3QoLmxpZ2h0KSB7CiAgICAtLWNvbG9yLXNjaGVtZTogZGFyazsKICAgIAogICAgLS1iZy1ib2R5OiB2YXIoLS1kYXJrKTsKICAgIC0tdGV4dC1ib2R5OiB2YXIoLS1saWdodCk7CiAgICAtLWJnLXN1cmZhY2U6IHZhcigtLWJhc2UtOTApOwogICAgLS1iZy1zdXJmYWNlLXJhaXNlZDogdmFyKC0tYmFzZS04MCk7CiAgICAtLWJvcmRlci1kZWZhdWx0OiB2YXIoLS1saWdodC10cmFucy0yMCk7CiAgICAtLXNpdGUtY29udGVudC1iZzogdmFyKC0tcHJpbWFyeS1saWdodC0xKTsKICB9Cn0KCi8qIERhcmsgbW9kZSB1dGlsaXR5IGNsYXNzZXMgKi8KLmRhcmtcOmJnLWRhcmsgeyB9Ci5kYXJrXDp0ZXh0LWxpZ2h0IHsgfQoKLmRhcmsgLmRhcmtcOmJnLWRhcmsgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kYXJrKTsgfQouZGFyayAuZGFya1w6YmctYmFzZSB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhc2UpOyB9Ci5kYXJrIC5kYXJrXDp0ZXh0LWxpZ2h0IHsgY29sb3I6IHZhcigtLWxpZ2h0KTsgfQouZGFyayAuZGFya1w6dGV4dC13aGl0ZSB7IGNvbG9yOiB3aGl0ZTsgfQouZGFyayAuZGFya1w6Ym9yZGVyLWxpZ2h0IHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1saWdodC10cmFucy0zMCk7IH0KCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICA6cm9vdDpub3QoLmxpZ2h0KSAuZGFya1w6YmctZGFyayB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRhcmspOyB9CiAgOnJvb3Q6bm90KC5saWdodCkgLmRhcmtcOmJnLWJhc2UgeyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYXNlKTsgfQogIDpyb290Om5vdCgubGlnaHQpIC5kYXJrXDp0ZXh0LWxpZ2h0IHsgY29sb3I6IHZhcigtLWxpZ2h0KTsgfQogIDpyb290Om5vdCgubGlnaHQpIC5kYXJrXDp0ZXh0LXdoaXRlIHsgY29sb3I6IHdoaXRlOyB9CiAgOnJvb3Q6bm90KC5saWdodCkgLmRhcmtcOmJvcmRlci1saWdodCB7IGJvcmRlci1jb2xvcjogdmFyKC0tbGlnaHQtdHJhbnMtMzApOyB9Cn0KCi8qIFNlbWFudGljIGRhcmsgbW9kZSBjbGFzc2VzICovCi5iZy1ib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctYm9keSk7IH0KLnRleHQtYm9keSB7IGNvbG9yOiB2YXIoLS10ZXh0LWJvZHkpOyB9Ci5iZy1zdXJmYWNlIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctc3VyZmFjZSk7IH0KLmJnLXN1cmZhY2UtcmFpc2VkIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctc3VyZmFjZS1yYWlzZWQpOyB9Ci5ib3JkZXItZGVmYXVsdCB7IGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQpOyB9CgovKiBJbnZlcnQgZm9yIGRhcmsgbW9kZSAqLwouZGFyay1pbnZlcnQgewogIGZpbHRlcjogaW52ZXJ0KDApOwp9CgouZGFyayAuZGFyay1pbnZlcnQsCkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIHsKICA6cm9vdDpub3QoLmxpZ2h0KSAuZGFyay1pbnZlcnQgewogICAgZmlsdGVyOiBpbnZlcnQoMSkgaHVlLXJvdGF0ZSgxODBkZWcpOwogIH0KfQovKiBAdmgtZGFya21vZGUtYmxvY2s6ZW5kICovCgovKiBTZW1hbnRpYyBTdHlsZSBHdWlkZSBNYXBwaW5ncyAqLwpoMSwgLmgxIHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsKICBmb250LXNpemU6IHZhcigtLXRleHQteHhsKTsKICBmb250LXdlaWdodDogNzAwOwogIGNvbG9yOiBpbmhlcml0Owp9CgpoMiwgLmgyIHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsKICBmb250LXNpemU6IHZhcigtLXRleHQteGwpOwogIGZvbnQtd2VpZ2h0OiA3MDA7CiAgY29sb3I6IGluaGVyaXQ7Cn0KCmgzLCAuaDMgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1sKTsKICBmb250LXdlaWdodDogNjAwOwogIGNvbG9yOiBpbmhlcml0Owp9CgpoNCwgLmg0IHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkaW5nKTsKICBmb250LXNpemU6IHZhcigtLXRleHQtbSk7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBjb2xvcjogaW5oZXJpdDsKfQoKaDUsIC5oNSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtaGVhZGluZyk7CiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXMpOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgY29sb3I6IGluaGVyaXQ7Cn0KCmg2LCAuaDYgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWRpbmcpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC14cyk7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICBjb2xvcjogaW5oZXJpdDsKfQoKcCwgLnAgewogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWJhc2UpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1tKTsKICBmb250LXdlaWdodDogNDAwOwogIGNvbG9yOiB2YXIoLS10ZXh0LWJvZHkpOwp9Cgpib2R5IHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1iYXNlKTsKICBmb250LXNpemU6IHZhcigtLXRleHQtbSk7CiAgZm9udC13ZWlnaHQ6IDQwMDsKICBjb2xvcjogdmFyKC0tZGFyayk7Cn0KCi5idG4tcHJpbWFyeSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeSk7CiAgY29sb3I6IHZhcigtLWxpZ2h0KTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbSk7CiAgcGFkZGluZzogdmFyKC0tc3BhY2UtcykgdmFyKC0tc3BhY2UtbSk7Cn0KCi5idG4tc2Vjb25kYXJ5IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICBjb2xvcjogdmFyKC0tcHJpbWFyeSk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW0pOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXMpIHZhcigtLXNwYWNlLW0pOwp9CgouY2FyZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbGlnaHQpOwogIGNvbG9yOiBpbmhlcml0OwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1sKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbSk7Cn0KCmlucHV0LmZvcm0tY29udHJvbCwgdGV4dGFyZWEuZm9ybS1jb250cm9sLCBzZWxlY3QuZm9ybS1jb250cm9sIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodCk7CiAgY29sb3I6IHZhcigtLWRhcmspOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWdyYXktMzAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcyk7CiAgcGFkZGluZzogdmFyKC0tc3BhY2UteHMpIHZhcigtLXNwYWNlLXMpOwp9CgoKCi8qIC0tLSBDdXN0b20gRnVuZGFtZW50YWxzIFN0eWxlc2hlZXRzIC0tLSAqLwoKLyogZ2xvYmFsLmNzcyAqLwovKiBHbG9iYWwgQ3VzdG9tIENTUyAqLwo6cm9vdCB7CiAgLS1zaXRlLXdpZHRoOiAxMjAwcHg7CiAgLS1zaXRlLXNoYWRvdzogdmFyKC0tc2hhZG93LXhsKTsKfQoK

body { min-height: 100vh;
  display: flex;
  flex-direction: column; }
