.portal-sections{display:block}.portal-section{padding:var(--portal-section-y) 0}.portal-section-inner{max-width:var(--portal-measure);padding:0 var(--space-6);margin:0 auto}.portal-tone-light{background:var(--color-bg)}.portal-tone-soft{background:var(--portal-surface-soft)}.portal-tone-brand{background:var(--portal-tint)}.portal-tone-dark{background:var(--portal-dark-bg);color:var(--portal-dark-text)}.portal-section-head{max-width:var(--portal-measure-narrow);margin:0 auto var(--space-10);text-align:center}.portal-eyebrow{margin:0 0 var(--space-3);color:var(--color-primary);font-size:var(--portal-small);letter-spacing:.06em;font-weight:600}.portal-section-title{font-size:var(--portal-h2);font-weight:600;line-height:var(--portal-line-tight);text-wrap:balance;margin:0}.portal-section-lead{margin:var(--space-4) 0 0;color:var(--color-text-secondary);font-size:var(--portal-lead);line-height:var(--portal-line-body)}.portal-section-stats .portal-section-head,.portal-section-logos .portal-section-head,.portal-section-gallery .portal-section-head,.portal-section-features .portal-section-head,.portal-section-products .portal-section-head,.portal-section-posts .portal-section-head,.portal-section-faq .portal-section-head,.portal-section-rich .portal-section-head,.portal-section-contact .portal-section-head,.portal-section-showcase .portal-section-head{margin-bottom:var(--space-8)}.portal-section-cta{padding:var(--portal-section-y-sm) 0}.portal-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);color:var(--color-text);font-family:var(--font-sans);font-size:var(--portal-body);font-weight:600;line-height:var(--portal-line-tight);text-align:center;white-space:nowrap;cursor:pointer;transition:background var(--portal-transition), color var(--portal-transition), border-color var(--portal-transition), box-shadow var(--portal-transition);background:0 0;border:1px solid transparent;text-decoration:none;display:inline-flex}.portal-btn-lg{padding:var(--space-3) var(--space-8);font-size:var(--portal-btn-lg-size)}.portal-btn-primary{border-radius:var(--portal-radius-pill);background:var(--color-primary);color:var(--color-on-primary);box-shadow:var(--portal-shadow-card)}.portal-btn-primary:hover{background:var(--color-primary-dark);color:var(--color-on-primary);box-shadow:var(--portal-shadow-hover)}.portal-btn-ghost{border-color:var(--color-border);border-radius:var(--radius-md);color:var(--color-text)}.portal-btn-ghost:hover{border-color:var(--color-primary);color:var(--color-primary)}.portal-hero{padding:var(--portal-hero-y) 0;background:var(--portal-hero-gradient);position:relative}.portal-hero.portal-tone-light{background:var(--color-bg)}.portal-hero.portal-tone-soft{background:var(--portal-surface-soft)}.portal-hero.portal-tone-brand{background:var(--portal-hero-gradient)}.portal-hero.portal-tone-dark{background:var(--portal-dark-bg)}.portal-hero-bg{z-index:0;opacity:.32;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.portal-hero:before{content:"";z-index:1;background:linear-gradient(180deg, color-mix(in srgb, var(--color-bg) 12%, transparent) 0%, color-mix(in srgb, var(--color-bg) 70%, transparent) 60%, var(--color-bg) 100%);position:absolute;inset:0}.portal-hero.portal-tone-dark:before{background:linear-gradient(180deg, color-mix(in srgb, var(--portal-dark-bg) 12%, transparent) 0%, color-mix(in srgb, var(--portal-dark-bg) 70%, transparent) 60%, var(--portal-dark-bg) 100%)}.portal-hero-inner{z-index:2;max-width:var(--portal-measure);padding:0 var(--space-6);text-align:center;margin:0 auto;position:relative}.portal-hero-title{max-width:20em;margin:0 auto var(--space-4);font-size:var(--portal-display);font-weight:600;line-height:var(--portal-line-tight);letter-spacing:-.01em;text-wrap:balance}.portal-hero-subtitle{max-width:34em;margin:0 auto var(--space-8);color:var(--color-text-secondary);font-size:var(--portal-lead);line-height:var(--portal-line-body)}.portal-hero-actions{justify-content:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.portal-hero-points{justify-content:center;gap:var(--space-2) var(--space-6);margin:var(--space-8) 0 0;color:var(--color-text-secondary);font-size:var(--portal-small);flex-wrap:wrap;padding:0;list-style:none;display:flex}.portal-hero-points li{align-items:center;gap:var(--space-2);display:inline-flex}.portal-hero-points li:before{content:"✓";color:var(--color-primary)}.portal-hero-media{width:100%;max-width:var(--portal-measure);height:auto;margin:var(--space-12) auto calc(-1 * var(--space-10));border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);box-shadow:var(--portal-shadow-hover);aspect-ratio:16/10;object-fit:contain;display:block}.portal-showcase-list{gap:var(--space-16);display:grid}.portal-showcase-row{align-items:center;gap:var(--space-12);grid-template-columns:1.05fr 1fr;display:grid}.portal-showcase-row:nth-child(2n) .portal-showcase-visual{order:-1}.portal-showcase-copy{min-width:0}.portal-showcase-title{margin:0 0 var(--space-3);font-size:var(--portal-h3);font-weight:600;line-height:var(--portal-line-tight)}.portal-showcase-desc{color:var(--color-text-secondary);font-size:var(--portal-body);line-height:var(--portal-line-body);margin:0}.portal-showcase-bullets{gap:var(--space-2);margin:var(--space-5) 0 0;color:var(--color-text-secondary);font-size:var(--portal-body);padding:0;list-style:none;display:grid}.portal-showcase-bullets li{align-items:flex-start;gap:var(--space-2);display:flex}.portal-showcase-bullets li:before{content:"✓";color:var(--color-primary);flex:none}.portal-showcase-link{align-items:center;gap:var(--space-1);margin-top:var(--space-5);color:var(--color-primary);font-size:var(--portal-body);font-weight:600;display:inline-flex}.portal-showcase-link:after{content:"→"}.portal-showcase-link:hover{color:var(--color-primary-dark);text-decoration:underline}.portal-showcase-visual{min-width:0}.portal-showcase-media{border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);width:100%;height:auto;box-shadow:var(--portal-shadow-card);aspect-ratio:16/10;object-fit:cover;display:block}.portal-showcase-glyph{border-radius:var(--portal-radius-card);background:var(--portal-tint-strong);color:color-mix(in srgb, var(--color-primary) 42%, transparent);line-height:1;font-size:var(--portal-glyph);aspect-ratio:16/10;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-weight:600;display:flex}.portal-grid{gap:var(--space-6);grid-template-columns:minmax(0,1fr);display:grid}.portal-card{border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);min-width:0;box-shadow:var(--portal-shadow-card);transition:background var(--portal-transition), box-shadow var(--portal-transition);flex-direction:column;display:flex;position:relative;overflow:hidden}.portal-card:hover{background:var(--portal-tint);box-shadow:var(--portal-shadow-hover)}.portal-card-icon{width:46px;height:46px;margin:var(--space-5) var(--space-5) 0;border-radius:var(--radius-md);background:var(--portal-tint-strong);color:var(--color-primary);font-size:var(--text-xl);justify-content:center;align-items:center;line-height:1;display:inline-flex}.portal-card-body{padding:var(--space-5)}.portal-card-icon+.portal-card-body{padding-top:var(--space-4)}.portal-card-media{background:var(--color-bg-soft);aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;display:block}.portal-card-title{margin:0 0 var(--space-2);font-size:var(--portal-h3);font-weight:600;line-height:var(--portal-line-tight)}.portal-card-desc{color:var(--color-text-secondary);font-size:var(--portal-body);line-height:var(--portal-line-body);margin:0}.portal-card-link{align-items:center;gap:var(--space-1);margin-top:var(--space-4);color:var(--color-primary);font-size:var(--portal-small);font-weight:600;display:inline-flex}.portal-card-link:after{content:"→"}.portal-card-link:hover{color:var(--color-primary-dark);text-decoration:underline}.portal-card-feature{overflow-wrap:anywhere}.portal-card-product .portal-card-body{flex-direction:column;flex:1;display:flex}.portal-card-product .portal-card-link{padding-top:var(--space-4);margin-top:auto}.portal-stats{gap:var(--space-10) var(--space-6);text-align:center;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0;padding:0;list-style:none;display:grid}.portal-stat{min-width:0}.portal-stat-value{color:var(--color-primary);font-size:var(--portal-h1);font-weight:600;line-height:var(--portal-line-tight);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.portal-stat-label{margin:var(--space-2) 0 0;color:var(--color-text);font-size:var(--portal-body)}.portal-stat-note{margin:var(--space-1) 0 0;color:var(--color-text-tertiary);font-size:var(--portal-small)}.portal-logos{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.portal-logo{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4);border-radius:var(--portal-radius-card);opacity:.7;transition:background var(--portal-transition), opacity var(--portal-transition);flex-direction:column;text-decoration:none;display:flex}.portal-logo:hover{background:var(--portal-tint);opacity:1}.portal-logo-media{object-fit:contain;width:auto;max-width:100%;max-height:48px}.portal-logo-name{color:var(--color-text-secondary);font-size:var(--portal-small);text-align:center}.portal-logos-note{margin:var(--space-6) 0 0;color:var(--color-text-tertiary);font-size:var(--portal-small);text-align:center}.portal-faq{gap:var(--space-3);max-width:var(--portal-measure-narrow);margin:0 auto;display:grid}.portal-faq-item{border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);box-shadow:var(--portal-shadow-card);transition:background var(--portal-transition), box-shadow var(--portal-transition)}.portal-faq-item:hover{background:var(--portal-tint)}.portal-faq-item[open]{background:var(--portal-tint-strong);box-shadow:var(--portal-shadow-hover)}.portal-faq-q{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);color:var(--color-text);font-size:var(--portal-body);font-weight:600;line-height:var(--portal-line-body);cursor:pointer;list-style:none;display:flex}.portal-faq-q::-webkit-details-marker{display:none}.portal-faq-q:after{content:"+";width:var(--space-5);color:var(--color-text-tertiary);font-size:var(--portal-h3);text-align:center;transition:color var(--portal-transition);flex:none;font-weight:400}.portal-faq-item[open] .portal-faq-q:after{content:"−";color:var(--color-primary)}.portal-faq-a{padding:0 var(--space-5) var(--space-5)}.portal-faq-text{color:var(--color-text-secondary);font-size:var(--portal-body);line-height:var(--portal-line-body);margin:0}.portal-cta-band{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-10);border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);box-shadow:var(--portal-shadow-card);flex-wrap:wrap;display:flex}.portal-cta-copy{max-width:40em}.portal-cta-title{font-size:var(--portal-h2);font-weight:600;line-height:var(--portal-line-tight);text-wrap:balance;margin:0}.portal-cta-subtitle{margin:var(--space-2) 0 0;color:var(--color-text-secondary);font-size:var(--portal-lead);line-height:var(--portal-line-body)}.portal-cta-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.portal-post-list{max-width:var(--portal-measure-narrow);margin:0 auto;padding:0;list-style:none}.portal-post-item{padding:var(--space-6) 0;border-bottom:1px solid var(--color-divider)}.portal-post-item:first-child{padding-top:0}.portal-post-item:last-child{border-bottom:0;padding-bottom:0}.portal-post-title{margin:0 0 var(--space-2);font-size:var(--portal-h3);font-weight:600;line-height:var(--portal-line-tight)}.portal-post-title a{color:var(--color-text);transition:color var(--portal-transition)}.portal-post-title a:hover{color:var(--color-primary)}.portal-post-meta{margin:0 0 var(--space-2);color:var(--color-text-tertiary);font-size:var(--portal-small);font-variant-numeric:tabular-nums;white-space:nowrap}.portal-post-summary{color:var(--color-text-secondary);font-size:var(--portal-body);line-height:var(--portal-line-body);margin:0}.portal-contact-list{gap:var(--space-4);max-width:var(--portal-measure-narrow);grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto;display:grid}.portal-contact-item{min-width:0;padding:var(--space-4) var(--space-5);border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);box-shadow:var(--portal-shadow-card)}.portal-contact-item dt{color:var(--color-text-tertiary);font-size:var(--portal-small)}.portal-contact-item dd{margin:var(--space-1) 0 0;color:var(--color-text);font-size:var(--portal-body);line-height:var(--portal-line-body)}.portal-gallery{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.portal-gallery-item{border-radius:var(--portal-radius-card);background:var(--color-bg-elevated);box-shadow:var(--portal-shadow-card);margin:0;overflow:hidden}.portal-gallery-media{background:var(--color-bg-soft);aspect-ratio:4/3;object-fit:cover;width:100%;height:auto;display:block}.portal-gallery-caption{padding:var(--space-3) var(--space-4);color:var(--color-text-secondary);font-size:var(--portal-small)}.portal-empty{max-width:var(--portal-measure-narrow);padding:var(--space-12) var(--space-6);border:1px dashed var(--color-border);border-radius:var(--portal-radius-card);color:var(--color-text-tertiary);font-size:var(--portal-body);text-align:center;margin:0 auto}.portal-rich-body{max-width:var(--portal-measure-narrow);margin:0 auto}.portal-rich-heading{margin:var(--space-8) 0 var(--space-3);font-size:var(--portal-h3);font-weight:600;line-height:var(--portal-line-tight)}.portal-rich-heading:first-child{margin-top:0}.portal-rich-paragraph{margin:0 0 var(--space-4);color:var(--color-text-secondary);font-size:var(--portal-body);line-height:var(--portal-line-body)}.portal-rich-list{margin:0 0 var(--space-4);padding-left:var(--space-6);color:var(--color-text-secondary);font-size:var(--portal-body);line-height:var(--portal-line-body)}.portal-rich-list li{margin-bottom:var(--space-2)}.portal-tone-dark :is(.portal-section-title,.portal-hero-title,.portal-showcase-title,.portal-card-title,.portal-cta-title,.portal-rich-heading,.portal-contact-item dd,.portal-post-title a,.portal-stat-value,.portal-faq-q){color:var(--portal-dark-text)}.portal-tone-dark :is(.portal-section-lead,.portal-eyebrow,.portal-hero-subtitle,.portal-hero-points,.portal-showcase-desc,.portal-showcase-bullets,.portal-card-desc,.portal-cta-subtitle,.portal-post-summary,.portal-post-meta,.portal-rich-paragraph,.portal-rich-list,.portal-faq-text,.portal-contact-item dt,.portal-logo-name,.portal-stat-label,.portal-stat-note,.portal-logos-note,.portal-gallery-caption){color:var(--portal-dark-text-dim)}.portal-tone-dark .portal-hero-points li:before{color:var(--portal-dark-text)}.portal-tone-dark :is(.portal-card,.portal-gallery-item,.portal-faq-item,.portal-contact-item){background:var(--portal-dark-surface);box-shadow:none}.portal-tone-dark :is(.portal-card,.portal-faq-item):hover{background:color-mix(in srgb, var(--portal-dark-text) 6%, var(--portal-dark-surface))}.portal-tone-dark .portal-faq-item[open]{background:color-mix(in srgb, var(--portal-dark-text) 10%, var(--portal-dark-surface))}.portal-tone-dark :is(.portal-card-icon,.portal-logo:hover){background:color-mix(in srgb, var(--portal-dark-text) 12%, transparent)}.portal-tone-dark .portal-card-icon{color:var(--portal-dark-text)}.portal-tone-dark :is(.portal-hero-media,.portal-showcase-media,.portal-card-media){background:var(--portal-dark-surface)}.portal-tone-dark .portal-showcase-glyph{background:var(--portal-dark-surface);color:color-mix(in srgb, var(--portal-dark-text) 42%, transparent)}.portal-tone-dark :is(.portal-showcase-link,.portal-card-link){color:var(--portal-dark-text)}.portal-tone-dark :is(.portal-showcase-link,.portal-card-link):hover{color:var(--portal-dark-text-dim)}.portal-tone-dark .portal-faq-item[open] .portal-faq-q:after{color:var(--portal-dark-text)}.portal-tone-dark .portal-post-item{border-bottom-color:var(--portal-dark-border)}.portal-tone-dark .portal-empty{border-color:var(--portal-dark-border);color:var(--portal-dark-text-dim)}.portal-tone-dark .portal-btn-primary{background:var(--portal-dark-text);color:var(--portal-dark-bg);box-shadow:none}.portal-tone-dark .portal-btn-primary:hover{background:var(--portal-dark-text-dim);color:var(--portal-dark-bg)}.portal-tone-dark .portal-btn-ghost{border-color:var(--portal-dark-border);color:var(--portal-dark-text)}.portal-tone-dark .portal-btn-ghost:hover{border-color:var(--portal-dark-text);color:var(--portal-dark-text)}.portal-tone-dark .portal-cta-band{box-shadow:none;background:0 0;border-radius:0;padding:0}.portal-tone-dark.portal-section :is(a,button,summary,input):focus-visible{outline-color:var(--portal-dark-text)}.portal-tone-dark.portal-hero :is(a,button,summary,input):focus-visible{outline-color:var(--portal-dark-text)}@media (width>=600px){.portal-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=905px){.portal-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=904px){.portal-showcase-row{gap:var(--space-8);grid-template-columns:minmax(0,1fr)}.portal-showcase-visual{order:-1}.portal-cta-band{padding:var(--space-8)}}@media (width<=599px){.portal-section{padding:var(--portal-section-y-sm) 0}.portal-section-inner{padding:0 var(--space-4)}.portal-section-head{margin-bottom:var(--space-8)}.portal-hero{padding:var(--space-10) 0 var(--space-8)}.portal-hero-inner{padding:0 var(--space-4)}.portal-hero-media{margin-top:var(--space-8);margin-bottom:calc(-1 * var(--space-6))}.portal-hero-actions .portal-btn{width:100%}.portal-showcase-list{gap:var(--space-10)}.portal-grid,.portal-logos,.portal-gallery{gap:var(--space-4)}.portal-contact-list{grid-template-columns:minmax(0,1fr)}.portal-stats{gap:var(--space-8) var(--space-4)}.portal-empty{padding:var(--space-10) var(--space-4)}}