.portal{max-width:1200px;padding:var(--spacing-2xl) var(--spacing-lg);margin:auto}.portal .eyebrow{color:var(--color-accent);font-size:var(--text-md);letter-spacing:.12em;font-weight:700}.portal h1{letter-spacing:-.035em;max-width:18ch;margin:var(--spacing-lg) 0;font-size:clamp(2rem,5vw,4.4rem);line-height:1.15}.portal>header h1{text-wrap:balance;max-width:24ch;font-size:clamp(2rem,4.5vw,3.5rem)}.portal h2{margin:0 0 var(--spacing-md);font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.3}.portal h3{font-size:var(--text-xl);margin:0 0 var(--spacing-sm);font-weight:700}.portal p,.portal li{color:var(--color-foreground-muted);line-height:1.85}.portal .lede{font-size:var(--text-xl);max-width:62ch}.portal a{color:var(--color-accent);text-underline-offset:.25em}.portal .actions{gap:var(--spacing-md);margin:var(--spacing-lg) 0;flex-wrap:wrap;align-items:center;display:flex}.portal .button{min-height:48px;padding:var(--spacing-sm) var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:center;align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.portal .button.primary{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}.portal .hero{gap:var(--spacing-2xl);grid-template-columns:1.05fr 1fr;align-items:center;min-height:540px;display:grid}.portal figure{min-width:0;margin:0}.portal figure img{border-radius:var(--radius-lg);border:1px solid var(--color-border);width:100%;height:auto}.portal figcaption{color:var(--color-foreground-muted);font-size:var(--text-xs);margin-top:var(--spacing-sm)}.portal .section{padding:var(--spacing-2xl) 0;border-top:1px solid var(--color-border);margin-top:var(--spacing-2xl)}.portal .platform-grid{gap:var(--spacing-lg);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.portal .platform-card{gap:var(--spacing-md);padding:var(--spacing-lg) 0;border-top:2px solid var(--color-accent);flex-direction:column;display:flex}.portal .platform-card p{flex:1;margin:0}.portal .platform-card .number{color:var(--color-foreground-muted);font-size:var(--text-md);font-variant-numeric:tabular-nums}.portal .split{gap:var(--spacing-2xl);grid-template-columns:1fr 1fr;display:grid}.portal .readable{max-width:76ch}.portal ol{list-style:decimal}.portal ul{list-style:outside}.portal ul,.portal ol{padding-left:var(--spacing-lg);margin:var(--spacing-lg) 0}.portal li+li{margin-top:var(--spacing-sm)}.portal .subnav{gap:var(--spacing-lg);margin:var(--spacing-xl) 0;padding:var(--spacing-md) 0;border-block:1px solid var(--color-border);flex-wrap:wrap;display:flex}.portal .subnav a[aria-current]{color:var(--color-foreground);text-decoration:none}.portal .release{padding:var(--spacing-lg);margin:var(--spacing-lg) 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.portal .release code{overflow-wrap:anywhere;font-size:var(--text-xs);color:var(--color-foreground-muted);display:block}.portal .release p{white-space:pre-line;overflow-wrap:anywhere}.portal .release strong{font-variant-numeric:tabular-nums}.portal details{padding:var(--spacing-lg) 0;border-bottom:1px solid var(--color-border)}.portal summary{cursor:pointer;min-height:32px;font-weight:700}.portal .breadcrumb{font-size:var(--text-md);color:var(--color-foreground-muted)}.portal .note{border-left:2px solid var(--color-accent);padding-left:var(--spacing-lg);margin:var(--spacing-xl) 0}.portal .link-list{gap:var(--spacing-md);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.portal .link-list a{padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);display:block}@media (width<=800px){.portal .hero,.portal .split{grid-template-columns:1fr;min-height:0}.portal .platform-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal .hero{gap:var(--spacing-lg)}}@media (width<=480px){.portal{padding:var(--spacing-xl) var(--spacing-md)}.portal .platform-grid,.portal .link-list{grid-template-columns:1fr}.portal h1{font-size:2.5rem}.portal .section{margin-top:var(--spacing-xl);padding:var(--spacing-xl) 0}}
