@font-face{font-family:Schibsted;src:url('/assets/h/sans.4c8b93f431.woff2') format('woff2');font-weight:100 900;font-display:optional}
.doc-figure{margin:32px 0}.doc-figure img{display:block;max-width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius)}.doc-figure figcaption{font-size:.875rem;color:var(--muted);margin-top:12px}
.doc-table-hint{display:none}@media(max-width:480px){.doc-table-hint{display:block;font-size:.875rem;color:var(--muted);margin:24px 0 8px}.doc-table-hint+.table-wrap{margin-top:8px}}
:root{
 --paper:#f4f5f2;--ink:#20252b;--muted:#53616b;--night:#18212b;--blue:#367d9f;--ice:#dce8ee;--line:#c6cece;
 --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s6:1.5rem;--s8:2rem;--s12:3rem;--s16:4rem;--s24:6rem;
 --section:clamp(3rem,6vw,5rem);--radius:6px;--header:72px;--cover:var(--header);
}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--cover) + 24px)}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 Schibsted,Arial,sans-serif}
a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}
a:hover{text-decoration:underline;text-underline-offset:5px}
:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
h1,h2,h3,p{margin-top:0}p{margin-bottom:var(--s6)}h1,h2,h3{font-weight:500;text-wrap:balance}
h1{font-size:clamp(2.6rem,5.2vw,4.75rem);line-height:1.08;letter-spacing:-.045em;margin-bottom:0;max-width:960px}
h2{font-size:clamp(1.9rem,3.1vw,2.8rem);line-height:1.18;letter-spacing:-.035em;margin-bottom:var(--s6)}
h3{font-size:1.5rem;line-height:1.3;letter-spacing:-.02em;margin-bottom:var(--s3)}h1 em,h2 em{font-style:normal;color:var(--blue)}
.wrap{width:min(1280px,calc(100% - 96px));margin-inline:auto}.skip{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:20}.skip:focus{top:12px}
.eyebrow{display:block;font-size:.75rem;line-height:1.5;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--s6)}
.serif,.page-hero .lead{font:400 clamp(1.4rem,2vw,1.8rem)/1.45 Georgia,serif;letter-spacing:-.015em}
/* Global navigation and a small, predictable action vocabulary. */
.site-header{--header-surface:#282e38;position:sticky;top:0;z-index:10;background:var(--header-surface);color:#edf0f5;border-bottom:1px solid #3d4653;color-scheme:dark}
.site-header :focus-visible{outline-color:#8ab4ff}
.site-header .button{background:#8ab4ff;border-color:#8ab4ff;color:#111c30;padding:10px 18px}
.site-header .button:hover{background:#a5c5ff;border-color:#a5c5ff}
.site-header .menu-button{color:inherit;border-color:#7c899b;font-size:.875rem;line-height:1.4}
.site-header .menu-button:hover{background:#3d4653}
@media(prefers-color-scheme:dark){.site-header{--header-surface:#20242c}}
.header-inner{min-height:calc(var(--header) - 1px);display:flex;align-items:center;justify-content:space-between;gap:var(--s8)}
.brand{display:inline-flex;align-items:center;flex-shrink:0}.brand img{width:210px;height:52px;object-fit:contain}
.header-inner .brand img{width:180px;height:36px}
.nav{display:flex;align-items:center;gap:var(--s6);font-size:.875rem;font-weight:500}
.nav>a:not(.button){display:inline-flex;align-items:center;min-height:44px}
.nav a[aria-current=page]{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1.5px}
.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:12px 22px;background:var(--ink);color:white;border:1px solid var(--ink);border-radius:var(--radius);font-size:.875rem;font-weight:500;line-height:1.4;text-align:center}
.button:hover{background:#344351;text-decoration:none}.button.light{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.button.light:hover{background:var(--ice)}.text-link{display:inline-flex;align-items:center;gap:8px;min-height:32px;font-size:.875rem;font-weight:600;line-height:1.5}
.text-link>span{flex:none;font-size:1rem;line-height:1}.menu-button{display:none;min-height:44px;background:transparent;border:1px solid #929fa7;border-radius:var(--radius);padding:8px 16px}
/* Editorial marketing layouts. */
.hero{padding:clamp(3.5rem,7vw,6rem) 0 var(--section)}.hero-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:8%;align-items:end}
.hero-intro{max-width:480px}.hero-intro p{margin-bottom:var(--s6)}.hero-actions{display:flex;align-items:center;gap:var(--s6);flex-wrap:wrap}
.page-hero{padding:var(--section) 0}.page-hero .lead{max-width:760px;margin:var(--s8) 0 0}
.section{padding:var(--section) 0;border-top:1px solid var(--line)}.section-head{display:grid;grid-template-columns:1fr 1.4fr;gap:10%;margin-bottom:var(--s12)}
.section-head p{max-width:64ch;font-size:1.125rem;color:var(--muted)}.feature-list{margin-left:38%}
.feature-row{display:grid;grid-template-columns:32px minmax(0,1fr);gap:var(--s6);padding:var(--s8) 0;border-top:1px solid var(--line)}
.feature-row .number{font-size:.75rem;color:var(--muted);padding-top:5px}.feature-row h3{font-size:1.5rem}.feature-row p{margin:0;color:var(--muted);max-width:58ch}
.feature-row:hover{text-decoration:none}.feature-row:hover h3{text-decoration:underline;text-underline-offset:5px}
.fact-strip{display:flex;justify-content:space-between;gap:var(--s6);flex-wrap:wrap;padding:var(--s8) 0 var(--s12);font-size:.875rem;color:var(--muted)}
.band{background:var(--ice);padding:var(--section) 0}.band-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.band h2{font-family:Georgia,serif;font-weight:400}.band p{color:#3f505d;max-width:58ch}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s8)}.card{border-top:1px solid #83929a;padding:var(--s8) 0;display:block}.card .eyebrow{color:var(--muted);margin-bottom:var(--s6)}.card p{color:var(--muted);margin:0;max-width:60ch}.card:hover{text-decoration:none}.card:hover h3{text-decoration:underline;text-underline-offset:5px}
.detail-section{display:grid;grid-template-columns:.75fr 1.4fr;gap:9%;padding:var(--section) 0;border-top:1px solid var(--line)}.detail-section>*{min-width:0}.detail-section p{font-size:1.125rem;color:var(--muted);max-width:68ch}.detail-section ul{padding-left:22px}.detail-section li{margin-bottom:var(--s3)}
.cta{background:var(--night);color:#e5f0f5;padding:var(--s12);border-radius:var(--radius);display:flex;justify-content:space-between;align-items:center;gap:var(--s8);margin-bottom:var(--section)}.cta h2{max-width:640px;margin:0}.cta .button{flex-shrink:0}
/* Functional diagrams. Paths and signal share one measured SVG coordinate space. */
.estate{background:var(--night);border-radius:var(--radius);overflow:hidden;color:#e5f0f5}
.estate-top{padding:20px 32px;border-bottom:1px solid #ffffff24;display:flex;justify-content:space-between;align-items:center;gap:var(--s6)}
.estate-top>span{font-size:.75rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase}
.diagram-toggle{background:transparent;color:#e5f0f5;border:1px solid #738a9c;border-radius:4px;min-height:44px;padding:8px 14px;white-space:nowrap;font-size:.875rem}
.diagram-toggle:hover{background:#2b3d4e}.diagram-toggle:disabled{color:#b5c7d4}
.estate-content{display:grid;grid-template-columns:.85fr 1.4fr;gap:7%;padding:var(--s12)}.estate-copy h2{font:400 clamp(1.8rem,2.8vw,2.6rem)/1.2 Georgia,serif;letter-spacing:-.025em}.estate-copy p{color:#b5c7d4;max-width:36ch;margin:0}
.diagram{position:relative;align-self:center;isolation:isolate;min-width:0}.diagram-label{font-size:.75rem;letter-spacing:.07em;text-transform:uppercase;color:#b5c7d4;margin-bottom:var(--s6)}
.root-node{position:relative;z-index:1;display:flex;justify-content:space-between;gap:16px;border:1px solid #738a9c;background:#263544;padding:18px 20px;font-size:1rem}.root-node>span{font-size:.875rem;color:#a6d4ec;align-self:center}
.branches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:48px}.stem{display:none}
.node{position:relative;z-index:1;background:#1d2a36;border:1px solid #596e80;padding:18px 14px;font-size:.875rem;line-height:1.5;min-width:0}
.node small{display:block;font-size:.875rem;color:#b5c7d4;margin-top:8px}.node[data-active=true]{border-color:#91cbea;background:#2b4051}
.diagram-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0;pointer-events:none}.diagram-wires path{fill:none;stroke:#738a9c;stroke-width:1;stroke-linejoin:round;vector-effect:non-scaling-stroke}.diagram-signal{fill:#a6d4ec}
.diagram-foot{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:12px 24px;border-top:1px solid #ffffff24;padding-top:18px;margin-top:var(--s6);font-size:.75rem;color:#b5c7d4}
/* Pricing: supplied commercial terms, no invented features or preferred tiers. */
.pricing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s6)}.price-card{background:var(--night);color:#e5f0f5;border:1px solid #405363;border-radius:var(--radius);padding:var(--s8)}.price-card h2{font-size:1rem;letter-spacing:0;color:#b5c7d4;margin-bottom:var(--s6)}
.price-amount{font-size:clamp(2rem,3vw,2.75rem);font-weight:500;line-height:1.15;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.price-amount span{display:block;font-size:.875rem;font-weight:400;letter-spacing:0;margin-top:8px;min-height:23px;color:#b5c7d4}.price-card p{color:#d3dfe7;margin:var(--s6) 0 0}
.pricing-note{font-size:.875rem;color:var(--muted);margin:var(--s6) 0 var(--s12)}.sales-services{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding:var(--section) 0;border-top:1px solid var(--line)}.pilot p{font-size:1.125rem;color:var(--muted)}
.service-list{margin:0}.service-list>div{display:grid;grid-template-columns:1.25fr 1fr;gap:var(--s6);padding:var(--s6) 0;border-bottom:1px solid var(--line)}.service-list>div:first-child{padding-top:0}.service-list dd{margin:0;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
/* Documentation is a reading surface, with a smaller scale and no entrance effects. */
.docs-shell{display:grid;grid-template-columns:224px minmax(0,1fr);gap:64px;padding:var(--s12) 0 var(--section)}.docs-nav{position:sticky;top:calc(var(--cover) + 24px);align-self:start;max-height:calc(100dvh - var(--header) - 48px);overflow:auto;padding:0 8px 8px}
.docs-nav a{display:flex;align-items:center;min-height:44px;font-size:.875rem;padding:8px 12px;color:var(--muted);border-radius:4px}.docs-nav a[aria-current=page]{background:var(--ice);color:var(--ink);font-weight:600}.docs-nav a:hover{background:#e7eceb}.nav-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:24px 12px 8px}.docs-nav .nav-label:first-child{margin-top:0}
.docs-article{max-width:880px;min-width:0}.docs-article h1{font-size:clamp(2.25rem,4vw,3.25rem);margin:0 0 var(--s6)}.docs-article .intro{font-size:1.25rem;color:var(--muted);max-width:64ch}.docs-article h2{font-size:1.75rem;margin:var(--s12) 0 var(--s4)}.docs-article h3{font-size:1.25rem;margin:var(--s8) 0 var(--s4)}.docs-article p,.docs-article li{max-width:70ch}.docs-article li{margin-bottom:var(--s3)}
.docs-article a:not(.button):not(.card){text-decoration:underline;text-underline-offset:4px}.docs-article .cards{grid-template-columns:1fr 1fr;margin-top:var(--s8)}.docs-article .card h3{margin-top:0}.docs-article code{font: .875em/1.6 ui-monospace,monospace;background:#e6e9e7;padding:3px 5px;overflow-wrap:anywhere}
.code-wrap{position:relative;margin:var(--s6) 0}.code-wrap pre{background:#202b37;color:#e5f0f5;padding:64px 24px 24px;overflow:auto;border-radius:var(--radius);white-space:pre-wrap;overflow-wrap:anywhere;font: .875rem/1.8 ui-monospace,monospace}.code-wrap code{font:inherit;background:none;color:inherit;padding:0}.copy{position:absolute;right:12px;top:10px;min-height:36px;min-width:64px;background:#354454;color:#e5f0f5;border:1px solid #8193a2;border-radius:4px;font-size:.875rem;padding:6px 12px}.copy:hover{background:#4b6073}
.note{border-left:3px solid var(--blue);padding:20px 24px;background:#e5ecef;margin:var(--s6) 0;font-size:1rem}.source-note{font-size:.8125rem;color:var(--muted);margin-top:var(--s8)}
.table-wrap{overflow:auto;margin:var(--s6) 0}table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem}caption.eyebrow{display:table-caption;text-align:left;caption-side:top;padding-bottom:16px;margin:0}th,td{padding:16px 12px;border-bottom:1px solid var(--line)}th{font-weight:600;background:#e8eceb}
.doc-next{display:flex;justify-content:space-between;gap:var(--s6);flex-wrap:wrap;border-top:1px solid var(--line);padding-top:var(--s6);margin-top:var(--s12)}.doc-mobile{display:none}.doc-source-disclosure{margin-top:var(--s8)}summary{cursor:pointer;min-height:44px;padding-block:10px}.doc-source-disclosure summary{font-size:.875rem}.operator-source{font:.875rem/1.8 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}.doc-toc{display:flex;flex-wrap:wrap;gap:12px 24px;border-block:1px solid var(--line);padding:20px 0;font-size:.875rem;margin-top:var(--s8)}.doc-toc a{min-height:32px;display:flex;align-items:center}
.faq{border-bottom:1px solid var(--line);padding:16px 0}.faq summary{font-size:1.125rem}.faq p{max-width:70ch;margin-top:var(--s4);color:var(--muted)}
/* Footer and empty states. */
.footer{background:#e8eceb;padding:var(--s12) 0 var(--s6)}.footer-top{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:var(--s12)}.footer-logo{width:205px;height:50px;object-fit:contain}.footer p{font-size:.875rem;color:var(--muted);max-width:32ch;margin-top:var(--s4)}.footer strong{display:block;font-size:.875rem;margin-bottom:var(--s4)}.footer a:not(.brand){display:block;font-size:.875rem;min-height:32px;padding-block:4px}.footer-bottom{margin-top:var(--s12);padding-top:var(--s6);border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--s4);font-size:.75rem;color:var(--muted)}.error-page{text-align:center;padding:var(--section) 0}.error-page h1{margin:0 auto var(--s6)}
/* Motion never changes a connector's geometry or delays readable copy. */
@media(prefers-reduced-motion:no-preference){
 .button,.copy,.diagram-toggle{transition:background-color 160ms ease}
 .text-link>span{transition:transform 160ms ease}.text-link:hover>span{transform:translateX(2px)}
 .card{transition:border-color 180ms ease}.card:hover{border-color:var(--blue)}
}
@media(max-width:1150px){
 :root{--header:64px}.wrap{width:calc(100% - 64px)}.header-inner{gap:16px}.menu-button{display:block}
 .nav{flex-wrap:wrap}.js .nav{display:none;position:absolute;top:var(--header);left:0;right:0;background:var(--header-surface);padding:24px 32px;border-bottom:1px solid #3d4653;max-height:calc(100dvh - var(--header));overflow:auto;flex-direction:column;align-items:stretch;gap:8px}.js .nav.open{display:flex}
 .nav>a:not(.button){padding-inline:0}.nav .button{margin-top:8px}
 .estate-content{padding:32px;gap:32px}.root-node{flex-direction:column;gap:8px}.root-node>span{align-self:start}.pricing-grid{grid-template-columns:1fr 1fr}.price-amount{font-size:2.75rem}.docs-shell{grid-template-columns:200px minmax(0,1fr);gap:32px}
}
@media(max-width:800px){
 .hero-grid,.section-head,.band-grid,.detail-section,.estate-content,.sales-services{grid-template-columns:1fr;gap:32px}
 .hero h1{max-width:620px}.hero-intro{max-width:600px}.hero{padding-top:48px}.hero-intro .serif br{display:none}.hero-intro .serif{max-width:36ch}
 .feature-list{margin-left:0}.section-head{margin-bottom:24px}.cards{gap:24px}.cta{align-items:start;flex-direction:column;padding:32px}
 .estate-copy p{max-width:60ch}.root-node{flex-direction:row}.root-node>span{align-self:center}.fact-strip{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}
 .docs-shell{display:block;padding-top:24px}.docs-nav{position:static;max-height:none;overflow:visible;padding:0 0 24px;margin-bottom:32px;border-bottom:1px solid var(--line)}.docs-nav>.eyebrow{display:none}
 .doc-mobile{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:44px;padding:12px 16px;background:#e8eceb;border:1px solid var(--line);border-radius:4px}.js .docs-nav nav{display:none}.js .docs-nav.expanded nav{display:block;margin-top:16px}
}
@media(max-width:560px){
 .wrap{width:calc(100% - 40px)}.js .nav{padding-inline:20px}.brand img{width:200px}.header-inner{gap:8px}.header-inner .brand img{width:160px;height:32px}.eyebrow{margin-bottom:20px}h1{font-size:clamp(2.3rem,9.7vw,3rem)}
 .cards,.docs-article .cards,.pricing-grid{grid-template-columns:1fr}.feature-row{gap:12px;grid-template-columns:24px minmax(0,1fr)}
 .estate-top{padding:16px 20px;gap:16px}.estate-top>span{max-width:150px}.estate-content{padding:24px 20px;gap:32px}.diagram-label{font-size:.75rem}
 .root-node{flex-direction:column;padding:16px}.root-node>span{align-self:start}.branches{grid-template-columns:1fr;gap:12px;padding-top:32px;padding-left:24px}.node{padding:16px}.node small{margin-top:4px}
 .diagram-foot{gap:8px 16px}.price-card{padding:28px}.price-amount span{display:inline-block;margin-left:10px;min-height:0}.service-list>div{grid-template-columns:1fr;gap:8px}.service-list dd{text-align:left;font-weight:500}
 .footer-top{grid-template-columns:1fr 1fr;gap:32px 24px}.footer-top>div:first-child{grid-column:1/-1}.cta{padding:28px 24px}.docs-article .intro{font-size:1.125rem}.docs-article h1{font-size:2.25rem}.table-wrap table{min-width:430px}.note{padding:16px 20px}.code-wrap pre{padding-inline:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.diagram-signal{display:none}}

html:not(.js) .header-inner{flex-wrap:wrap}html:not(.js) .menu-button,html:not(.js) .doc-mobile{display:none}

/* Contact: editorial context alongside a short, explicitly labelled inquiry. */
.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:8%;padding-bottom:var(--section);align-items:start}
.contact-context{padding-top:var(--s8);border-top:1px solid var(--line)}.contact-context p{color:var(--muted);max-width:46ch}.contact-pilot{padding:var(--s8);margin:var(--s8) 0;background:var(--ice);border-radius:var(--radius)}.contact-pilot .eyebrow{margin-bottom:var(--s4)}.contact-pilot p{margin-bottom:var(--s4)}.contact-docs{font-size:.875rem}
.contact-panel{padding:var(--s8);border:1px solid var(--line);border-radius:var(--radius);background:#fff9;min-width:0}.contact-panel h2{font-size:1.75rem;margin-bottom:var(--s3)}.contact-hint,.field-hint{font-size:.8125rem;color:var(--muted)}.contact-hint a{text-decoration:underline;text-underline-offset:3px}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field-wide{grid-column:1/-1}.field label{font-size:.875rem;font-weight:500}.field input,.field select,.field textarea{width:100%;min-width:0;min-height:48px;border:1px solid #83929a;background:var(--paper);border-radius:4px;padding:10px 12px;font:inherit;color:var(--ink)}.field textarea{resize:vertical;line-height:1.5}.contact-preview{font-size:.8125rem;color:var(--muted);border-left:3px solid var(--blue);padding:12px 16px;background:var(--ice);margin:var(--s6) 0}.contact-panel .button{margin-bottom:var(--s4)}.contact-panel .button:disabled{background:#e1e6e5;border-color:#c6cece;color:#53616b}.contact-fields+.contact-hint{margin-top:var(--s6)}
@media(max-width:800px){.contact-layout{grid-template-columns:1fr;gap:var(--s12)}.contact-panel{grid-row:1}.contact-context p{max-width:65ch}}
@media(max-width:560px){.contact-panel{padding:24px 20px}.contact-fields{grid-template-columns:1fr}.contact-pilot{padding:24px}.contact-layout{gap:var(--s8)}}
/* SITESCROLL (2026-10-06): on desktop the window does not scroll. Everything under the header scrolls in one box,
   so the scrollbar starts below the header instead of running beside it. The header no longer covers content, so
   --cover (anchor offsets, sticky tops) drops to zero. Phones keep document scrolling for address-bar collapse and
   pull-to-refresh, and print is untouched (screen only), so a printed page is never a clipped box. */
@media screen and (min-width:801px){
 html,body{height:100%;overflow:hidden}
 :root{--cover:0px}
 body{display:flex;flex-direction:column}
 .site-header{flex:none}
 .page-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-gutter:stable;scroll-padding-top:24px;outline:none;
  scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 55%,var(--paper)) transparent}
}
@media screen and (min-width:801px) and (prefers-reduced-motion:no-preference){.page-scroll{scroll-behavior:smooth}}
