Rebrand MarketingShell logo, tagline, footer, and social links

This commit is contained in:
FamiliarOS Builder 2026-06-17 05:52:56 +00:00
parent e263cd62e6
commit 0cb3bcace1
34 changed files with 20 additions and 5916 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{j as e}from"./index-D-wwVRoV.js";import{b as t}from"./MarketingShell-BgYQ8Cfp.js";import{L as s}from"./LegalPageLayout-B12TU0j9.js";function i(){return e.jsxs(s,{badge:"Legal Notice",title:"Legal Notice / Impressum",description:`Information pursuant to § 5 Digitale-Dienste-Gesetz (DDG). This page provides provider identification for ${t.brandName}.`,panelTitle:"Contact / Kontakt",panelItems:[t.contact.email,t.contact.phoneDisplay,`${t.address.street}, ${t.address.postalCodeCity}`],children:[e.jsxs("article",{className:"rounded-2xl border border-white/15 bg-white/5 p-6 backdrop-blur-2xl md:p-8",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Legal Notice / Imprint (English)"}),e.jsx("p",{className:"mt-2 text-sm text-[#8A9099]",children:"Note: This is a template based on the provided data and not individual legal advice."}),e.jsxs("div",{className:"mt-5 space-y-4 text-sm text-[#8A9099]",children:[e.jsx("p",{children:"Information pursuant to § 5 Digitale-Dienste-Gesetz (DDG)"}),e.jsxs("p",{children:[t.brandName,e.jsx("br",{}),t.address.street,e.jsx("br",{}),t.address.postalCodeCity,e.jsx("br",{}),t.address.countryEN]}),e.jsxs("p",{children:["Represented by the Managing Director:",e.jsx("br",{}),t.management.managingDirector]}),e.jsxs("p",{children:["VAT identification number in accordance with § 27a UStG:",e.jsx("br",{}),t.tax.vatId]}),e.jsxs("p",{children:["Contact:",e.jsx("br",{}),"Phone: ",e.jsx("a",{href:t.contact.phoneHref,children:t.contact.phoneDisplay}),e.jsx("br",{}),"E-mail: ",e.jsx("a",{href:t.contact.emailHref,children:t.contact.email})]}),e.jsxs("p",{children:["Commercial register:",e.jsx("br",{}),"No entry in the commercial register.",e.jsx("br",{}),"Register court: Not applicable."]}),e.jsxs("p",{children:["Competent supervisory authority:",e.jsx("br",{}),"Not applicable."]}),e.jsxs("p",{children:["Person responsible for content pursuant to § 18 para. 2 Medienstaatsvertrag (MStV):",e.jsx("br",{}),t.management.managingDirector," (address and contact see above)."]})]})]}),e.jsxs("article",{className:"rounded-2xl border border-white/15 bg-white/5 p-6 backdrop-blur-2xl md:p-8",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Impressum (Deutsch)"}),e.jsx("p",{className:"mt-2 text-sm text-[#8A9099]",children:"Hinweis: Dies ist ein Mustertext auf Basis der bereitgestellten Daten und keine individuelle Rechtsberatung."}),e.jsxs("div",{className:"mt-5 space-y-4 text-sm text-[#8A9099]",children:[e.jsx("p",{children:"Angaben gemäß § 5 Digitale-Dienste-Gesetz (DDG)"}),e.jsxs("p",{children:[t.brandName,e.jsx("br",{}),t.address.street,e.jsx("br",{}),t.address.postalCodeCity,e.jsx("br",{}),t.address.countryDE]}),e.jsxs("p",{children:["Vertreten durch den Geschäftsführer:",e.jsx("br",{}),t.management.managingDirector]}),e.jsxs("p",{children:["Umsatzsteuer-Identifikationsnummer gemäß § 27a UStG:",e.jsx("br",{}),t.tax.vatId]}),e.jsxs("p",{children:["Kontakt:",e.jsx("br",{}),"Telefon: ",e.jsx("a",{href:t.contact.phoneHref,children:t.contact.phoneDisplay}),e.jsx("br",{}),"E-Mail: ",e.jsx("a",{href:t.contact.emailHref,children:t.contact.email})]}),e.jsxs("p",{children:["Handelsregister:",e.jsx("br",{}),"Kein Eintrag im Handelsregister.",e.jsx("br",{}),"Registergericht: Nicht anwendbar."]}),e.jsxs("p",{children:["Zuständige Aufsichtsbehörde:",e.jsx("br",{}),"Nicht anwendbar."]}),e.jsxs("p",{children:["Inhaltlich Verantwortlicher gemäß § 18 Abs. 2 Medienstaatsvertrag (MStV):",e.jsx("br",{}),t.management.managingDirector," (Anschrift und Kontakt siehe oben)."]})]})]})]})}export{i as ImpressumPage};

View file

@ -1 +0,0 @@
import{j as e}from"./index-D-wwVRoV.js";import{M as o,b as s}from"./MarketingShell-BgYQ8Cfp.js";function m({badge:l,title:r,description:a,panelTitle:d,panelItems:i,children:x}){return e.jsxs(o,{children:[e.jsx("section",{className:"mx-auto max-w-7xl px-6 py-14 lg:px-8",children:e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[1.4fr_0.6fr]",children:[e.jsxs("div",{className:"rounded-2xl border border-white/15 bg-white/5 p-6 backdrop-blur-2xl md:p-8",children:[e.jsx("span",{className:"inline-flex rounded-full border border-[#D8CBAF]/45 bg-[#D8CBAF]/10 px-3 py-1 text-xs uppercase tracking-[0.2em] text-[#D8CBAF]",children:l}),e.jsx("h1",{className:"mt-4 text-3xl font-semibold md:text-4xl",children:r}),e.jsx("p",{className:"mt-3 text-sm text-[#8A9099] md:text-base",children:a})]}),e.jsxs("div",{className:"rounded-2xl border border-white/15 bg-white/5 p-6 backdrop-blur-2xl",children:[e.jsx("h2",{className:"text-lg font-semibold",children:d}),e.jsx("ul",{className:"mt-3 space-y-2 text-sm text-[#8A9099]",children:i.map(t=>e.jsx("li",{children:t},t))}),e.jsxs("div",{className:"mt-5 border-t border-white/10 pt-4 text-sm text-[#8A9099]",children:[e.jsx("p",{className:"text-[#F4F6F8] font-medium",children:"Contact"}),e.jsxs("p",{className:"mt-2",children:[s.contact.email,e.jsx("br",{}),s.address.street,e.jsx("br",{}),`${s.address.postalCodeCity}, ${s.address.countryEN}`]})]})]})]})}),e.jsxs("section",{className:"mx-auto max-w-7xl space-y-8 px-6 pb-8 lg:px-8",children:[x,e.jsxs("article",{className:"rounded-2xl border border-white/15 bg-white/5 p-6 backdrop-blur-2xl md:p-8",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:"Minion Pro License Notice"}),e.jsx("p",{className:"mt-3 text-sm text-[#8A9099]",children:"This publication uses the Minion Pro font family: Regular, Italic, Semi-Bold, Bold, and Bold Italic, lawfully licensed under the Adobe Desktop EULA with extended rights for use in Electronic Documents and eBooks."})]})]})]})}export{m as L};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
import{j as e}from"./index-D-wwVRoV.js";function c({heading:i,subheading:x,sections:d,footer:a}){return e.jsxs("article",{className:"rounded-2xl border border-white/15 bg-white/5 p-6 backdrop-blur-2xl md:p-8",children:[e.jsx("h2",{className:"text-2xl font-semibold",children:i}),e.jsx("div",{className:"mt-2 text-sm text-[#8A9099]",children:x}),e.jsx("div",{className:"mt-5 space-y-6 text-sm text-[#8A9099]",children:d.map(l=>{var r;return e.jsxs("section",{className:"space-y-3",children:[e.jsx("h3",{className:"text-base font-medium text-[#F4F6F8]",children:l.title}),(r=l.paragraphs)==null?void 0:r.map((t,s)=>e.jsx("p",{children:t},`${l.title}-paragraph-${s}`)),l.bullets&&l.bullets.length>0?e.jsx("ul",{className:"list-disc space-y-1 pl-5",children:l.bullets.map((t,s)=>e.jsx("li",{children:t},`${l.title}-bullet-${s}`))}):null]},l.title)})}),a?e.jsx("div",{className:"mt-6 border-t border-white/10 pt-4 text-sm text-[#8A9099]",children:a}):null]})}export{c as P};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,6 +0,0 @@
import{c as r}from"./MarketingShell-BgYQ8Cfp.js";/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const o=r("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);export{o as A};

View file

@ -1,6 +0,0 @@
import{c as t}from"./MarketingShell-BgYQ8Cfp.js";/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const h=t("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);export{h as B};

View file

@ -1,6 +0,0 @@
import{c as e}from"./MarketingShell-BgYQ8Cfp.js";/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const t=e("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);export{t as F};

View file

@ -1,6 +0,0 @@
import{c as a}from"./MarketingShell-BgYQ8Cfp.js";/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const e=a("GraduationCap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]);export{e as G};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,16 +0,0 @@
import{c as e}from"./MarketingShell-BgYQ8Cfp.js";/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const y=e("EyeOff",[["path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24",key:"1jxqfv"}],["path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68",key:"9wicm4"}],["path",{d:"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61",key:"1jreej"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]);/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const a=e("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const r=e("KeyRound",[["path",{d:"M2 18v3c0 .6.4 1 1 1h4v-3h3v-3h2l1.4-1.4a6.5 6.5 0 1 0-4-4Z",key:"167ctg"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);export{y as E,r as K,a};

View file

@ -1 +0,0 @@
import{z as i}from"./index-D-wwVRoV.js";const e={success:(s,o=3e3)=>i.success(s,{duration:o}),error:(s,o=4e3)=>i.error(s,{duration:o}),loading:s=>i.loading(s),info:(s,o=3e3)=>i(s,{duration:o,icon:""}),dismiss:s=>i.dismiss(s),promise:(s,o)=>i.promise(s,o),custom:(s,o)=>i(s,{icon:o})};export{e as n};

View file

@ -1,11 +0,0 @@
import{c as e}from"./MarketingShell-BgYQ8Cfp.js";/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const c=e("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const h=e("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);export{c as L,h as S};

View file

@ -1,6 +0,0 @@
import{c as e}from"./MarketingShell-BgYQ8Cfp.js";/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const c=e("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);export{c as U};

View file

@ -1,31 +0,0 @@
import{c as e}from"./MarketingShell-BgYQ8Cfp.js";/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const t=e("BookOpen",[["path",{d:"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z",key:"vv98re"}],["path",{d:"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z",key:"1cyq3y"}]]);/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const y=e("Cpu",[["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"9",y:"9",width:"6",height:"6",key:"o3kz5p"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const c=e("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const k=e("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const a=e("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
* @license lucide-react v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const r=e("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);export{t as B,y as C,c as G,k as N,a as S,r as W};

4
dist/index.html vendored
View file

@ -15,8 +15,8 @@
<title>ScriptoriumAI — AI-Native Research & Scientific Publication Suite</title>
<!-- Socket.IO v0.9 - Load from CDN to avoid bundling issues -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.17/socket.io.min.js"></script>
<script type="module" crossorigin src="/assets/index-D-wwVRoV.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BA37C8RC.css">
<script type="module" crossorigin src="/assets/index-DAzW-KRt.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BTW0bEvl.css">
</head>
<body>
<div id="root"></div>

View file

@ -1,6 +1,6 @@
import { useMemo, useRef, useState, type ReactNode } from 'react'
import { Link, useLocation } from 'react-router-dom'
import { ChevronDown, Instagram, Linkedin, Menu, Moon, Sun, X, Youtube } from 'lucide-react'
import { Bot, ChevronDown, Instagram, Linkedin, Menu, Moon, Sun, X, Youtube } from 'lucide-react'
import { ItshoverExternalLinkIcon } from '../icons/itshover-subset'
import { usePlatformAuth } from '../../auth/platform-auth'
import { brandConfig } from './brand-config'
@ -75,9 +75,9 @@ export function MarketingShell({ children, showFooter = true }: MarketingShellPr
const headerInnerClassName = isHomePage
? `mx-auto flex w-full max-w-7xl items-center gap-3 pl-0 pr-4 md:gap-4 md:pr-5 lg:gap-6 lg:pr-8 xl:gap-8 ${headerFrameClassName}`
: `mx-auto flex w-full max-w-7xl items-center justify-between px-5 lg:px-8 ${headerFrameClassName}`
const logoImageClassName = isHomePage
? `block h-[9.9rem] w-auto max-w-[14.9rem] shrink-0 object-contain md:h-[10.9rem] md:max-w-[16.4rem] lg:h-[12rem] lg:max-w-[18rem] ${logoClassName}`
: `block h-[4.95rem] w-auto max-w-[7.45rem] shrink-0 object-contain md:h-[5.45rem] md:max-w-[8.2rem] lg:h-[6rem] lg:max-w-[9rem] ${logoClassName}`
const logoMarkClassName = isHomePage
? `flex shrink-0 items-center justify-center rounded-2xl border bg-gradient-to-br from-[#D8CBAF] to-[#A6926E] text-[#181A1E] shadow-[0_0_32px_rgba(216,203,175,0.35)] ${logoClassName} h-[7.5rem] w-[7.5rem] md:h-[8.5rem] md:w-[8.5rem] lg:h-[10rem] lg:w-[10rem]`
: `flex shrink-0 items-center justify-center rounded-xl border bg-gradient-to-br from-[#D8CBAF] to-[#A6926E] text-[#181A1E] shadow-[0_0_16px_rgba(216,203,175,0.25)] ${logoClassName} h-[3.5rem] w-[3.5rem] md:h-[4rem] md:w-[4rem] lg:h-[4.5rem] lg:w-[4.5rem]`
const logoTextClassName = isHomePage
? 'hidden min-w-0 flex-col lg:flex lg:max-w-[23rem]'
: 'hidden min-w-0 flex-col lg:flex'
@ -158,11 +158,9 @@ export function MarketingShell({ children, showFooter = true }: MarketingShellPr
{isHomePage ? (
<div className={homeBrandClusterClassName}>
<Link to="/" className={homeLogoLinkClassName}>
<img
src="/branding/FamiliarOS_logo.png"
alt={`${brandConfig.brandName} logo`}
className={logoImageClassName}
/>
<div className={logoMarkClassName} aria-label={`${brandConfig.brandName} logo`}>
<Bot size={isHomePage ? 72 : 32} strokeWidth={1.5} />
</div>
</Link>
<Link to="/" className="hidden min-w-0 lg:flex">
{brandWordmark}
@ -170,11 +168,9 @@ export function MarketingShell({ children, showFooter = true }: MarketingShellPr
</div>
) : (
<Link to="/" className={homeLogoLinkClassName}>
<img
src="/branding/FamiliarOS_logo.png"
alt={`${brandConfig.brandName} logo`}
className={logoImageClassName}
/>
<div className={logoMarkClassName} aria-label={`${brandConfig.brandName} logo`}>
<Bot size={isHomePage ? 72 : 32} strokeWidth={1.5} />
</div>
{brandWordmark}
</Link>
)}
@ -361,28 +357,28 @@ export function MarketingShell({ children, showFooter = true }: MarketingShellPr
<div className="space-y-3">
<p className="text-xl font-semibold tracking-tight" style={{ fontFamily: 'var(--font-display)' }}>{brandConfig.brandName}</p>
<p className={`text-sm leading-relaxed ${mutedClassName}`}>
{brandConfig.tagline}. The only platform combining native LaTeX compile orchestration, real MuPDF rendering, bidirectional SyncTeX, cross-document comparison, and structured AI Memory in one unified architecture.
A local-first AI companion with memory, voice, knowledge, and tools. Create your Familiar, keep your data on your machine, and let it remember, speak, and act across your system.
</p>
<div className="flex items-center gap-3 pt-2">
<a href="https://x.com/scriptoriumai" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="X / Twitter">
<a href="https://x.com/familiaros" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="X / Twitter">
<X size={16} />
</a>
<a href="https://linkedin.com/company/scriptoriumai" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="LinkedIn">
<a href="https://linkedin.com/company/familiaros" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="LinkedIn">
<Linkedin size={16} />
</a>
<a href="https://youtube.com/@scriptoriumai" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="YouTube">
<a href="https://youtube.com/@familiaros" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="YouTube">
<Youtube size={16} />
</a>
<a href="https://reddit.com/r/scriptoriumai" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="Reddit">
<a href="https://reddit.com/r/familiaros" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="Reddit">
{/* Reddit icon — inline SVG */}
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
<path d="M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.968 0 1.754.786 1.754 1.754 0 .716-.435 1.333-1.01 1.614a3.111 3.111 0 0 1 .042.52c0 2.694-3.13 4.87-7.004 4.87-3.874 0-7.004-2.176-7.004-4.87 0-.183.015-.366.043-.534A1.748 1.748 0 0 1 4.028 12c0-.968.786-1.754 1.754-1.754.463 0 .898.196 1.207.49 1.207-.883 2.878-1.43 4.744-1.487l.885-4.182a.342.342 0 0 1 .14-.197.35.35 0 0 1 .238-.042l2.906.617a1.214 1.214 0 0 1 1.108-.701zM9.25 12C8.561 12 8 12.562 8 13.25c0 .687.561 1.248 1.25 1.248.687 0 1.248-.561 1.248-1.249 0-.688-.561-1.249-1.249-1.249zm5.5 0c-.687 0-1.248.561-1.248 1.25 0 .687.561 1.248 1.249 1.248.688 0 1.249-.561 1.249-1.249 0-.687-.562-1.249-1.25-1.249zm-5.466 3.99a.327.327 0 0 0-.231.094.33.33 0 0 0 0 .463c.842.842 2.484.913 2.961.913.477 0 2.105-.056 2.961-.913a.361.361 0 0 0 .029-.463.33.33 0 0 0-.464 0c-.547.533-1.684.73-2.512.73-.828 0-1.979-.196-2.512-.73a.326.326 0 0 0-.232-.095z" />
</svg>
</a>
<a href="https://instagram.com/scriptoriumai" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="Instagram">
<a href="https://instagram.com/familiaros" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="Instagram">
<Instagram size={16} />
</a>
<a href="https://tiktok.com/@scriptoriumai" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="TikTok">
<a href="https://tiktok.com/@familiaros" target="_blank" rel="noopener noreferrer" className={mutedClassName} aria-label="TikTok">
{/* TikTok icon — inline SVG */}
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
<path d="M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-2.88 2.5 2.89 2.89 0 0 1-2.89-2.89 2.89 2.89 0 0 1 2.89-2.89c.28 0 .54.04.79.1V9.01a6.33 6.33 0 0 0-.79-.05 6.34 6.34 0 0 0-6.34 6.34 6.34 6.34 0 0 0 6.34 6.34 6.34 6.34 0 0 0 6.33-6.34V8.69a8.18 8.18 0 0 0 4.78 1.52V6.76a4.85 4.85 0 0 1-1.01-.07z" />

View file

@ -1,6 +1,6 @@
export const brandConfig = {
brandName: 'FamiliarOS',
legalName: 'Boring Dystopia Development',
legalName: 'FamiliarOS',
domain: 'familiar-os.com',
tagline: 'Remembers. Speaks. Acts.',
contact: {