/* Shared publication + lab design tokens. Keep this as the single visual source. */
:root{--rv-bg:#f5f7fc;--rv-surface:#fff;--rv-soft:#eef1fb;--rv-ink:#182036;--rv-muted:#59657b;--rv-line:#dce2ef;--rv-primary:#514bd5;--rv-primary-hover:#4039b6;--rv-highlight:#bbb8ff;--rv-radius:12px;--rv-shadow:0 6px 22px #18203608;--rv-font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--color-primary:var(--rv-primary);--color-secondary:#6c5fdb;--color-background:var(--rv-bg);--color-surface:var(--rv-surface);--color-text:var(--rv-ink);--color-text-secondary:var(--rv-muted);--color-border:var(--rv-line)}
html.dark{color-scheme:dark;--rv-bg:#111625;--rv-surface:#1b2235;--rv-soft:#252d45;--rv-ink:#eef0fa;--rv-muted:#b3bdd4;--rv-line:#35405b;--rv-primary:#aca5ff;--rv-primary-hover:#c3beff;--rv-shadow:0 6px 22px #0002}
body.rv-publication,body.rv-lab{background:var(--rv-bg);color:var(--rv-ink);font-family:var(--rv-font)}
.rv-sitebar{background:var(--rv-surface);border-top:3px solid var(--rv-line);border-bottom:1px solid var(--rv-line);position:relative;z-index:1000;color:var(--rv-ink);font:14px/1.4 var(--rv-font)}
.rv-sitebar-inner{max-width:1280px;margin:auto;padding:17px 24px;display:flex;align-items:center;gap:28px;min-height:80px}.rv-brand{display:flex;align-items:center;gap:12px;color:var(--rv-ink);text-decoration:none!important;white-space:nowrap;font-size:21px;font-weight:700;letter-spacing:-.7px}.rv-brand strong{color:var(--rv-primary);font-weight:700}.rv-brand small{display:block;font-size:8px;letter-spacing:1.3px;font-weight:600;margin-top:4px;color:var(--rv-muted)}.rv-brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#252346;color:#d6d2ff;font:700 18px/1 ui-monospace,monospace;letter-spacing:-1px;border:1px solid #7168c1}.rv-sitebar-inner>nav{display:flex;gap:5px;flex:1;justify-content:center}.rv-sitebar-inner>nav a{color:var(--rv-muted);font-size:13px;font-weight:600;white-space:nowrap;padding:10px 12px;border-radius:7px;text-decoration:none}.rv-sitebar-inner>nav a:hover,.rv-sitebar-inner>nav a[aria-current]{color:var(--rv-primary);background:var(--rv-soft)}.rv-header-tools{display:flex;align-items:center;gap:12px}.rv-preview{font-size:10px;font-weight:600;color:var(--rv-muted);white-space:nowrap}.rv-mode-label select{color:var(--rv-ink);background:var(--rv-surface);font:12px var(--rv-font);padding:8px;border:1px solid var(--rv-line);border-radius:7px;width:auto;min-width:75px}.rv-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.rv-sitebar a:focus-visible,.rv-sitebar select:focus-visible,.rv-lab a:focus-visible,.rv-lab button:focus-visible,.rv-lab input:focus-visible,.rv-lab select:focus-visible,.rv-lab textarea:focus-visible{outline:3px solid var(--rv-primary);outline-offset:3px}
/* Lab uses the same full-width publication shell rather than a different app sidebar. */
.rv-lab{--paper:var(--rv-bg);--ink:var(--rv-ink);--muted:var(--rv-muted);--line:var(--rv-line);--accent:var(--rv-highlight);--white:var(--rv-surface)}.rv-lab .shell{margin:0}.rv-lab main{max-width:1280px;padding:38px 24px 55px}.rv-lab .lab-nav{background:var(--rv-surface);border-bottom:1px solid var(--rv-line);display:flex;justify-content:center;gap:8px;padding:10px 24px;overflow:auto}.rv-lab .lab-nav a{font-size:12px;color:var(--rv-muted);padding:8px 12px;white-space:nowrap;border-radius:6px}.rv-lab .lab-nav a[aria-current]{color:var(--rv-primary);background:var(--rv-soft)}.rv-lab h1,.rv-lab h2,.rv-lab h3{font-family:var(--rv-font);color:var(--rv-ink);font-weight:700;letter-spacing:-.8px}.rv-lab h1{font-size:clamp(32px,3.4vw,48px)}.rv-lab .hero{background:linear-gradient(125deg,#171c30,#303154);border-radius:var(--rv-radius);padding:42px;margin:0 0 30px;grid-template-columns:1.4fr 1fr}.rv-lab .hero h1{color:#fff}.rv-lab .hero h1 em{color:#b6afff}.rv-lab .hero p,.rv-lab .hero .eyebrow,.rv-lab .hero .text-link{color:#d0d5e9}.rv-lab .hero-core{background:#292743;border-color:#8175c1;box-shadow:12px 17px 0 #5d558f;color:#d3ccff}.rv-lab .hero-core span{color:#fff}.rv-lab .orbit{border-color:#8a82b755}.rv-lab .coordinate{background:#292b49;color:#d0d5e9}.rv-lab .hero-mark{background-image:radial-gradient(#9e97ca55 .8px,transparent .8px)}.rv-lab .eyebrow{color:var(--rv-primary);font-size:11px}.rv-lab .metrics{background:var(--rv-surface);border:1px solid var(--rv-line);border-radius:var(--rv-radius);padding:25px}.rv-lab .metrics span,.rv-lab .metric-note p{font-size:12px}.rv-lab .dot{background:var(--rv-primary)}.rv-lab .button{background:#514bd5;border-color:#514bd5;color:#fff;padding:13px 18px;border-radius:8px;font-size:14px}.rv-lab .button:hover{background:#4039b6;border-color:#4039b6}.rv-lab .button.secondary{background:var(--rv-surface);border-color:var(--rv-line);color:var(--rv-primary)}.rv-lab .text-link,.rv-lab .section-title>a{font-size:13px}.rv-lab .board-card,.rv-lab .panel,.rv-lab .article,.rv-lab .table-wrap{background:var(--rv-surface);border-color:var(--rv-line);border-radius:var(--rv-radius);box-shadow:var(--rv-shadow)}.rv-lab .card-body>p,.rv-lab .article p,.rv-lab .panel p,.rv-lab .feature p{font-size:14px}.rv-lab .card-kicker,.rv-lab .card-kicker>span,.rv-lab .spec-line,.rv-lab .card-bottom,.rv-lab .badge,.rv-lab .footnote{font-size:12px}.rv-lab .card-body>p{min-height:70px}.rv-lab .spec-line{border-color:var(--rv-line)}.rv-lab .badge{background:var(--rv-soft);color:var(--rv-muted);border-color:var(--rv-line)}.rv-lab .board-art{background:#e5e9fa}.rv-lab .board-art.purple{background:#ede7fa}.rv-lab .board-art.orange{background:#e3edf7}.rv-lab .chip,.rv-lab .purple .chip,.rv-lab .orange .chip{background:#353456;border-color:#9f9bc6;box-shadow:6px 7px 0 #b3b1d0}.rv-lab .chip small{color:#d6d2ff}.rv-lab .art-label{color:#353456}.rv-lab .filterbar,.rv-lab .feature,.rv-lab .guide,.rv-lab .notice,.rv-lab .empty,.rv-lab thead th{background:var(--rv-soft);border-color:var(--rv-line)}.rv-lab .feature.dark{background:#25273f;color:#fff}.rv-lab .feature.dark h2{color:#fff}.rv-lab .feature.dark .eyebrow{color:#c4bfff}.rv-lab .feature.dark .button{background:#514bd5;color:#fff}.rv-lab .feature.dark p{color:#d0d5e9}.rv-lab .feature.dark strong{color:#d0caff}.rv-lab .notice{border-left-color:var(--rv-primary)}.rv-lab .guide .notice{background:var(--rv-surface)}.rv-lab input,.rv-lab select,.rv-lab textarea{background:var(--rv-surface);border-color:var(--rv-line);color:var(--rv-ink);font-size:14px;border-radius:7px}.rv-lab label{font-size:13px}.rv-lab input[type=checkbox]{accent-color:var(--rv-primary)}.rv-lab footer{font-size:12px;background:var(--rv-surface);padding:24px;max-width:1280px;margin:auto}.rv-lab footer b{color:var(--rv-primary)}.rv-lab .matrix>div span:last-child{color:var(--rv-muted);font-size:12px}
/* Existing Ghost page structure and behavior are retained. */
.rv-publication .gh-navigation,.rv-publication .gh-top-bar{background:var(--rv-surface)!important;border-color:var(--rv-line);box-shadow:none}.rv-publication .gh-navigation:before,.rv-publication .gh-top-bar:before{display:none}.rv-publication .gh-navigation-logo{color:var(--rv-ink)}.rv-publication .gh-btn,.rv-publication .gh-button:not(.gh-search-toggle){border-radius:8px}.rv-publication .gh-post-card,.rv-publication .gh-card,.rv-publication .gh-cta{border-radius:var(--rv-radius);border-color:var(--rv-line)}.rv-publication .gh-article-title,.rv-publication .gh-card-title,.rv-publication .gh-post-card-title{font-family:var(--rv-font);letter-spacing:-.6px}.rv-staging-badge{position:fixed;bottom:12px;right:12px;z-index:2147483646;padding:10px 14px;background:#25273f;color:#fff;border:1px solid #9189e6;border-radius:8px;font:12px/1.5 var(--rv-font);box-shadow:0 3px 14px #0002}.rv-staging-badge a{color:#d3ceff;margin-left:8px;text-decoration:none}.rv-staging-badge a:hover{text-decoration:underline}
@media(max-width:1050px){.rv-sitebar-inner{gap:16px;flex-wrap:wrap}.rv-sitebar-inner>nav{order:3;flex-basis:100%;justify-content:flex-start;overflow:auto}.rv-header-tools{margin-left:auto}.rv-lab .hero{padding:30px}.rv-lab .metrics{padding:22px}.rv-lab .metrics>div{padding:0 12px}.rv-lab .metrics>div:first-child{padding-left:0}}
@media(max-width:600px){.rv-sitebar-inner{padding:14px 18px;gap:14px}.rv-brand{font-size:19px}.rv-brand small{font-size:7px}.rv-brand-mark{width:36px;height:36px}.rv-preview{display:none}.rv-sitebar-inner>nav{gap:0}.rv-sitebar-inner>nav a{padding:9px 11px;font-size:12px}.rv-lab .lab-nav{justify-content:flex-start;padding:8px 12px}.rv-lab main{padding:24px 18px}.rv-lab .hero{padding:26px 22px}.rv-lab .hero h1{font-size:34px}.rv-lab .hero-mark{display:none}.rv-lab .metrics>div{padding:0}.rv-lab .metrics span{font-size:11px}.rv-staging-badge{bottom:7px;right:7px;font-size:10px;padding:7px 10px}.rv-lab .card-body>p{min-height:0}}
@media(prefers-reduced-motion:reduce){.rv-sitebar *,.rv-lab *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
body.rv-lab{min-height:100vh}.rv-lab .spec-line{color:var(--rv-muted)}

.rv-account-link{font-size:12px;font-weight:600;color:var(--rv-primary);white-space:nowrap}.rv-lab [readonly]{background:var(--rv-soft)}.rv-lab :disabled{opacity:.65}
@media(max-width:600px){.rv-header-tools{width:100%;justify-content:space-between}.rv-sitebar-inner>nav{order:2}.rv-header-tools{order:3}}
/* One brand, one account control; publication utilities share the same header. */
.rv-sitebar-inner{gap:20px;min-height:76px;padding-top:14px;padding-bottom:14px}.rv-sitebar-inner>nav a{padding:9px 10px}.rv-brand .rv-preview{display:inline-block;font-size:9px;letter-spacing:.4px;margin-left:8px;vertical-align:middle;padding:3px 5px;border:1px solid var(--rv-line);border-radius:4px;color:var(--rv-muted)}.rv-header-tools{gap:12px}.rv-account-link{font-size:13px;text-decoration:none;padding:9px 12px;border:1px solid var(--rv-line);border-radius:7px}.rv-account-link:hover,.rv-account-link[aria-current]{background:var(--rv-soft)}.rv-display{position:relative}.rv-display summary{cursor:pointer;font-size:12px;padding:10px 0;color:var(--rv-muted);white-space:nowrap}.rv-display-panel{position:absolute;right:0;top:100%;width:210px;background:var(--rv-surface);border:1px solid var(--rv-line);border-radius:10px;padding:16px;box-shadow:0 8px 25px #0002;display:grid;gap:14px;z-index:20}.rv-display-panel label{display:grid;gap:7px;font-size:12px;color:var(--rv-muted)}.rv-display-panel select{width:100%;background:var(--rv-surface);color:var(--rv-ink);border:1px solid var(--rv-line);border-radius:6px;padding:8px;font:12px var(--rv-font)}.rv-header-tools .gh-search-toggle{color:var(--rv-ink);background:transparent;padding:8px;min-width:36px;border-radius:7px}.rv-header-tools .gh-search-toggle svg{width:20px;height:20px}.rv-publication .gh-navigation{height:auto!important;min-height:0}.rv-publication .gh-keywords-inner{display:flex;align-items:center;gap:16px;padding:0 24px;max-width:1280px;margin:auto}.rv-publication .gh-keywords-scroll{flex:1;min-width:0}.rv-publication .gh-keywords-bar{height:44px}.rv-topics-button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--rv-ink);font:600 12px var(--rv-font);white-space:nowrap;padding:10px 0;cursor:pointer}.rv-topics-button:hover{color:var(--rv-primary)}.rv-publication .gh-nav-menu{top:0;height:100dvh;width:min(420px,90vw);z-index:1200;background:var(--rv-surface);visibility:hidden}.rv-publication .gh-nav-menu.is-open{visibility:visible}.rv-publication .gh-nav-overlay{z-index:1100}.rv-publication #rv-close-topics{margin:16px 24px}.rv-sitebar summary:focus-visible,.rv-topics-button:focus-visible{outline:3px solid var(--rv-primary);outline-offset:3px}
@media(max-width:1050px){.rv-sitebar-inner{gap:10px 20px}.rv-sitebar-inner>nav{order:3;flex-basis:100%}.rv-header-tools{width:auto;order:2;margin-left:auto}.rv-sitebar-inner{min-height:0}}
@media(max-width:600px){.rv-sitebar-inner{padding:12px 16px}.rv-brand{font-size:17px;gap:8px}.rv-brand-mark{width:32px;height:32px;font-size:14px}.rv-brand small{font-size:6px;letter-spacing:.8px}.rv-brand .rv-preview{font-size:8px;margin-left:5px}.rv-header-tools{width:100%;gap:4px;flex-wrap:nowrap;justify-content:space-between}.rv-account-link{font-size:12px;padding:8px}.rv-display summary{font-size:11px}.rv-sitebar-inner>nav{justify-content:space-between}.rv-sitebar-inner>nav a{padding:8px 9px}.rv-publication .gh-keywords-inner{padding:0 16px;gap:12px}.rv-topics-button{font-size:11px}.rv-display-panel{width:190px}}
.rv-publication .gh-navigation{height:44px!important;min-height:44px;flex:0 0 44px}.rv-display-panel select{background-image:none!important;appearance:auto}.rv-publication .gh-keywords-container{width:max-content;min-width:100%}.rv-publication .gh-keyword-button{width:auto;flex:none}

/* Direct theme control: one compact, accessible header action. */
.rv-theme-control{position:relative;display:inline-flex;flex-direction:row;flex-shrink:0;align-items:center;gap:7px;height:36px;padding:0 10px;border:1px solid var(--rv-line);border-radius:18px;background:var(--rv-soft);color:var(--rv-muted);transition:border-color .15s,box-shadow .15s}
.rv-theme-control>svg{width:16px;height:16px;flex:none;pointer-events:none;color:var(--rv-primary)}
.rv-theme-control select{appearance:none!important;background:transparent!important;border:0!important;border-radius:0;color:var(--rv-ink);font:500 12px/1.4 var(--rv-font);padding:8px 17px 8px 0;margin:0;min-width:64px;width:auto;cursor:pointer;box-shadow:none;outline:none}
.rv-theme-control select option{background:var(--rv-surface);color:var(--rv-ink)}
.rv-theme-control>.rv-theme-chevron{position:absolute;right:9px;width:12px;height:12px;color:var(--rv-muted)}
.rv-theme-control:hover{border-color:var(--rv-primary)}
.rv-theme-control:focus-within{border-color:var(--rv-primary);box-shadow:0 0 0 3px var(--rv-soft);outline:2px solid var(--rv-primary);outline-offset:2px}
@media(max-width:600px){.rv-theme-control{padding-left:8px;padding-right:8px;gap:5px}.rv-theme-control select{font-size:11px;min-width:60px}}
/* The shared search control is an anchor so it also works without Ghost JS. */
.rv-header-tools .gh-search-toggle{display:inline-flex;align-items:center;justify-content:center;border:0;line-height:1;text-decoration:none;flex-shrink:0}
.rv-sitebar .rv-theme-control{font-weight:400}

/* Language links are utilities, separate from the full-width section navigation. */
.rv-sitebar .rv-language{flex:none}
.rv-language a{color:var(--rv-muted);font-size:13px;font-weight:600;white-space:nowrap;padding:9px 10px;border-radius:7px;text-decoration:none}
.rv-language a:hover,.rv-language a[aria-current]{color:var(--rv-primary);background:var(--rv-soft)}
@media(max-width:600px){
    .rv-language a{font-size:12px;padding:8px 4px}
    .rv-header-tools .gh-search-toggle{min-width:32px;padding:6px}
    .rv-account-link{padding:8px 6px}
}
@media(max-width:359px){
    .rv-language a{padding-inline:2px}
    .rv-account-link{padding-inline:4px}
    .rv-theme-control>svg:first-child{display:none}
}

/* A fixed stripe follows page loading even when navigation starts below the header. */
.rv-sitebar::before{content:"";position:fixed;inset:0 0 auto;height:3px;background:var(--rv-primary);z-index:1001;pointer-events:none;opacity:0;transform:scaleX(var(--rv-page-progress,0));transform-origin:left;transition:transform .2s ease-out,opacity .18s ease-out}
html[data-rv-page-loading] .rv-sitebar::before{opacity:1}
html[data-rv-page-loading="starting"] .rv-sitebar::before{transition:none}
@media(prefers-reduced-motion:reduce){
    .rv-sitebar::before{transition:none}
    html[data-rv-page-loading="starting"] .rv-sitebar::before,html[data-rv-page-loading="loading"] .rv-sitebar::before{transform:scaleX(.35)}
}
