.reveal-card[data-astro-cid-oc7tbowl]{gap:var(--space-3);min-height:var(--reveal-card-row-height,auto);padding:var(--space-6);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-main);background-color:var(--color-surface-card);background-image:linear-gradient(45deg, transparent 62%, var(--color-card-gradient));backdrop-filter:blur(var(--blur-card));transition:border-color var(--motion-duration-fast) var(--motion-easing-standard);flex-direction:column;display:flex;position:relative}.reveal-card[data-astro-cid-oc7tbowl]:has(.reveal-card__more[open]){border-color:var(--color-border-hover)}.reveal-card__title[data-astro-cid-oc7tbowl]{color:var(--color-text);font-size:var(--font-size-h6);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-normal);line-height:var(--line-height-snug);min-height:calc(var(--reveal-card-title-lines) * 1lh)}.reveal-card__teaser[data-astro-cid-oc7tbowl],.reveal-card__text[data-astro-cid-oc7tbowl],.reveal-card__facts[data-astro-cid-oc7tbowl] dd[data-astro-cid-oc7tbowl]{color:var(--color-text-muted);font-size:var(--font-size-text-main);line-height:var(--line-height-relaxed);margin:0}.reveal-card__facts[data-astro-cid-oc7tbowl]{gap:var(--space-3);flex-direction:column;margin:0;display:flex}.reveal-card__facts[data-astro-cid-oc7tbowl] dt[data-astro-cid-oc7tbowl]{font-size:var(--font-size-text-main);font-weight:var(--font-weight-bold)}.reveal-card__more[data-astro-cid-oc7tbowl]{padding-top:var(--space-3);flex-direction:column-reverse;margin-top:auto;display:flex}.reveal-card__toggle[data-astro-cid-oc7tbowl]{align-items:center;gap:var(--space-2);width:fit-content;color:var(--color-heading-accent);font-size:var(--font-size-text-small);font-weight:var(--font-weight-bold);cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-easing-standard);list-style:none;display:inline-flex}.reveal-card__toggle[data-astro-cid-oc7tbowl]::-webkit-details-marker{display:none}.reveal-card__toggle[data-astro-cid-oc7tbowl]:hover{color:var(--color-text)}.reveal-card__icon[data-astro-cid-oc7tbowl]{width:var(--toggle-icon-size);transition:transform var(--motion-duration-fast) var(--motion-easing-standard);display:inline-flex;transform:rotate(90deg)}.reveal-card__more[data-astro-cid-oc7tbowl][open] .reveal-card__icon[data-astro-cid-oc7tbowl]{transform:rotate(-90deg)}.reveal-card__label--open[data-astro-cid-oc7tbowl],.reveal-card__more[data-astro-cid-oc7tbowl][open] .reveal-card__label--closed[data-astro-cid-oc7tbowl]{display:none}.reveal-card__more[data-astro-cid-oc7tbowl][open] .reveal-card__label--open[data-astro-cid-oc7tbowl]{display:inline}.reveal-card__body[data-astro-cid-oc7tbowl]{gap:var(--space-3);padding-bottom:var(--space-4);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){.reveal-card[data-astro-cid-oc7tbowl],.reveal-card__toggle[data-astro-cid-oc7tbowl],.reveal-card__icon[data-astro-cid-oc7tbowl]{transition:none}}.comparison[data-astro-cid-mmnll3zm]{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-main);background-color:var(--color-surface-card);backdrop-filter:blur(var(--blur-card));overflow:hidden;container-type:inline-size}.comparison__table[data-astro-cid-mmnll3zm]{border-collapse:collapse;text-align:left;width:100%;line-height:var(--line-height-relaxed)}.comparison__table[data-astro-cid-mmnll3zm] th[data-astro-cid-mmnll3zm],.comparison__table[data-astro-cid-mmnll3zm] td[data-astro-cid-mmnll3zm]{padding:var(--space-4) var(--space-5);vertical-align:top}.comparison__table[data-astro-cid-mmnll3zm] tbody[data-astro-cid-mmnll3zm] tr[data-astro-cid-mmnll3zm]{border-top:var(--border-width) solid var(--color-border)}.comparison__option[data-astro-cid-mmnll3zm]{color:var(--color-text);font-size:var(--font-size-h6);font-weight:var(--font-weight-bold)}.comparison__criterion[data-astro-cid-mmnll3zm]{width:22%;font-weight:var(--font-weight-bold)}.comparison__table[data-astro-cid-mmnll3zm] td[data-astro-cid-mmnll3zm]{color:var(--color-text-muted)}@container (width<=40em){.comparison__table[data-astro-cid-mmnll3zm] thead[data-astro-cid-mmnll3zm]{display:none}.comparison__table[data-astro-cid-mmnll3zm],.comparison__table[data-astro-cid-mmnll3zm] tbody[data-astro-cid-mmnll3zm],.comparison__table[data-astro-cid-mmnll3zm] tr[data-astro-cid-mmnll3zm],.comparison__table[data-astro-cid-mmnll3zm] th[data-astro-cid-mmnll3zm],.comparison__table[data-astro-cid-mmnll3zm] td[data-astro-cid-mmnll3zm]{width:100%;display:block}.comparison__table[data-astro-cid-mmnll3zm] tbody[data-astro-cid-mmnll3zm] tr[data-astro-cid-mmnll3zm]:first-child{border-top:0}.comparison__criterion[data-astro-cid-mmnll3zm]{padding-bottom:var(--space-2);color:var(--color-heading-accent)}.comparison__table[data-astro-cid-mmnll3zm] td[data-astro-cid-mmnll3zm]{padding-top:var(--space-1);padding-bottom:var(--space-1)}.comparison__table[data-astro-cid-mmnll3zm] td[data-astro-cid-mmnll3zm]:last-child{padding-bottom:var(--space-4)}.comparison__table[data-astro-cid-mmnll3zm] td[data-astro-cid-mmnll3zm]:before{content:attr(data-label) ": ";color:var(--color-text);font-weight:var(--font-weight-bold)}}.tech-chapter{scroll-margin-top:var(--sticky-offset)}.tech-column[data-astro-cid-2xoihjph]{width:100%;container-type:inline-size}.tech-stack[data-astro-cid-2xoihjph]{gap:var(--space-6);flex-direction:column;display:flex}.tech-chapter .tech-stack[data-astro-cid-2xoihjph]{padding-top:var(--space-8)}.tech-steps__number[data-astro-cid-2xoihjph]{font-variant-numeric:tabular-nums;min-width:2.5ch}.tech-copy[data-astro-cid-2xoihjph]{gap:var(--space-4);max-width:var(--measure-3xl);color:var(--color-text-muted);font-size:var(--font-size-text-main);line-height:var(--line-height-relaxed);flex-direction:column;display:flex}.tech-copy--full[data-astro-cid-2xoihjph]{max-width:none}.tech-copy[data-astro-cid-2xoihjph] strong{color:var(--color-text)}.tech-lead[data-astro-cid-2xoihjph]{color:var(--color-text);font-size:var(--font-size-text-large)}@container (width>=50em){.tech-stack--image-end[data-astro-cid-2xoihjph],.tech-stack--image-start[data-astro-cid-2xoihjph]{align-content:start;gap:var(--space-6) var(--grid-gutter);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.tech-stack--image-end[data-astro-cid-2xoihjph]>[data-astro-cid-2xoihjph]:not(.tech-image){grid-column:1}.tech-stack--image-start[data-astro-cid-2xoihjph]>[data-astro-cid-2xoihjph]:not(.tech-image){grid-column:2}.tech-stack--image-start[data-astro-cid-2xoihjph]>.tech-image[data-astro-cid-2xoihjph]{--figure-aspect:var(--figure-aspect-landscape);grid-area:1/1/span 4;align-self:start}.tech-stack--image-end[data-astro-cid-2xoihjph]>.tech-image[data-astro-cid-2xoihjph]{--figure-aspect:var(--figure-aspect-landscape);grid-area:1/2/span 4;align-self:start}}@container (width>=36em){.tech-image[data-astro-cid-2xoihjph]{--figure-aspect:var(--figure-aspect-wide)}}.tech-tiles[data-astro-cid-2xoihjph]{gap:var(--grid-gutter);margin:0;padding:0;list-style:none;display:grid}.tech-tiles[data-astro-cid-2xoihjph]:has(.reveal-card){align-items:start}.tech-tiles--2[data-astro-cid-2xoihjph]{--reveal-card-title-lines:1;grid-template-columns:repeat(2,minmax(0,1fr))}.tech-tiles--3[data-astro-cid-2xoihjph]{grid-template-columns:repeat(3,minmax(0,1fr))}.tech-tiles[data-astro-cid-2xoihjph]>li[data-astro-cid-2xoihjph]{display:flex}.tech-tiles[data-astro-cid-2xoihjph]>li[data-astro-cid-2xoihjph]>*{flex:1;min-width:0}.tech-tile-link[data-astro-cid-2xoihjph]{margin-top:var(--space-2)}.tech-steps[data-astro-cid-2xoihjph]{gap:var(--space-3) var(--grid-gutter);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.tech-steps__item[data-astro-cid-2xoihjph]{align-items:baseline;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-main);background-color:var(--color-surface-card);line-height:var(--line-height-relaxed);display:flex}.tech-steps__number[data-astro-cid-2xoihjph]{color:var(--color-highlight);font-weight:var(--font-weight-bold);flex:none}@container (width<=62em){.tech-steps[data-astro-cid-2xoihjph]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=50em){.tech-tiles--3[data-astro-cid-2xoihjph]{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width<=36em){.tech-tiles--2[data-astro-cid-2xoihjph],.tech-tiles--3[data-astro-cid-2xoihjph],.tech-steps[data-astro-cid-2xoihjph]{grid-template-columns:minmax(0,1fr)}}.tech-badge[data-astro-cid-2xoihjph]{align-items:center;gap:var(--space-2);width:fit-content;margin-bottom:var(--space-4);padding:var(--space-1) var(--space-3);border:var(--border-width) solid var(--color-highlight);border-radius:var(--radius-round);color:var(--color-highlight);font-size:var(--font-size-text-small);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-normal);display:flex}.tech-subtitle[data-astro-cid-2xoihjph]{font-size:var(--font-size-h6);font-weight:var(--font-weight-bold);line-height:var(--line-height-snug)}.tech-quote[data-astro-cid-2xoihjph]{max-width:var(--measure-2xl);padding-left:var(--space-5);border-left:var(--border-width-quote) solid var(--color-highlight);font-size:var(--font-size-text-large);font-style:italic;line-height:var(--line-height-relaxed);margin:0}.tech-stacks[data-astro-cid-2xoihjph]{grid-template-columns:repeat(auto-fit, minmax(var(--card-min-width-compact), 1fr));gap:var(--grid-gutter);max-width:var(--measure-article);display:grid}.tech-scheme[data-astro-cid-2xoihjph]{gap:var(--space-5);padding:var(--space-6);border:var(--border-width) solid var(--color-border-tertiary);border-radius:var(--radius-main);background:var(--color-surface-card);flex-direction:column;margin:0;display:flex}.tech-scheme__title[data-astro-cid-2xoihjph]{color:var(--color-heading-accent);font-weight:var(--font-weight-bold)}.tech-scheme__layers[data-astro-cid-2xoihjph]{gap:var(--scheme-row-gap);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tech-scheme__layer[data-astro-cid-2xoihjph]{align-items:center;gap:var(--space-3);min-height:var(--scheme-node-size-end);padding-left:calc(var(--scheme-node-size-end) + var(--space-4));font-size:var(--font-size-text-small);display:flex;position:relative}.tech-scheme__layer[data-astro-cid-2xoihjph]:not(:last-child):after{content:"";top:50%;left:calc(var(--scheme-node-size-end) / 2);height:calc(100% + var(--scheme-row-gap));border-left:var(--scheme-line-width) solid var(--color-scheme-line);position:absolute;translate:-50%}.tech-scheme--lean[data-astro-cid-2xoihjph] .tech-scheme__layer[data-astro-cid-2xoihjph]:not(:last-child):after{border-color:var(--color-accent)}.tech-scheme__node[data-astro-cid-2xoihjph]{z-index:1;top:50%;left:calc(var(--scheme-node-size-end) / 2);width:var(--scheme-node-size);height:var(--scheme-node-size);border:var(--scheme-line-width) solid var(--color-scheme-node-border);border-radius:var(--radius-round);background:linear-gradient(315deg, var(--color-scheme-node-from), var(--color-scheme-node-to));position:absolute;translate:-50% -50%}.tech-scheme__layer[data-astro-cid-2xoihjph]:first-child .tech-scheme__node[data-astro-cid-2xoihjph]{background:linear-gradient(45deg, var(--palette-turquoise-600), var(--palette-turquoise-500))}.tech-scheme__layer[data-astro-cid-2xoihjph]:last-child .tech-scheme__node[data-astro-cid-2xoihjph]{width:var(--scheme-node-size-end);height:var(--scheme-node-size-end);background:linear-gradient(45deg, var(--color-scheme-end-from), var(--color-scheme-end-to));box-shadow:var(--shadow-scheme-glow)}.tech-scheme__layer[data-astro-cid-2xoihjph]:first-child .tech-scheme__label[data-astro-cid-2xoihjph],.tech-scheme__layer[data-astro-cid-2xoihjph]:last-child .tech-scheme__label[data-astro-cid-2xoihjph]{font-weight:var(--font-weight-bold)}.tech-scheme__layer--missing[data-astro-cid-2xoihjph] .tech-scheme__node[data-astro-cid-2xoihjph]{border-style:dashed;border-color:var(--color-text-muted);background:0 0}.tech-scheme__label[data-astro-cid-2xoihjph]{flex:0 auto;min-width:0}.tech-scheme__layer--missing[data-astro-cid-2xoihjph] .tech-scheme__label[data-astro-cid-2xoihjph]{color:var(--color-text-muted)}.tech-scheme__tag[data-astro-cid-2xoihjph]{padding:var(--space-1) var(--space-3);border:var(--border-width) solid var(--color-accent);border-radius:var(--radius-round);color:var(--color-accent);font-size:var(--font-size-text-tiny);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-normal);text-transform:uppercase;flex:none}
