@import url("./tokens.css");
@import url("./base.css");
* {
  box-sizing: border-box;
}
html {
  background: var(--page);
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
  color: var(--ink);
}
body {
  margin: 0;
  background: var(--page) !important;
  color: var(--ink);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}
button,
input,
textarea,
select {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
a {
  text-decoration: none;
  color: inherit;
}
a,
button {
  transition:
    color 0.18s,
    background-color 0.18s,
    border-color 0.18s,
    transform 0.18s;
}
a:hover {
  color: var(--accent);
}
button:active,
.button:active {
  transform: translateY(1px);
}
:focus-visible {
  outline: 2px solid var(--accent) !important;
  outline-offset: 5px;
}
::selection {
  background: var(--button);
  color: var(--button-ink);
}
img {
  max-width: 100%;
}
svg {
  flex-shrink: 0;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1,
h2 {
  font-weight: 500;
  letter-spacing: -0.045em;
  text-wrap: balance;
}
h2 {
  font-size: clamp(2rem, 3.4vw, 3.1rem);
  line-height: 1.12;
}
h2[data-copy] {
  white-space: pre-line;
}
p {
  text-wrap: pretty;
}
code,
pre {
  font-family: var(--mono);
}
section[id],
[id].mb-12 {
  scroll-margin-top: 100px;
}
.shell,
.max-w-7xl {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--space-xl);
}
.section {
  padding-block: var(--space-108);
  border-top: 1px solid var(--line);
}
.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-48);
  margin-bottom: var(--space-48);
}
.section-heading > p {
  max-width: 350px;
  font-size: 16px;
  line-height: 1.7;
  color: var(--muted);
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-lg);
  min-height: 48px;
  padding: var(--space-sm) var(--space-lg);
  border: 1px solid var(--button);
  border-radius: 5px;
  background: var(--button);
  color: var(--button-ink);
  font-size: 14px;
  font-weight: 500;
}
.button:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--button-ink);
  transform: translateY(-2px);
}
.button-secondary {
  border-color: var(--line);
  background: transparent;
  color: var(--ink);
}
.button-secondary:hover {
  background: var(--surface);
  border-color: var(--muted);
  color: var(--ink);
}
.text-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-md);
  font-size: 14px;
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--space-xs);
}
.skip-link {
  position: fixed;
  top: -80px;
  left: 24px;
  padding: var(--space-sm) var(--space-20);
  background: var(--button);
  color: var(--button-ink);
  z-index: 100;
}
.skip-link:focus {
  top: 10px;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--page);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}
.header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-28);
  min-height: 82px;
}
.wordmark {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  color: var(--ink) !important;
  white-space: nowrap;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.055em;
}
.wordmark small {
  font: 400 11px var(--font-body);
  letter-spacing: -0.03em;
  color: var(--muted);
  margin-left: calc(-1 * var(--space-2xs));
  align-self: center;
}
.brand-mark {
  display: block;
  width: 28px;
  height: 29px;
  background: var(--accent);
  clip-path: polygon(
    0 0,
    77% 0,
    100% 24%,
    100% 43%,
    72% 64%,
    100% 100%,
    62% 100%,
    31% 61%,
    31% 100%,
    0 100%,
    0 0,
    31% 25%,
    31% 40%,
    66% 40%,
    66% 25%,
    31% 25%
  );
}
.desktop-nav {
  display: flex;
  align-items: center;
  gap: var(--space-28);
  margin-left: auto;
}
.desktop-nav a {
  font-size: 14px;
  color: var(--muted);
  padding-block: var(--space-28);
}
.desktop-nav a:hover,
.desktop-nav a[aria-current] {
  color: var(--ink);
}
.desktop-nav a[aria-current] {
  box-shadow: inset 0 -2px var(--accent);
}
.header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
}
.header-actions .button {
  min-height: 38px;
  padding: var(--space-xs) var(--space-md);
  margin-left: var(--space-xs);
  font-size: 14px;
}
#themeToggle,
#langToggle,
#hamburger {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: transparent;
  color: var(--muted);
}
#themeToggle:hover,
#langToggle:hover {
  color: var(--ink);
  background: var(--surface);
}
#hamburger {
  display: none;
}
.lang-dropdown {
  position: relative;
}
.lang-menu {
  display: none;
  position: absolute;
  top: 44px;
  right: 0;
  background: var(--panel);
  border: 1px solid var(--line);
  padding: var(--space-2xs);
  min-width: 150px;
  border-radius: 6px;
  z-index: 45;
  box-shadow: none;
  color: var(--ink);
}
.lang-menu.show {
  display: block;
}
.lang-option {
  display: flex;
  width: 100%;
  gap: var(--space-sm);
  align-items: center;
  border: 0;
  padding: var(--space-xs) var(--space-sm);
  text-align: left;
  color: var(--muted);
  background: transparent;
  border-radius: 3px;
  font-size: 14px;
}
.lang-option:hover,
.lang-option.active {
  background: var(--surface);
  color: var(--ink);
}
#currentFlag,
.lang-option img {
  width: 20px;
  height: 14px;
  object-fit: cover;
  border-radius: 1px;
}
#mobile-menu {
  display: none;
  padding-block: var(--space-md) var(--space-lg);
  border-top: 1px solid var(--line);
}
#mobile-menu.open {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gap-columns);
}
#mobile-menu a {
  padding: var(--space-sm) var(--space-xs);
  font-size: 15px;
}
.hero {
  position: relative;
  overflow: hidden;
}
.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  align-items: center;
  min-height: 650px;
  gap: var(--gap-columns);
  padding-block: var(--space-80) var(--space-92);
}
.hero h1 {
  font-size: clamp(3.5rem, 5.3vw, 5rem);
  line-height: 1.02;
  margin: var(--space-28) 0 var(--space-28);
  font-weight: 500;
}
.hero h1 span {
  display: block;
}
.hero-description {
  color: var(--muted);
  max-width: 445px;
  font-size: 17px;
  line-height: 1.75;
}
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-top: var(--space-32);
}
.hero-note {
  display: flex;
  gap: var(--space-sm);
  align-items: center;
  margin-top: var(--space-lg);
  font-size: 14px;
  color: var(--muted);
}
.hero-note svg {
  width: 14px;
  height: 14px;
  color: var(--accent);
}
.feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
}
.feature-card {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: var(--gap-columns);
  padding: var(--space-28) var(--space-32) var(--space-28) 0;
  border-bottom: 1px solid var(--line);
}
.feature-card:nth-child(even) {
  padding-left: var(--space-32);
  border-left: 1px solid var(--line);
}
.feature-card h3 {
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -0.025em;
}
.feature-card p {
  margin-top: var(--space-xs);
  max-width: 400px;
  color: var(--muted);
  line-height: 1.7;
  font-size: 14px;
}
.feature-card:last-child {
  grid-column: 1/-1;
}
.feature-card:last-child p {
  max-width: 800px;
}
.code-comparison {
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--page);
  overflow: hidden;
  color: var(--ink);
}
.comparison-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-sm) var(--space-20);
  border-bottom: 1px solid var(--line);
  font: 11px var(--font-body);
  color: var(--muted);
}
#img-comp-container {
  position: relative;
  overflow: hidden;
  background: var(--button-ink);
  touch-action: pan-y;
}
#img-comp-container > img {
  width: 100%;
  display: block;
}
#img-comp-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  clip-path: inset(0 50% 0 0);
}
#img-comp-slider {
  position: absolute;
  inset-block: 0;
  left: 50%;
  width: 2px;
  background: var(--button);
  pointer-events: none;
}
.comparison-range {
  display: flex;
  gap: var(--space-md);
  align-items: center;
  padding: var(--space-md) var(--space-20);
  color: var(--muted);
  font-size: 14px;
}
.comparison-range input {
  flex: 1;
  min-width: 60px;
  accent-color: var(--accent);
  cursor: ew-resize;
}
.sdk-promo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--gap-columns);
  align-items: center;
}
.sdk-promo > *,
.contact-layout > * {
  min-width: 0;
}
.sdk-promo h2 {
  margin-block: var(--space-lg);
}
.sdk-promo p {
  color: var(--muted);
  line-height: 1.8;
  max-width: 440px;
  margin-bottom: var(--space-28);
}
.sdk-example {
  border: 1px solid var(--line);
  background: var(--surface);
  border-radius: 5px;
  color: var(--ink);
}
.sdk-example pre {
  font: 12px/2 var(--mono);
  padding: var(--space-28);
  overflow-x: auto;
  color: var(--ink);
}
.code-keyword {
  color: var(--accent);
}
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
}
.plan {
  padding: var(--space-32);
  display: flex;
  flex-direction: column;
  position: relative;
}
.plan + .plan {
  border-left: 1px solid var(--line);
}
.plan-featured {
  background: var(--surface);
  color: var(--ink);
}
.plan-label {
  min-height: 25px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
}
.plan-label {
  min-height: 54px;
  align-items: flex-start;
}
.plan h3 {
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.02em;
}
.plan-label > span {
  font: 9px var(--font-body);
  color: var(--accent);
  text-transform: none;
  letter-spacing: 0;
}
.plan-price {
  font-size: 42px;
  line-height: 1.3;
  letter-spacing: -0.045em;
  margin-top: var(--space-32);
  font-variant-numeric: tabular-nums;
}
.plan-price sup {
  font-size: 21px;
  position: relative;
  top: -0.5em;
  margin-right: var(--space-2xs);
}
.plan-period {
  color: var(--muted);
  font-size: 14px;
  min-height: 50px;
}
.plan ul {
  list-style: none;
  padding: var(--space-lg) 0;
  margin: 0;
  border-top: 1px solid var(--line);
}
.plan ul {
  min-height: 237px;
}
.plan li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  font-size: 14px;
  line-height: 1.65;
  margin-bottom: var(--space-sm);
}
.plan li::before {
  content: "✓";
  color: var(--accent);
}
.plan li .vm-info-btn {
  margin-left: auto;
}
.plan .button {
  margin-top: auto;
  width: 100%;
}
.plan-bonus {
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
  padding: var(--space-20) 0 var(--space-lg);
  min-height: 120px;
}
.plan-bonus a {
  color: var(--ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.pricing-footnote {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-lg);
  color: var(--muted);
  font-size: 14px;
  margin-top: var(--space-lg);
}
.vm-info-btn {
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  width: 18px;
  height: 18px;
  color: var(--muted);
  font: 11px var(--font-body);
  flex-shrink: 0;
  background: transparent;
}
.quote-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.65fr) minmax(0, 1.35fr);
  gap: var(--gap-columns);
}
.quote-layout blockquote {
  font-size: clamp(1.5rem, 2.4vw, 2.2rem);
  line-height: 1.5;
  letter-spacing: -0.025em;
  margin: 0;
}
.quote-layout figcaption {
  margin-top: var(--space-lg);
  font: 11px var(--font-body);
  color: var(--muted);
}
.more-quotes {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--gap-columns);
  margin-top: var(--space-44);
  padding-top: var(--space-32);
  border-top: 1px solid var(--line);
}
.more-quotes blockquote {
  font-size: 14px;
  line-height: 1.8;
  color: var(--muted);
}
.more-quotes figcaption {
  font-size: 14px;
  color: var(--ink);
  margin-top: var(--space-md);
}
body > main > section.legacy-section {
  padding-block: var(--space-92);
  border-top: 1px solid var(--line);
  background: var(--page) !important;
  color: var(--ink);
}
.legacy-section h2 {
  font-size: clamp(2rem, 3.4vw, 3.1rem);
  font-weight: 500;
  text-align: left;
  margin-bottom: var(--space-36);
}
.legacy-section [class*="shadow"],
.doc-layout [class*="shadow"],
.news-page [class*="shadow"],
.blog-page [class*="shadow"] {
  box-shadow: none;
}
.legacy-section [class*="rounded-"],
.doc-layout [class*="rounded-"] {
  border-radius: 5px;
}
.legacy-section > .absolute,
.legacy-section .bg-grid-gradient {
  display: none;
}
#platforms table {
  border-collapse: collapse;
}
#platforms th {
  font: 11px var(--font-body);
  text-transform: none;
  letter-spacing: 0;
  color: var(--muted);
}
#platforms td {
  padding-block: var(--space-20);
  font-size: 16px;
}
#platforms .overflow-x-auto {
  border-radius: 5px;
  background: var(--surface);
  color: var(--ink);
}
#platforms [class*="bg-purple"],
#platforms [class*="bg-brand"] {
  background: var(--surface);
  color: var(--ink);
  border-color: var(--line);
}
#about .max-w-6xl {
  max-width: var(--container);
  padding-inline: var(--space-xl);
}
#about .text-center {
  text-align: left;
}
#about .text-center > p {
  margin-left: 0;
}
#about .aspect-video {
  aspect-ratio: 1/1;
}
#about .aspect-video > img {
  filter: saturate(0.35);
}
#about .space-y-5 > div {
  padding-inline: 0;
  border: 0;
  background: transparent;
}
#about .space-y-5 > div > div:first-child {
  display: none;
}
#about .grid.sm\:grid-cols-3 {
  border-top: 1px solid var(--line);
  padding-top: var(--space-lg);
}
#about .grid.sm\:grid-cols-3 > div {
  background: none;
  border: 0;
  text-align: left;
  align-items: flex-start;
}
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--gap-columns);
}
.contact-intro h2 {
  margin: var(--space-lg) 0 !important;
}
.contact-intro p {
  color: var(--muted);
  line-height: 1.8;
  margin-bottom: var(--space-28);
}
#contact-form {
  padding: 0;
  margin: 0;
  background: transparent;
  text-align: left;
  border: 0;
  box-shadow: none;
}
#contact-form label {
  font-size: 14px;
  font-weight: 400;
}
#contact-form input:not([type="checkbox"]),
#contact-form textarea {
  background: var(--surface);
  border-color: var(--line);
  border-radius: 4px;
  padding: var(--space-sm) var(--space-md);
  color: var(--ink);
}
#contact-form textarea {
  resize: vertical;
}
#contact-form button[type="submit"] {
  background: var(--button);
  color: var(--button-ink);
  border-radius: 4px;
  box-shadow: none;
  font-weight: 500;
}
#platform-switch {
  display: block;
  width: 15px;
  height: 15px;
  margin-right: var(--space-xs);
  accent-color: var(--accent);
}
.legal-section {
  padding: var(--space-52) 0;
  border-top: 1px solid var(--line);
}
.legal-section > summary {
  cursor: pointer;
  list-style-position: inside;
  font-size: 20px;
  font-weight: 500;
}
.legal-section > summary span {
  font: 11px var(--font-body);
  color: var(--muted);
  float: right;
  margin-top: var(--space-xs);
}
.legal-section > section {
  padding: var(--space-36) 0 0;
  background: transparent !important;
}
.legal-section section > div {
  padding: 0;
}
.legal-section h2 {
  display: none;
}
.legal-section [class*="rounded"] {
  border-radius: 4px;
}
.legal-section [class*="shadow"] {
  box-shadow: none;
}
.legal-section [class*="bg-gradient"] {
  background: var(--surface);
  color: var(--ink);
}
.legal-section [class*="bg-brand"],
.legal-section [class*="bg-purple"],
.legal-section [class*="bg-pink"] {
  background: var(--surface);
  color: var(--muted);
}
.site-footer {
  background: var(--page);
  border-top: 1px solid var(--line);
  padding-block: var(--space-xl) var(--space-lg);
  color: var(--muted);
}
.footer-top {
  display: flex;
  justify-content: space-between;
  gap: var(--space-32);
  align-items: center;
  margin-bottom: var(--space-xl);
}
.footer-links {
  display: flex;
  gap: var(--space-lg);
  flex-wrap: wrap;
  font-size: 14px;
}
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  padding-top: var(--space-lg);
  font: 10px var(--font-body);
}
.footer-social {
  display: flex;
  gap: var(--space-20);
}
.footer-social svg {
  width: 16px;
  height: 16px;
}
[id$="-modal"] {
  z-index: 60 !important;
  background: var(--color-detail-2);
}
[id$="-modal-panel"] {
  background: var(--panel) !important;
  color: var(--ink);
  border: 1px solid var(--line) !important;
  border-radius: 10px !important;
  box-shadow: none;
}
[id$="-modal-panel"] > [class*="bg-gradient"],
[id$="-modal-panel"] > [class*="bg-gradient"] [class*="text-white"] {
  color: var(--ink);
}
[id$="-modal-panel"] [class*="text-purple-"] {
  color: var(--accent);
}
[id$="-modal-panel"] [class*="bg-purple-"] {
  background-color: var(--surface);
  color: var(--ink);
}
[id$="-modal-panel"] [class*="bg-gradient"] {
  background: var(--surface);
  color: var(--ink);
}
.buy-channel-btn {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  padding: var(--space-md);
  flex: 1;
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--ink);
  font-size: 14px;
  background: var(--surface);
}
.buy-channel-btn:hover {
  border-color: var(--accent);
}
.buy-step {
  display: flex;
  gap: var(--space-sm);
  padding: var(--space-sm);
  background: var(--surface);
  border-radius: 4px;
  color: var(--ink);
}
.buy-step-num {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  flex-shrink: 0;
  font: 10px var(--font-body);
  border: 1px solid var(--line);
  color: var(--accent);
}
.buy-step-text {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}
.buy-step-text code {
  color: var(--accent);
}
.payment-accordion-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: var(--space-md);
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
}
.payment-accordion-body {
  display: none;
}
.payment-accordion-body.open {
  display: block;
}
.accordion-chevron.rotated {
  transform: rotate(180deg);
}
.modal-scroll {
  scrollbar-width: thin;
  scrollbar-color: var(--line) transparent;
}
.col-highlight-standard,
.col-highlight-ultimate {
  background: var(--surface);
  border-color: var(--accent) !important;
  color: var(--ink);
}
.doc-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: var(--gap-columns);
  padding-top: var(--space-48);
  padding-bottom: var(--space-80);
}
.doc-sidebar {
  position: sticky;
  top: 115px;
  max-height: calc(100dvh - 145px);
  overflow-y: auto;
  padding-right: var(--space-20);
  scrollbar-width: thin;
}
.doc-sidebar h5 {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.doc-sidebar a {
  font-size: 14px;
  display: block;
  padding: var(--space-2xs) 0;
  overflow-wrap: anywhere;
}
.doc-sidebar a.active {
  color: var(--accent);
}
.doc-content h1 {
  font-size: clamp(2.5rem, 4vw, 3.7rem);
  font-weight: 500;
  color: var(--ink);
  background: none;
}
.doc-content h2 {
  font-size: 27px;
  font-weight: 500;
  letter-spacing: -0.025em;
}
.doc-content h3 {
  font-size: 18px;
  font-weight: 500;
}
.doc-content pre {
  border: 1px solid var(--line);
  border-radius: 5px;
  font-size: 14px;
}
.doc-content table {
  font-size: 14px;
}
.doc-content td {
  overflow-wrap: anywhere;
}
.doc-content [class*="bg-gradient"] {
  background: var(--surface);
  color: var(--ink);
}
.doc-content h1[class*="bg-gradient"] {
  background: none;
}
.dark .doc-content [class*="text-brand-"],
.dark .doc-content [class*="text-blue-"] {
  color: var(--accent);
}
.compatibility-note {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.8;
  max-width: 780px;
  margin-bottom: var(--space-lg);
}
.doc-mobile-nav {
  display: none;
}
.copy-code {
  position: absolute;
  right: 10px;
  top: 10px;
  background: var(--color-detail-4);
  color: var(--color-detail-5);
  border: 1px solid var(--color-detail-6);
  padding: var(--space-2xs) var(--space-xs);
  border-radius: 3px;
  font: 10px var(--mono);
}
.code-wrapper {
  position: relative;
}
.code-wrapper pre {
  padding-top: var(--space-44) !important;
}
.copy-status {
  display: block;
  color: var(--muted);
  font-size: 14px;
  min-height: 18px;
}
.blog-hero {
  background: var(--page);
  color: var(--ink);
}
.blog-hero > .absolute,
.blog-section > .absolute {
  display: none;
}
.blog-hero-copy {
  text-align: left;
  margin-left: 0;
  max-width: 800px;
}
.blog-hero-copy h1 {
  font-weight: 500;
  letter-spacing: -0.045em;
}
.blog-hero-copy p {
  margin-left: 0;
  font-size: 17px;
  color: var(--muted);
}
.blog-title-accent {
  color: var(--accent);
}
.blog-featured-card,
.blog-card,
.blog-author-panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 5px;
  color: var(--ink);
}
.blog-featured-card h2 {
  font-size: 32px;
  font-weight: 500;
}
.blog-media-fallback {
  background: var(--surface);
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0,
    transparent 22px,
    var(--line) 23px,
    transparent 24px
  );
  display: grid;
  place-items: center;
  color: var(--ink);
}
.blog-media-fallback::after {
  content: "R / .NET";
  font: 500 clamp(2rem, 5vw, 4.5rem) var(--font-body);
  letter-spacing: -0.08em;
  color: var(--accent);
}
.blog-chip {
  background: var(--panel);
  color: var(--accent);
  border: 1px solid var(--line);
  border-radius: 3px;
  font-size: 14px;
}
.blog-avatar {
  background: var(--panel);
  color: var(--accent);
  border-radius: 4px;
}
.blog-soft-button {
  border-radius: 4px;
}
.prose-post {
  line-height: 1.85;
  max-width: 720px;
  margin-inline: auto;
}
.prose-post p {
  margin-bottom: 1.3em;
}
.prose-post h2 {
  font-size: 28px;
  margin: 2em 0 1em;
  font-weight: 500;
}
.prose-post h3 {
  font-size: 22px;
  margin: 1.6em 0 0.8em;
}
.prose-post ul {
  list-style: disc;
  padding-left: var(--space-lg);
  margin-bottom: 1.5em;
}
.prose-post a {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.prose-post code {
  font-size: 0.85em;
}
.news-intro {
  padding-block: var(--space-80) var(--space-56);
  border-bottom: 1px solid var(--line);
}
.news-intro h1 {
  font-size: clamp(3rem, 5vw, 4.8rem);
  margin: var(--space-lg) 0;
}
.news-intro p {
  color: var(--muted);
  font-size: 17px;
}
.news-page main {
  max-width: var(--container);
  padding-top: var(--space-60);
}
.news-page main > .mb-12 {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: var(--gap-columns);
  border-bottom: 1px solid var(--line);
  padding-bottom: var(--space-36);
  margin-bottom: var(--space-36);
}
.news-page main > .mb-12[hidden] {
  display: none;
}
.news-page main > .mb-12 > div:first-child {
  display: block;
  margin: 0;
}
.news-page main > .mb-12 > div:first-child .h-px {
  display: none;
}
.news-page main > .mb-12 > div:first-child > div {
  padding: 0;
  background: none;
  border: 0;
}
.news-page main > .mb-12 > div:first-child span {
  color: var(--muted);
  font: 12px var(--font-body);
}
.news-page main > .mb-12 > div:nth-child(2) {
  background: none;
  border: 0;
  padding: 0;
}
.news-page main li .w-2 {
  width: 4px;
  height: 4px;
  background: var(--accent);
  border-radius: 0;
}
.news-page main li span {
  color: var(--ink);
  font-size: 15px;
}
.news-page main .w-9 {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--ink);
}
.news-page main .w-9 span {
  color: var(--muted);
}
.news-pagination {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-xs);
  margin-block: var(--space-xl);
}
.news-pagination button {
  min-width: 38px;
  height: 38px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--ink);
}
.news-pagination button.active {
  background: var(--button);
  color: var(--button-ink);
}
.news-pagination button:disabled {
  cursor: not-allowed;
}
.not-found {
  min-height: calc(100dvh - 230px);
  display: grid;
  align-content: center;
  padding-block: var(--space-80);
}
.not-found h1 {
  font-size: clamp(5rem, 17vw, 12rem);
  color: var(--accent);
  line-height: 1;
}
.not-found h2 {
  margin-block: var(--space-lg);
}
.not-found p {
  color: var(--muted);
  margin-bottom: var(--space-28);
}
.not-found .button {
  justify-self: start;
}
.journal-section {
  padding-block: var(--space-84) var(--space-100);
}
.journal-intro {
  padding-block: 0 var(--space-56);
}
.journal-intro h1 {
  font-size: clamp(3rem, 5vw, 4.5rem);
  margin: var(--space-20) 0;
}
.journal-intro > p:last-child {
  color: var(--muted);
  max-width: 600px;
  font-size: 17px;
  line-height: 1.7;
}
.journal-featured {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 6px;
  overflow: hidden;
  color: var(--ink);
}
.article-cover {
  height: 100%;
  min-height: 360px;
  overflow: hidden;
  background-color: var(--surface);
  color: var(--ink);
}
.article-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.45);
}
.article-cover-link {
  min-height: 400px;
}
.journal-copy {
  padding: var(--space-xl);
}
.journal-copy h2 {
  font-size: 36px;
  font-weight: 500;
  margin: var(--space-28) 0 var(--space-20);
}
.journal-copy > p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.8;
}
.article-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
}
.article-tags .blog-chip {
  padding: var(--space-xs) var(--space-xs);
}
.article-meta {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  font: 11px var(--font-body);
  color: var(--muted);
  margin: var(--space-28) 0;
}
.journal-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  border-bottom: 1px solid var(--line);
  margin-top: var(--space-32);
}
.journal-article {
  padding-block: var(--space-72) var(--space-100);
}
.article-intro {
  max-width: 850px;
  margin-inline: auto;
}
.article-intro .article-tags {
  margin-block: var(--space-36) var(--space-20);
}
.article-intro h1 {
  font-size: clamp(2.7rem, 5vw, 4.5rem);
  line-height: 1.1;
}
.journal-article > .article-cover {
  height: 400px;
  min-height: 0;
  margin: var(--space-xl) 0 var(--space-60);
  border-radius: 5px;
}
.article-paragraph {
  white-space: pre-line;
}
.journal-loading {
  padding-block: var(--space-100);
  min-height: 70vh;
}
.journal-loading > div {
  height: 24px;
  margin-bottom: var(--space-20);
  background: var(--surface);
  max-width: 600px;
  border-radius: 4px;
  color: var(--ink);
}
.journal-loading > div:first-child {
  width: 60%;
  height: 70px;
}
.journal-loading > div:last-child {
  height: 300px;
  max-width: none;
}
@media (max-width: 700px) {
  .journal-section,
  .journal-article {
    padding-block: var(--space-44) var(--space-2xl);
  }
  .journal-featured,
  .journal-entry {
    grid-template-columns: minmax(0, 1fr);
  }
  .article-cover-link {
    min-height: 230px;
  }
  .article-cover {
    min-height: 230px;
    height: 230px;
  }
  .journal-copy {
    padding: var(--space-lg);
  }
  .journal-copy h2 {
    font-size: 29px;
  }
  .journal-article > .article-cover {
    height: 240px;
  }
  .plan ul {
    min-height: 0;
  }
}
@media (min-width: 980px) {
  #mobile-menu.open {
    display: none;
  }
}
@media (max-width: 1100px) {
  .desktop-nav {
    gap: var(--space-20);
  }
  .header-actions .button {
    display: none;
  }
  .hero-grid {
    gap: var(--space-32);
  }
  .hero h1 {
    font-size: 61px;
  }
  .plan {
    padding: var(--space-lg);
  }
  .plan-label {
    align-items: flex-start;
    flex-direction: column;
    min-height: 54px;
  }
}
@media (max-width: 979px) {
  .desktop-nav {
    display: none;
  }
  #hamburger {
    display: inline-flex;
  }
  .hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--gap-columns);
    min-height: auto;
    padding-block: var(--space-72);
  }
  .hero h1 {
    font-size: 48px;
  }
  .hero-description {
    font-size: 15px;
  }
  .sdk-promo {
    gap: var(--space-xl);
  }
  .contact-layout {
    gap: var(--space-52);
  }
  .doc-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .doc-sidebar {
    display: none;
  }
  .doc-mobile-nav {
    display: block;
    margin-bottom: var(--space-32);
  }
  .doc-mobile-nav select {
    display: block;
    padding: var(--space-sm);
    margin-top: var(--space-xs);
    width: 100%;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 4px;
    font-size: 14px;
    color: var(--ink);
  }
  .doc-mobile-nav label {
    font: 10px var(--font-body);
    text-transform: none;
    letter-spacing: 0;
  }
}
@media (max-width: 700px) {
  .shell,
  .max-w-7xl,
  #about .max-w-6xl {
    padding-inline: var(--space-lg);
  }
  .header-row {
    min-height: 70px;
    gap: var(--space-md);
  }
  .wordmark {
    font-size: 22px;
  }
  .wordmark small {
    font-size: 14px;
  }
  .header-actions {
    gap: var(--space-xs);
  }
  .header-actions .button {
    display: none;
  }
  .section,
  body > main > section.legacy-section {
    padding-block: var(--space-2xl);
  }
  .hero-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--gap-columns);
    padding-block: var(--space-44) var(--space-xl);
  }
  .hero h1 {
    font-size: clamp(44px, 10.5vw, 68px);
    margin-block: var(--space-lg);
  }
  .hero-description {
    max-width: 460px;
    font-size: 16px;
  }
  .hero-actions {
    gap: var(--space-xs);
  }
  .hero-actions .button {
    padding-inline: var(--space-md);
    font-size: 14px;
    gap: var(--space-md);
  }
  .section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--space-lg);
    margin-bottom: var(--space-32);
  }
  .section-heading > p {
    max-width: 500px;
    font-size: 15px;
  }
  .feature-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .feature-card,
  .feature-card:nth-child(even) {
    border-left: 0;
    padding: var(--space-lg) 0;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: var(--gap-columns);
  }
  .feature-card h3 {
    font-size: 18px;
  }
  .sdk-promo,
  .contact-layout,
  .quote-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--gap-columns);
  }
  .pricing-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .plan + .plan {
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .plan {
    padding: var(--space-28);
  }
  .plan-label {
    flex-direction: row;
    min-height: 25px;
  }
  .plan-price {
    margin-top: var(--space-20);
  }
  .plan-period {
    min-height: 35px;
  }
  .plan-bonus {
    min-height: 0;
  }
  .pricing-footnote {
    align-items: flex-start;
    flex-direction: column;
  }
  .more-quotes {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--gap-columns);
  }
  .quote-layout blockquote {
    font-size: 26px;
  }
  #about .aspect-video {
    aspect-ratio: 16/10;
  }
  .legal-section {
    padding-block: var(--space-32);
  }
  .legal-section > summary span {
    display: none;
  }
  .footer-top,
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-lg);
  }
  .footer-links {
    column-gap: var(--space-lg);
    row-gap: var(--space-md);
  }
  .doc-layout {
    padding-top: var(--space-28);
  }
  .doc-content h1 {
    font-size: 40px;
    overflow-wrap: anywhere;
  }
  .doc-content h3 {
    overflow-wrap: anywhere;
  }
  .doc-content table {
    font-size: 14px;
  }
  .doc-content th,
  .doc-content td {
    padding: var(--space-sm) var(--space-xs);
  }
  .doc-content .p-6 {
    padding: var(--space-20);
  }
  .news-intro {
    padding-block: var(--space-48) var(--space-36);
  }
  .news-page main {
    padding: var(--space-36) var(--space-lg);
  }
  .news-page main > .mb-12 {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--gap-columns);
  }
  .blog-featured-card h2 {
    font-size: 27px;
  }
  .blog-page .prose-post {
    font-size: 16px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto !important;
  }
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}

.article-language { font-size: 13px; color: var(--muted); margin-block: 12px; }
.article-language[hidden] { display: none; }
