Compare commits
No commits in common. "main" and "feat/website-upgrades" have entirely different histories.
main
...
feat/websi
|
@ -1,4 +1,4 @@
|
||||||
<section class="mid-tall-section carousel">
|
<section class="mid-tall-section">
|
||||||
{% unless include.hide_title == 'true' %}
|
{% unless include.hide_title == 'true' %}
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<div class="text-well center">
|
<div class="text-well center">
|
||||||
|
@ -11,8 +11,6 @@
|
||||||
<div class="logo-slider" id="logoSlider">
|
<div class="logo-slider" id="logoSlider">
|
||||||
<img src="assets/base/companies/coinbase-white.svg" alt="Coinbase">
|
<img src="assets/base/companies/coinbase-white.svg" alt="Coinbase">
|
||||||
<img src="assets/base/companies/bitgo-logo-white.svg" alt="BitGo">
|
<img src="assets/base/companies/bitgo-logo-white.svg" alt="BitGo">
|
||||||
<img style="height: 70px" src="assets/base/companies/etherfi_logo-white.svg" alt="Ether Fi">
|
|
||||||
<img style="height: 70px" src="assets/base/companies/optimism-white.svg" alt="Optimism">
|
|
||||||
<img style="filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(288deg) brightness(102%) contrast(102%);"
|
<img style="filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(288deg) brightness(102%) contrast(102%);"
|
||||||
src="assets/base/companies/bishop-fox-dark.png" alt="Bishop Fox">
|
src="assets/base/companies/bishop-fox-dark.png" alt="Bishop Fox">
|
||||||
<img style="filter: invert(100)" src="assets/base/companies/turnkey-black.svg" alt="Turnkey">
|
<img style="filter: invert(100)" src="assets/base/companies/turnkey-black.svg" alt="Turnkey">
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
<div class="divider">
|
|
||||||
<br>
|
|
||||||
</div>
|
|
|
@ -1,43 +1,16 @@
|
||||||
<footer>
|
<footer>
|
||||||
<div class="footer container">
|
<div class="menu footer-container">
|
||||||
<div class="footer-top">
|
<div style="font-size: 1rem">
|
||||||
<div class="footer-logo">
|
{{ site.footer }}
|
||||||
<a href="/">
|
</div>
|
||||||
<img src="/assets/base/distrust-text-white.svg" alt="Distrust logo" />
|
<div class="footer-link">
|
||||||
|
{% include nav-links.html %}
|
||||||
|
<div>
|
||||||
|
<a href="/feed.xml" style="vertical-align: middle;">
|
||||||
|
<img style="filter: grayscale(100%); width: 22px; vertical-align: sub" src="/assets/base/rss.png" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<p class="footer-description footer-description-desktop">
|
|
||||||
Distrust is a research and consulting company securing mission-critical systems with verifiable open source infrastructure.
|
|
||||||
</p>
|
|
||||||
<p class="footer-description footer-description-mobile">
|
|
||||||
Distrust secures mission-critical systems with verifiable open source infrastructure.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="footer-divider">
|
|
||||||
</div>
|
|
||||||
<div class="footer-links">
|
|
||||||
<div class="footer-column">
|
|
||||||
<a href="/services.html">Services</a>
|
|
||||||
<a href="/software.html">Software</a>
|
|
||||||
<a href="/threatmodel.html">Threat model</a>
|
|
||||||
</div>
|
|
||||||
<div class="footer-column">
|
|
||||||
<a href="/company.html">Company</a>
|
|
||||||
<a href="/blog.html">Blog</a>
|
|
||||||
<a href="/contact.html">Contact</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script type="text/javascript" src="/assets/js/main.js"></script>
|
||||||
|
</footer>
|
||||||
<div class="footer-bottom container">
|
|
||||||
<div class="footer-footer"> {{site.footer}} </div>
|
|
||||||
<div class="footer-social">
|
|
||||||
<a href="/feed.xml" target="_blank" rel="noopener noreferrer" aria-label="RSS">
|
|
||||||
<img src="/assets/base/rss-bw-tr.png" alt="RSS" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script src="/assets/js/main.js"></script>
|
|
||||||
</footer>
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
{%- endfor -%}
|
{%- endfor -%}
|
||||||
<li class="show">
|
<li class="show">
|
||||||
<a href="/contact.html" class="mega-inverted button work-button">Work with us</a>
|
<a href="/contact.html" class="mega-inverted button">Work with us</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
<section style="margin-bottom: 0px;" class="flex-container" id="ready-to-use">
|
|
||||||
<div class="flex-container-inner live-tools">
|
|
||||||
<h2 class="hero-header gradient-text center">ready to use</h2>
|
|
||||||
<p class="hero-p center live-tools" style="margin-top: 20px; max-width: 700px">Production-ready, verifiable open source tools.<p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section style="margin-top: 40px;" class="live-tools-cards">
|
|
||||||
<div class="flex-container">
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<div class="text-well card">
|
|
||||||
<div class="live-tool-name">
|
|
||||||
StageX
|
|
||||||
</div>
|
|
||||||
<p>Security-first Linux distribution for reducing supply chain risks. Minimal, bootstrapped, hermetic, deterministic, reproducible, and multi-party signed.</p>
|
|
||||||
<a href="https://codeberg.org/stagex/stagex" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
|
||||||
View git repository
|
|
||||||
<span class="arrow">→</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<div class="text-well card">
|
|
||||||
<div class="live-tool-name">
|
|
||||||
AirgapOS
|
|
||||||
</div>
|
|
||||||
<p>Immutable Linux distribution for offline secret management. Diskless, reproducible, and hardened for air-gapped environments.</p>
|
|
||||||
<a href="https://git.distrust.co/public/airgap" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
|
||||||
View git repository
|
|
||||||
<span class="arrow">→</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex-container">
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<div class="text-well card">
|
|
||||||
<div class="live-tool-name">
|
|
||||||
Keyfork
|
|
||||||
</div>
|
|
||||||
<p>Toolchain for generating and managing a wide range of cryptographic keys offline and on smartcards from a shared BIP39 mnemonic phrase.</p>
|
|
||||||
<a href="https://git.distrust.co/public/keyfork" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
|
||||||
View git repository
|
|
||||||
<span class="arrow">→</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<div class="text-well card">
|
|
||||||
<div class="live-tool-name">
|
|
||||||
Icepick
|
|
||||||
</div>
|
|
||||||
<p>Framework for rapidly developing applications to perform transfer and staking cryptocurrency operations.</p>
|
|
||||||
<a href="https://git.distrust.co/public/icepick" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
|
||||||
View git repository
|
|
||||||
<span class="arrow">→</span>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
|
@ -11,8 +11,7 @@
|
||||||
<div class="img-container">
|
<div class="img-container">
|
||||||
<img src="assets/base/companies/turnkey-black.svg" style="filter: invert(100)">
|
<img src="assets/base/companies/turnkey-black.svg" style="filter: invert(100)">
|
||||||
</div>
|
</div>
|
||||||
<p class="text-description-desktop">Turnkey secures billions of dollars in digital assets and relies on Distrust tools to address fundamental risks in their technology stack.</p>
|
<p>Distrust team helped build Turnkey, which leverages StageX, and AirgapOS to improve the security of their systems which help manage billions of dollars worth of value.</p>
|
||||||
<p class="text-description-mobile">Turnkey secures billions of dollars in digital assets and relies on Distrust tools to systematically address fundamental risks in their technology stack.</p>
|
|
||||||
<a href="https://whitepaper.turnkey.com/foundations#abstract" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
<a href="https://whitepaper.turnkey.com/foundations#abstract" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
||||||
Learn more
|
Learn more
|
||||||
<span class="arrow">→</span>
|
<span class="arrow">→</span>
|
||||||
|
@ -24,7 +23,7 @@
|
||||||
<div class="img-container">
|
<div class="img-container">
|
||||||
<img src="assets/base/companies/mysten-labs-white.svg" style="width: 250px">
|
<img src="assets/base/companies/mysten-labs-white.svg" style="width: 250px">
|
||||||
</div>
|
</div>
|
||||||
<p>The creators of the SUI blockchain, Mysten Labs, eliminate single points of failure in their systems with the help of Distrust tooling and advice.</p>
|
<p>The creators of the SUI cryptocurrency partner with Distrust for advice and use StageX to build their nodes in a deterministic manner in order to eliminate single points of failure.</p>
|
||||||
<a href="https://github.com/MystenLabs/sui/blob/main/docker/sui-node-deterministic/Dockerfile" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
<a href="https://github.com/MystenLabs/sui/blob/main/docker/sui-node-deterministic/Dockerfile" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
||||||
Learn more
|
Learn more
|
||||||
<span class="arrow">→</span>
|
<span class="arrow">→</span>
|
||||||
|
@ -36,7 +35,7 @@
|
||||||
<div class="img-container">
|
<div class="img-container">
|
||||||
<img src="assets/base/companies/sidero-labs-white.png" style="filter: grayscale(); width: 150px">
|
<img src="assets/base/companies/sidero-labs-white.png" style="filter: grayscale(); width: 150px">
|
||||||
</div>
|
</div>
|
||||||
<p>Sidero Labs' Talos Linux, a widely used Kubernetes distribution, uses Distrust's StageX and services, to bolster their supply chain security.</p>
|
<p>Sidero labs has relied on Distrust for consulting and is using StageX to build their widely used Talos Linux distribution which delivers best in-class kubernetes features.</p>
|
||||||
<a href="https://github.com/siderolabs/talos/releases/tag/v1.10.0-alpha.2" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
<a href="https://github.com/siderolabs/talos/releases/tag/v1.10.0-alpha.2" rel=”noopener noreferrer” target="_blank" class="arrow-link">
|
||||||
Learn more
|
Learn more
|
||||||
<span class="arrow">→</span>
|
<span class="arrow">→</span>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<section>
|
<section>
|
||||||
<h4 class="gradient-text center" style="line-height: 50px; max-width: 600px; margin: auto;">can't afford a breach?</h4>
|
<h4 class="gradient-text center" style="line-height: 50px; max-width: 600px; margin: auto;">ready to take your security to the next level?</h4>
|
||||||
<p class="hero-p center cta" style="max-width: 650px; margin-top: 10px">Let's talk. We help teams where security is mission-critical.</p>
|
<p class="hero-p center" style="max-width: 600px; margin-top: 10px">We help organizations that can't afford to fail. If security is mission-critical for your company, let's talk.</p>
|
||||||
<div class="button-container center">
|
<div class="button-container center">
|
||||||
<a href="/contact.html" class="mega button center">Work with us</a>
|
<a href="/contact.html" class="mega button">Work with us</a>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
<section class="testimonials">
|
|
||||||
<div class="testimonial-card">
|
|
||||||
<img src="/assets/base/companies/ledn-white.svg" alt="Logoipsum" class="testimonial-logo" />
|
|
||||||
<blockquote class="testimonial-quote">
|
|
||||||
“Fusce vel dui. In turpis. Maecenas nec odio et ante tincidunt tempus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia”
|
|
||||||
</blockquote>
|
|
||||||
<div class="testimonial-author">
|
|
||||||
<img src="/path/to/avatar1.jpg" alt="Jess Newman" class="testimonial-avatar" />
|
|
||||||
<div>
|
|
||||||
<p class="testimonial-name">Jess Newman</p>
|
|
||||||
<p class="testimonial-title">CTO at Ledn</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="testimonial-card">
|
|
||||||
<img src="/assets/base/companies/mysten-labs-white.svg" alt="Logoipsum" class="testimonial-logo" />
|
|
||||||
<blockquote class="testimonial-quote">
|
|
||||||
“Fusce vel dui. In turpis. Maecenas nec odio et ante tincidunt tempus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia”
|
|
||||||
</blockquote>
|
|
||||||
<div class="testimonial-author">
|
|
||||||
<img src="/path/to/avatar1.jpg" alt="Jess Newman" class="testimonial-avatar" />
|
|
||||||
<div>
|
|
||||||
<p class="testimonial-name">Jess Newman</p>
|
|
||||||
<p class="testimonial-title">CTO at Mysten Labs</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<div class="testimonial-card">
|
|
||||||
<img src="/assets/base/companies/hashicorp-white.png" alt="Logoipsum" class="testimonial-logo" />
|
|
||||||
<blockquote class="testimonial-quote">
|
|
||||||
“Fusce vel dui. In turpis. Maecenas nec odio et ante tincidunt tempus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia”
|
|
||||||
</blockquote>
|
|
||||||
<div class="testimonial-author">
|
|
||||||
<img src="/path/to/avatar1.jpg" alt="Jess Newman" class="testimonial-avatar" />
|
|
||||||
<div>
|
|
||||||
<p class="testimonial-name">John Doe</p>
|
|
||||||
<p class="testimonial-title">CTO at Etherfi</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
|
@ -1,32 +0,0 @@
|
||||||
<div class="threatmodel-cta-columns">
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<h2 class="hero-header gradient-text">distrust<br>threat model</h2>
|
|
||||||
</div>
|
|
||||||
<div class="threatmodel-cta-right-column">
|
|
||||||
<div class="button-container" style="font-size: 1.5rem">
|
|
||||||
<a href="/threatmodel.html" class="mega button">Explore threat model</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<section class="threatmodel-cta" style="margin-top: 50px !important">
|
|
||||||
<div class="flex-container properties">
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<p><b>Tiered threat levels</b></p>
|
|
||||||
<p>From script kiddies to nation states, our model adapts to what you’re protecting, and who you're protecting against.</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<p><b>Cut attack surface</b></p>
|
|
||||||
<p>Rather than focusing on specific vulnerabilities, our model helps eliminate entire classes of attacks by design.</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<p><b>Assume compromise</b></p>
|
|
||||||
<p>Design with the assumption that systems are already breached to build resilient defenses.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="threatmodel-cta-bottom">
|
|
||||||
<div class="button-container threatmodel-cta-bottom" style="font-size: clamp(1rem, 10vw, 1.3rem)">
|
|
||||||
<a href="/threatmodel.html" class="mega button">Explore threat model</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
|
@ -5,7 +5,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<ol class="values-container">
|
<ol class="values-container">
|
||||||
<li>decentralize trust</li>
|
<li>eliminate centralized trust</li>
|
||||||
<li>open source everything</li>
|
<li>open source everything</li>
|
||||||
<li>security beyond compliance</li>
|
<li>security beyond compliance</li>
|
||||||
<li>move thoughtfully & improve things</li>
|
<li>move thoughtfully & improve things</li>
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
<section class="why-choose-distrust" style="margin-bottom: 10rem">
|
|
||||||
<div class="flex-container">
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<h2 class="gradient-text">why choose Distrust</h2>
|
|
||||||
<p class="text-description-desktop">Benefit from our approach—a blend of proven methodologies and open source tooling we created, shaped by lessons from securing some of the world's highest-risk organizations.</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<div class="flex-container properties">
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height=="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers-icon lucide-layers"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"/><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"/><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"/></svg>
|
|
||||||
<p><b>Eliminate root causes</b></p>
|
|
||||||
<p>We don't just scan for bugs—we eliminate entire categories of bugs at the source using a first-principles methodology.</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big-icon lucide-circle-check-big"><path d="M21.801 10A10 10 0 1 1 17 3.335"/><path d="m9 11 3 3L22 4"/></svg>
|
|
||||||
<p><b>Verifiable</b></p>
|
|
||||||
<p>No guessing, no shortcuts. Every recommendation is backed by logic and rigor, not gut feel or just to check boxes.</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-alert-icon lucide-shield-alert"><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"/><path d="M12 8v4"/><path d="M12 16h.01"/></svg>
|
|
||||||
<p><b>Proven track record</b></p>
|
|
||||||
<p>Our security engineers have secured some of the highest risk infrastructure in the world (BitGo, Turnkey, Unit 410).</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-handshake-icon lucide-handshake"><path d="m11 17 2 2a1 1 0 1 0 3-3"/><path d="m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4"/><path d="m21 3 1 11h-2"/><path d="M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3"/><path d="M3 4h8"/></svg>
|
|
||||||
<p><b>Embedded collaborations</b></p>
|
|
||||||
<p>We act as true partners— our goal is to make our clients succeed and not depend on us.</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
|
@ -20,6 +20,16 @@
|
||||||
<br>
|
<br>
|
||||||
<h2>the world is built on blind trust. we are here to change that.</h2>
|
<h2>the world is built on blind trust. we are here to change that.</h2>
|
||||||
<br>
|
<br>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<p class="hero-p">Too often, security is an afterthought—based on dogma, checklists, and outdated best practices. Distrust was founded to redefine security by developing new methods to eliminate single points of failure, and building systems in a manner where they don't need to be blindly trusted.
|
||||||
|
</p>
|
||||||
|
<p class="hero-p">We don’t just advise on security. We build it. We open-source it. And we teach organizations how to think critically about risk—because security isn’t about checking boxes.
|
||||||
|
</p>
|
||||||
|
<a rel=”noopener noreferrer” href="/software.html" class="arrow-link">
|
||||||
|
Learn more
|
||||||
|
<span class="arrow">→</span>
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -57,7 +67,7 @@
|
||||||
<a rel=”noopener noreferrer” target="_blank" href="https://keyoxide.org/C92FE5A3FBD58DD3EC5AA26BB10116B8193F2DBD">Keyoxide</a>
|
<a rel=”noopener noreferrer” target="_blank" href="https://keyoxide.org/C92FE5A3FBD58DD3EC5AA26BB10116B8193F2DBD">Keyoxide</a>
|
||||||
<span>|</span>
|
<span>|</span>
|
||||||
<a rel=”noopener noreferrer” target="_blank" href="https://dannygrove.com/">Website</a>
|
<a rel=”noopener noreferrer” target="_blank" href="https://dannygrove.com/">Website</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -65,34 +75,15 @@
|
||||||
<h2 class="gradient-text">who we are</h2>
|
<h2 class="gradient-text">who we are</h2>
|
||||||
<p class="hero-p" style="max-width: 550px">Distrust is made up of engineers behind some of the most security-critical projects in the world—including BitGo, Turnkey, and Unit410.</p>
|
<p class="hero-p" style="max-width: 550px">Distrust is made up of engineers behind some of the most security-critical projects in the world—including BitGo, Turnkey, and Unit410.</p>
|
||||||
<p class="hero-p" style="max-width: 550px">We’ve helped hundreds of companies by conducting security reviews, building out their security infrastructure, and aiding them in launching products which can withstand the modern threat landscape. We don’t just secure systems. We build them.</p>
|
<p class="hero-p" style="max-width: 550px">We’ve helped hundreds of companies by conducting security reviews, building out their security infrastructure, and aiding them in launching products which can withstand the modern threat landscape. We don’t just secure systems. We build them.</p>
|
||||||
|
<div class="button-container">
|
||||||
|
<a href="/contact.html" class="mega button">Work with us</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{% include values.html %}
|
{% include values.html %}
|
||||||
|
|
||||||
<div class="video-background-container-our-approach">
|
{% include primary-cta.html %}
|
||||||
<video autoplay muted loop playsinline class="video-background-our-approach">
|
|
||||||
<source src="assets/videos/swirly-lines.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
|
|
||||||
<source src="assets/videos/swirly-lines.webm" type='video/webm; codecs="vp8, vorbis"' />
|
|
||||||
</video>
|
|
||||||
<div class="gradient-overlay-our-approach"></div>
|
|
||||||
</div>
|
|
||||||
<section class="flex-container video-content-our-approach">
|
|
||||||
<div class="flex-container-inner"></div>
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<h2 class="gradient-text why-distrust">our approach</h2>
|
|
||||||
<p>Too often, security is an afterthought—based on dogma, checklists, and outdated best practices. Distrust was founded to redefine security by developing new methods to eliminate single points of failure, and building systems in a manner where they don't need to be blindly trusted.</p>
|
|
||||||
<p>We don’t just advise on security. We build it. We open source it. And we teach organizations how to think critically about risk—because security isn’t about checking boxes.</p>
|
|
||||||
<div class="button-container">
|
|
||||||
<a href="/contact.html" class="mega button">Work with us</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
{% include why-choose-distrust.html %}
|
|
||||||
|
|
||||||
{% include primary-cta.html %}
|
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
{%- include footer.html -%}
|
{%- include footer.html -%}
|
||||||
|
|
|
@ -3,80 +3,61 @@
|
||||||
{%- include head.html -%}
|
{%- include head.html -%}
|
||||||
<body>
|
<body>
|
||||||
{%- include header.html -%}
|
{%- include header.html -%}
|
||||||
|
<div class="container">
|
||||||
<section class="flex-container contact-section" style="margin-top: 80px; margin-bottom: 20px">
|
<main>
|
||||||
<div class="contact-page container">
|
<section class="capsule-header">
|
||||||
<div class="flex-container-inner two-column-layout">
|
<div class="center">
|
||||||
<!-- Left Column: Text content -->
|
<div class="capsule">contact</div>
|
||||||
<div class="contact-info">
|
</div>
|
||||||
<h2 class="gradient-text" style="padding-bottom: 1.5rem">contact us</h2>
|
<br>
|
||||||
<p class="contact-description">
|
<h2 class="gradient-text center hero-header">tell us about your biggest security challenges</h2>
|
||||||
Building something new or need a second set of eyes on what’s already live? Our security engineers are ready to help you move faster, safer, and with full control.<br>
|
</section>
|
||||||
</p>
|
<section class="flex-container" style="margin-top: 80px">
|
||||||
<div class="logo-grid-container"></div>
|
<div class="flex-container-inner">
|
||||||
<ul class="logo-grid">
|
<div class="form-container card">
|
||||||
<li><img style="height: 40px" src="assets/base/companies/bitgo-logo-white.svg" alt="BitGo"></li>
|
<form onsubmit="return validateForm()" action="/submit-email" method="post">
|
||||||
<li><img src="assets/base/companies/ledn-white.svg" alt="Ledn"></li>
|
<div class="form-flex-container">
|
||||||
<li><img style="filter: invert(100)" src="assets/base/companies/turnkey-black.svg" alt="Turnkey"></li>
|
<div>
|
||||||
<li><img src="assets/base/companies/mysten-labs-white.svg" alt="Mysten Labs"></li>
|
<label for="name" class="form-label">Your name</label>
|
||||||
<li><img style="width: 150px" src="assets/base/companies/optimism-white.svg" alt="Optimism"></li>
|
<input type="text" id="name" name="name" class="form-input">
|
||||||
<li><img style="height: 40px" src="assets/base/companies/falconx-white.svg" alt="FalconX"></li>
|
</div>
|
||||||
<li><img src="assets/base/companies/sidero-labs-white.png" alt="Sidero Labs"></li>
|
</div>
|
||||||
<li><img style="height: 110px" src="assets/base/companies/zoom-white.png" alt="Zoom"></li>
|
|
||||||
<li><img src="assets/base/companies/etherfi_logo-white.svg" alt="Ether Fi"></li>
|
<label for="email" class="form-label required">Your email</label>
|
||||||
<li><img src="assets/base/companies/exodus-white.svg" alt="Exodus"></li>
|
<input placeholder="Enter your business email..." type="email" id="email" name="email" class="form-input" required>
|
||||||
<li><img style="height: 60px" src="assets/base/companies/hashicorp-white.png" alt="HashiCorp"></li>
|
|
||||||
<li><img style="width: 90px" src="assets/base/companies/fitbit-white.png" alt="Fitbit"></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-container card" style="font-size: 1.1rem; padding: 30px 30px 10px 30px">
|
|
||||||
<form onsubmit="return validateForm()" action="/submit-email" method="post">
|
|
||||||
<div class="form-flex-container">
|
|
||||||
|
|
||||||
<div class="form-row">
|
|
||||||
<div class="form-half">
|
|
||||||
<label for="name" class="form-label">Your name</label>
|
|
||||||
<input type="text" id="name" name="name" class="form-input">
|
|
||||||
</div>
|
|
||||||
<div class="form-half">
|
|
||||||
<label for="company-name" class="form-label">Company name</label>
|
<label for="company-name" class="form-label">Company name</label>
|
||||||
<input type="text" id="company-name" name="company-name" class="form-input">
|
<input type="text" id="company-name" name="company-name" class="form-input">
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<label for="email" class="form-label required">Your email</label>
|
<label for="service" class="form-label required">What service are you interested in?</label>
|
||||||
<input placeholder="Enter your business email..." type="email" id="email" name="email" class="form-input" required>
|
<select id="service" name="service" class="form-select" required>
|
||||||
|
<option value="" disabled selected>Select option</option>
|
||||||
|
<option value="software-security-assessment">Security assessment</option>
|
||||||
|
<option value="retained">Retainer / Fractional CISO</option>
|
||||||
|
<option value="engineering">Software engineering</option>
|
||||||
|
<option value="digital-asset-custody">Digital asset custody</option>
|
||||||
|
<option value="general-inquiry">General inquiry</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
<label for="service" class="form-label required">What service are you interested in?</label>
|
<label for="help" class="form-label required">How can we help?</label>
|
||||||
<select id="service" name="service" class="form-select" required>
|
<textarea id="help" name="help" class="form-textarea" required></textarea>
|
||||||
<option value="" disabled selected>Select option</option>
|
|
||||||
<option value="software-security-assessment">Security assessment</option>
|
|
||||||
<option value="retained">Retainer / Fractional CISO</option>
|
|
||||||
<option value="engineering">Software engineering</option>
|
|
||||||
<option value="digital-asset-custody">Digital asset custody</option>
|
|
||||||
<option value="smart-contract-audit">Smart contract audit</option>
|
|
||||||
<option value="general-inquiry">General inquiry</option>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<label for="help" class="form-label required">How can we help?</label>
|
<div id="other-field" style="display:none;">
|
||||||
<textarea id="help" name="help" class="form-textarea" required></textarea>
|
<input type="text" id="other-source" name="other-source" class="form-input" placeholder="Please specify">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div id="other-field" style="display:none;">
|
<!-- TODO: add captcha of some sort -->
|
||||||
<input type="text" id="other-source" name="other-source" class="form-input" placeholder="Please specify">
|
|
||||||
|
<button type="submit" class="contact-button">Submit</button>
|
||||||
|
<p class="center submit-policy">We respect your privacy. The information you provide will only be used to respond to your inquiry and will never be shared externally.</p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<!-- TODO: add captcha of some sort -->
|
{% include companies-carousel.html hide_title='true' %}
|
||||||
|
|
||||||
<button type="submit" class="contact-button">Submit</button>
|
|
||||||
<p class="center submit-policy" style="text-align: start">We respect your privacy. The information you provide will only be used to respond to your inquiry and will never be shared externally.</p>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
<br />
|
||||||
</div>
|
</div>
|
||||||
{%- include footer.html -%}
|
{%- include footer.html -%}
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<div class="text-well">
|
<div class="text-well">
|
||||||
<h1 class="gradient-text hero-header landing-header">security without blind trust</h1>
|
<h1 class="gradient-text hero-header landing-header">security without blind trust</h1>
|
||||||
<p class="hero-p landing-page-header" style="margin: 0px">Distrust secures mission-critical infrastructure by applying a first principles approach. No guessing, only verifiable security.</p>
|
<p class="hero-p" style="margin-top: 0px">Distrust secures mission critical infrastructure by applying a first principles approach. No guessing, no shortcuts, only verifiable security.</p>
|
||||||
<br />
|
<br />
|
||||||
<a href="/contact.html" class="mega button">Work with us</a>
|
<a href="/contact.html" class="mega button">Work with us</a>
|
||||||
<br />
|
<br />
|
||||||
|
@ -27,6 +27,7 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
||||||
{% include companies-carousel.html %}
|
{% include companies-carousel.html %}
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
|
@ -34,19 +35,16 @@
|
||||||
<div class="capsule">what we do</div>
|
<div class="capsule">what we do</div>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<div class="gradient-text-h3">
|
<h3 class="gradient-text center">our services today, our vision for tomorrow</h3>
|
||||||
<h3 class="gradient-text center" style="padding-bottom: 5px">our services today, our vision for tomorrow</h3>
|
|
||||||
</div>
|
|
||||||
<br>
|
<br>
|
||||||
<div class="flex-container">
|
<div class="flex-container">
|
||||||
<a href="/services.html" class="arrow-link">
|
<a href="/services.html" class="arrow-link">
|
||||||
<div class="flex-container-inner card landing-offerings">
|
<div class="flex-container-inner card">
|
||||||
<div class="text-well">
|
<div class="text-well">
|
||||||
<h4>services</h4>
|
<h4>services</h4>
|
||||||
<p class="text-description-desktop">Our threat model approach stems from working with high-risk orgs, uniquely positioning us to offer advice and support others can't. We specialize in system architecture design, security assessments, penetration tests, smart contract audits, and infrastructure hardening.</p>
|
<p>We don’t just assess risks—we eliminate them. Our first principles approach removes single points of failure, protects mission-critical systems, and ensures verifiable security. Whether you need a full audit, architecture review, incident response, or ongoing retained support we have you covered.</p>
|
||||||
<p class="text-description-mobile">We specialize in system architecture design, security assessments, penetration tests, smart contract audits, and infrastructure hardening. Hire Distrust to solve your hardest security challenges. </p>
|
|
||||||
<br>
|
<br>
|
||||||
Explore services
|
Learn more
|
||||||
<span class="arrow">→</span>
|
<span class="arrow">→</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -55,8 +53,7 @@
|
||||||
<div class="flex-container-inner card roadmap-card roadmap-card-teal" style="background: #00191E; border: 1px solid #01586A">
|
<div class="flex-container-inner card roadmap-card roadmap-card-teal" style="background: #00191E; border: 1px solid #01586A">
|
||||||
<div class="text-well">
|
<div class="text-well">
|
||||||
<h4>software</h4>
|
<h4>software</h4>
|
||||||
<p class="text-description-desktop">We build open source software that eliminates reliance on any single computer, person or system. Our tooling unlocks a new level of trust in infrastructure through uncompromising transparency and verifiability. Explore and start using our open source tools today.</p>
|
<p>Security is always evolving—so are we. Distrust is building the next generation of security infrastructure that eliminates reliance on any single computer, person, or system. Using full-source bootstrapping, determinism, and quorum-based security, we ensure verifiable, trustless protection at every layer.</p>
|
||||||
<p class="text-description-mobile">We develop open source software that eliminates reliance on any single computer, person or system. Explore active tools and what's coming soon.<br></p>
|
|
||||||
<br>
|
<br>
|
||||||
View software
|
View software
|
||||||
<span class="arrow">→</span>
|
<span class="arrow">→</span>
|
||||||
|
@ -66,12 +63,8 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{%include divider.html %}
|
|
||||||
|
|
||||||
{% include powered-by.html %}
|
{% include powered-by.html %}
|
||||||
|
|
||||||
{% include threatmodel-cta.html %}
|
|
||||||
|
|
||||||
{% include values.html %}
|
{% include values.html %}
|
||||||
|
|
||||||
{% include primary-cta.html %}
|
{% include primary-cta.html %}
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<h1 class="hero-title gradient-text hero-header">
|
<h1 class="hero-title gradient-text hero-header">
|
||||||
solve your hardest security challenges
|
hire Distrust to solve your hardest security challenges
|
||||||
</h1>
|
</h1>
|
||||||
<br>
|
<br>
|
||||||
<p class="hero-p center">Built by engineers behind BitGo, Unit410, and Turnkey, we apply hard-earned lessons from securing critical infrastructure to build transparent, resilient, and universally applicable security solutions.</p>
|
<p class="hero-p center">Built by engineers behind BitGo, Unit410, and Turnkey, we apply hard-earned lessons from securing critical infrastructure to build transparent, resilient, and universally applicable security solutions.</p>
|
||||||
|
@ -32,18 +32,52 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{%include divider.html %}
|
{% include companies-carousel.html hide_title='true' %}
|
||||||
|
|
||||||
|
<section class="why-choose-distrust">
|
||||||
|
<div class="flex-container">
|
||||||
|
<div class="flex-container-inner">
|
||||||
|
<h2 class="gradient-text">why choose Distrust</h2>
|
||||||
|
<p>Benefit from our approach—a blend of proven methodologies and open source tooling we created, shaped by lessons from securing some of the world's highest-risk organizations.</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex-container-inner">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="flex-container properties">
|
||||||
|
<div class="flex-container-inner">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="30" height=="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layers-icon lucide-layers"><path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z"/><path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12"/><path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17"/></svg>
|
||||||
|
<p><b>Eliminate root causes</b></p>
|
||||||
|
<p>We don't just scan for bugs—we eliminate entire categories of bugs at the source using a first-principles methodology.</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex-container-inner">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big-icon lucide-circle-check-big"><path d="M21.801 10A10 10 0 1 1 17 3.335"/><path d="m9 11 3 3L22 4"/></svg>
|
||||||
|
<p><b>Verifiable</b></p>
|
||||||
|
<p>No guessing, no shortcuts. Every recommendation is backed by logic and rigor, not gut feel or just to check boxes.</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex-container-inner">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-alert-icon lucide-shield-alert"><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"/><path d="M12 8v4"/><path d="M12 16h.01"/></svg>
|
||||||
|
<p><b>Proven track record</b></p>
|
||||||
|
<p>Our security engineers have secured some of the highest risk infrastructure in the world (BitGo, Turnkey, Unit 410).</p>
|
||||||
|
</div>
|
||||||
|
<div class="flex-container-inner">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-handshake-icon lucide-handshake"><path d="m11 17 2 2a1 1 0 1 0 3-3"/><path d="m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4"/><path d="m21 3 1 11h-2"/><path d="M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3"/><path d="M3 4h8"/></svg>
|
||||||
|
<p><b>Embedded collaborations</b></p>
|
||||||
|
<p>We act as true partners— our goal is to make our clients succeed and not depend on us.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section class="mid-tall-section">
|
<section class="mid-tall-section">
|
||||||
<div style="max-width: 800px; margin: auto; text-align: center; margin-bottom: 60px;">
|
<div style="max-width: 800px; margin: auto; text-align: center; margin-bottom: 60px;">
|
||||||
<h2 class="gradient-text">our services</h2>
|
<h2 class="gradient-text">our services</h2>
|
||||||
<p class="text-description-desktop">Distrust offers high-impact security consulting and open source tooling for companies that can't afford to fail.
|
<p>Distrust offers high-impact security consulting and open-source tooling for companies that can't afford to fail.
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-container">
|
<div class="flex-container">
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<div class="text-well">
|
<div class="text-well">
|
||||||
<h3>retainer / fractional CISO</h3>
|
<h3>retainer / fractional CISO</h3>
|
||||||
<p style="max-width: 555px">Get ongoing security leadership tailored precisely to your organization's needs. We embed with your team to provide strategic security direction and eliminate blind trust from your infrastructure—so you're prepared before threats emerge.</p>
|
<p style="max-width: 540px">Get ongoing security leadership tailored precisely to your organization's needs. We embed with your team to provide strategic security direction and eliminate blind trust from your infrastructure—so you're prepared before threats emerge.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Security program development</li>
|
<li>Security program development</li>
|
||||||
<li>Incident response</li>
|
<li>Incident response</li>
|
||||||
|
@ -51,7 +85,7 @@
|
||||||
<li>Vetting security talent</li>
|
<li>Vetting security talent</li>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
<div class="button-container services">
|
<div class="button-container">
|
||||||
<a href="/contact.html" class="mega button">Work with us</a>
|
<a href="/contact.html" class="mega button">Work with us</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -59,15 +93,15 @@
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<div class="text-well">
|
<div class="text-well">
|
||||||
<h3>security assessments</h3>
|
<h3>security assessments</h3>
|
||||||
<p style="max-width: 555px">Our assessments go beyond vulnerability scans—we eliminate risks at their source. Using first-principles threat modelling, we identify single points of failure and deliver actionable recommendations to secure your systems against sophisticated threats.</p>
|
<p style="max-width: 540px">Our assessments go beyond vulnerability scans—we eliminate risks at their source. Using first-principles threat modelling, we identify single points of failure and deliver actionable recommendations to secure your systems against sophisticated threats.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Secure architecture review</li>
|
<li>Secure architecture review</li>
|
||||||
<li>Security audits</li>
|
<li>Security audits</li>
|
||||||
<li>Penetration testing</li>
|
<li>Penetration testing</li>
|
||||||
<li>Smart contract audits</li>
|
<li>Secure code review</li>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
<div class="button-container services">
|
<div class="button-container">
|
||||||
<a href="/contact.html" class="mega button">Book an assessment</a>
|
<a href="/contact.html" class="mega button">Book an assessment</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -75,10 +109,6 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{% include companies-carousel.html %}
|
|
||||||
|
|
||||||
{% include why-choose-distrust.html %}
|
|
||||||
|
|
||||||
<div class="video-background-container-philosophy">
|
<div class="video-background-container-philosophy">
|
||||||
<video autoplay muted loop playsinline class="video-background-philosophy">
|
<video autoplay muted loop playsinline class="video-background-philosophy">
|
||||||
<source src="assets/videos/swirly-lines.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
|
<source src="assets/videos/swirly-lines.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
|
||||||
|
@ -98,7 +128,14 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{%- include primary-cta.html -%}
|
|
||||||
|
<section>
|
||||||
|
<h4 class="gradient-text center" style="line-height: 50px; max-width: 600px; margin: auto;">ready to take your security to the next level?</h4>
|
||||||
|
<p class="hero-p center" style="max-width: 600px; margin-top: 10px">We help organizations that can't afford to fail. If security is mission-critical for your company, let's talk.</p>
|
||||||
|
<div class="button-container center">
|
||||||
|
<a href="/contact.html" class="mega button">Work with us</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -21,33 +21,22 @@
|
||||||
<div class="text-well center">
|
<div class="text-well center">
|
||||||
<div class="capsule-teal">software</div>
|
<div class="capsule-teal">software</div>
|
||||||
<br>
|
<br>
|
||||||
<h1 style="max-width: 1000px; margin: auto">open source tools for verifiable security</h1>
|
<h1 style="max-width: 1000px; margin: auto">verifiable security without single points of failure</h1>
|
||||||
<br>
|
<br>
|
||||||
<p class="hero-p center">Most systems still rely on single individuals or computers, unverifiable software, and opaque processes. We’re redesigning security for transparency from the ground up.</p>
|
<p class="hero-p center">Most systems still rely on single individuals or computers, unverifiable software, and opaque processes. We’re redesigning security for transparency from the ground up.</p>
|
||||||
<div class="button-container center">
|
<div class="button-container center">
|
||||||
<a href="#ready-to-use" class="mega-teal button center">View software</a>
|
<a href="#roadmap" class="mega-teal button">View software</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{%- include live-tools.html -%}
|
<section class="flex-container mid-tall-section">
|
||||||
|
|
||||||
|
|
||||||
<div class="video-background-container-building-blocks">
|
|
||||||
<video autoplay muted loop playsinline class="video-background-building-blocks">
|
|
||||||
<source src="assets/videos/building-cubes.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
|
|
||||||
<source src="assets/videos/building-cubes.webm" type='video/webm; codecs="vp8, vorbis"' />
|
|
||||||
</video>
|
|
||||||
<div class="gradient-overlay-building-blocks"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<section class="flex-container video-content-building-blocks">
|
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<h2 class="gradient-text why-distrust">building blocks <br> for provable security</h2>
|
<h3>creating the building blocks for provable security</h3>
|
||||||
<p class="hero-p">Modern software systems still rely on trust—maintainers, IT admins, third-party providers. But what happens when they are compromised? How do you verify that your systems haven't been tampered with?</p>
|
<p class="hero-p">Modern software systems still rely on trust in individuals—maintainers, IT admins, or third-party providers. But what happens when they are compromised? How do you verify that the software running on your systems hasn’t been tampered with?</p>
|
||||||
<p class="hero-p">We’ve identified critical gaps and built tools to remove single points of failure across all levels of the software lifecycle—from toolchains and dependencies to how code is built, signed, verified and deployed.</p>
|
<p class="hero-p">We’ve identified critical missing pieces needed to remove single points of failure at every level. Our approach covers the complete lifecycle of software from your toolchains and dependencies to how your code is built, signed, verified and deployed.</p>
|
||||||
<p class="hero-p">By combining multi-party trust, remote attestation, and bit-for-bit reproducibility, we are eliminating trust assumptions, ensuring security isn't just a claim—it's provable. And as everything we do, all our software is open source.</p>
|
<p class="hero-p">By combining multi-party trust, remote attestation, and bit-for-bit reproducibility, we are methodically eliminating trust assumptions, ensuring security isn’t just a claim—it’s provable. And as everything we do, all our software is open source.</p>
|
||||||
<a href="#roadmap" class="arrow-link">
|
<a href="#roadmap" class="arrow-link">
|
||||||
See what we're building
|
See what we're building
|
||||||
<span class="arrow">→</span>
|
<span class="arrow">→</span>
|
||||||
|
@ -56,14 +45,15 @@
|
||||||
<div class="flex-container-inner"></div>
|
<div class="flex-container-inner"></div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
{% include powered-by.html %}
|
||||||
|
|
||||||
<div class="roadmap" id="roadmap">
|
<div class="roadmap" id="roadmap">
|
||||||
<h2 class="center gradient-text">our roadmap</h2>
|
<h2 class="center gradient-text">our software</h2>
|
||||||
<p style="margin-top: 20px" class="hero-p center">We're actively building some tools—and raising support to build others. Here's what's in-progress and what's coming next.</p>
|
<p style="margin-top: 20px" class="hero-p center">We are actively working on a number of different projects, and looking to fund others. Here is what's on the way and what's coming next.</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="kanban" class="flex-container">
|
<div id="kanban" class="flex-container">
|
||||||
<div class="flex-container-inner flex-container kanban-column column-backlog">
|
<div class="flex-container-inner flex-container kanban-column column-backlog">
|
||||||
<h4 class="backlog-desktop" style="color: var(--light-grey)">backlog (fundraising)</h4>
|
<h4 style="color: var(--light-grey)">backlog (fundraising)</h4>
|
||||||
<h4 class="backlog-mobile" style="color: var(--light-grey)">backlog</h4>
|
|
||||||
<a target="_blank" rel=”noopener noreferrer” class="flex-container-inner mini-card" href="https://git.distrust.co/public/bootproof">
|
<a target="_blank" rel=”noopener noreferrer” class="flex-container-inner mini-card" href="https://git.distrust.co/public/bootproof">
|
||||||
<p><b>Bootproof</b></p>
|
<p><b>Bootproof</b></p>
|
||||||
<p>Prove what software booted on a system via remote attestation technologies.</p>
|
<p>Prove what software booted on a system via remote attestation technologies.</p>
|
||||||
|
@ -91,7 +81,7 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-container-inner flex-container kanban-column column-progress">
|
<div class="flex-container-inner flex-container kanban-column column-progress">
|
||||||
<h4 style="color: var(--light-purple)">in-progress</h4>
|
<h4 style="color: var(--light-teal)">in-progress</h4>
|
||||||
<a class="flex-container-inner mini-card" rel=”noopener noreferrer” target="_blank" href="https://qvs.distrust.co/">
|
<a class="flex-container-inner mini-card" rel=”noopener noreferrer” target="_blank" href="https://qvs.distrust.co/">
|
||||||
<p><b>Trove</b></p>
|
<p><b>Trove</b></p>
|
||||||
<p>Documentation for managing secrets that you can't afford to lose.</p>
|
<p>Documentation for managing secrets that you can't afford to lose.</p>
|
||||||
|
@ -118,7 +108,7 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-container-inner flex-container kanban-column column-active">
|
<div class="flex-container-inner flex-container kanban-column column-active">
|
||||||
<h4 style="color: var(--light-teal)">active</h4>
|
<h4 style="color: var(--light-purple)">active</h4>
|
||||||
<a class="flex-container-inner mini-card" rel=”noopener noreferrer” target="_blank" href="https://codeberg.org/stagex/stagex">
|
<a class="flex-container-inner mini-card" rel=”noopener noreferrer” target="_blank" href="https://codeberg.org/stagex/stagex">
|
||||||
<p><b>StageX</b></p>
|
<p><b>StageX</b></p>
|
||||||
<p>Hermetic, deterministic, reproducible, multi-signed OCI-based build toolchain.</p>
|
<p>Hermetic, deterministic, reproducible, multi-signed OCI-based build toolchain.</p>
|
||||||
|
@ -143,7 +133,7 @@
|
||||||
<span class="arrow">→</span>
|
<span class="arrow">→</span>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<a class="flex-container-inner mini-card" rel=”noopener noreferrer” target="_blank" href="https://git.distrust.co/public/icepick">
|
<a class="flex-container-inner mini-card" rel=”noopener noreferrer” target="_blank" href="https://git.distrust.co/public/keyfork">
|
||||||
<p><b>Icepick</b></p>
|
<p><b>Icepick</b></p>
|
||||||
<p>Framework for offline cryptographic signing operations.</p>
|
<p>Framework for offline cryptographic signing operations.</p>
|
||||||
<div class="arrow-link">
|
<div class="arrow-link">
|
||||||
|
@ -154,29 +144,20 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{%- include divider.html -%}
|
|
||||||
|
|
||||||
{% include powered-by.html %}
|
|
||||||
|
|
||||||
{%- include divider.html -%}
|
|
||||||
|
|
||||||
<section class="flex-container">
|
<section class="flex-container">
|
||||||
<div class="flex-container-inner"></div>
|
<div class="flex-container-inner"></div>
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<h4 class="quote" style="filter: brightness(80%); margin-bottom: 5rem">❝We want to use our knowledge to improve security, privacy, and freedom for as many people as possible. We believe that verifiable foundations for building technology are essential to human wellbeing and solving the coordination problem.❝ — Distrust team</h4>
|
<h4 class="quote" style="filter: brightness(50%)">❝Our mission is to use our knowledge to improve the security, privacy, and freedom of as many individuals as possible. We believe having verifiable foundations on which technologies can be built is a fundamental step toward improving the wellbeing of our species and solving the coordination problem.❝ — Distrust team</h4>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{%- include divider.html -%}
|
<section>
|
||||||
|
<h4 class="gradient-text center" style="line-height: 50px; max-width: 600px; margin: auto;">want to help with our vision?</h4>
|
||||||
<div class="software-cta">
|
<p class="hero-p center" style="max-width: 600px; margin-top: 10px">If you would like to help us, please sponsor our work or get involved as a contributor.</p>
|
||||||
<h4 class="gradient-text center" style="line-height: 50px; max-width: 650px; margin: auto;">fund open source development</h4>
|
<div class="button-container center">
|
||||||
<p class="hero-p center text-description-desktop" style="max-width: 650px; margin-top: 10px">Your support funds the tools. Your forks spread the mission. Help us build transparent, verifiable security tools — together.</p>
|
<a href="/contact.html" class="mega-teal button">Get in touch</a>
|
||||||
<p class="hero-p center text-description-mobile" style="max-width: 650px; margin-top: 10px">Your support funds the tools. Help us build transparent, verifiable security tools — together.</p>
|
|
||||||
<div class="button-container center software-cta" style="margin-bottom: 3rem">
|
|
||||||
<a href="/contact.html" class="mega-teal button center">Get in touch</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</section>
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -3,18 +3,16 @@
|
||||||
{%- include head.html -%}
|
{%- include head.html -%}
|
||||||
<body>
|
<body>
|
||||||
{%- include header.html -%}
|
{%- include header.html -%}
|
||||||
|
|
||||||
<div class="container blog">
|
<div class="container blog">
|
||||||
<main>
|
<main>
|
||||||
<section class="flex-container threat model" style="margin-top: 80px; margin-bottom: 10px !important;">
|
<section class="flex-container">
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<h1 class="threat-model-header" style="font-size: clamp(2.5rem, 10vw, 3.8rem) !important; margin-bottom: 3rem !important">Distrust threat model</h1>
|
<h1>Distrust Threat Model</h1>
|
||||||
<p>Distrust's threat model aids organizations in methodically eliminating surface area for attack, making entire classes of attacks impossible.
|
<p>Unlike conventional frameworks (e.g., STRIDE, PASTA) that focus on identifying and mitigating specific risks, the Distrust Threat Model assumes that at some level <b>systems are already compromised</b>. This pessimistic, assumption-driven approach focuses on building systems that can remain secure even when up against the worst case adversary that have reason to target an organization.</p>
|
||||||
<br>Unlike conventional frameworks (e.g., STRIDE, PASTA) that focus on identifying and preventing specific risks, our threat model assumes that at some level <b>systems are already compromised</b>. This pessimistic set of assumptions allows organizations to build systems that can remain secure even when up against their worst case adversary.</p>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="flex-container threat model" style="margin-top: 50px; margin-bottom: 10px !important">
|
<section class="flex-container">
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<h2>Levels</h2>
|
<h2>Levels</h2>
|
||||||
<p>While the end-goal is to adequately address the risks which stem from the <a href="#assumptions">assumptions</a>, organizations are at varying levels of maturity and often need a path towards mitigating threats in a phased approach. To this end, the threat model defines 4 levels, each corresponding to increasingly more sophisticated threat actors as the levels increase. Each threat actor is assumed to have access to specific methods of attack limited by factors such as cost to execute, sophistication, time required etc.</p>
|
<p>While the end-goal is to adequately address the risks which stem from the <a href="#assumptions">assumptions</a>, organizations are at varying levels of maturity and often need a path towards mitigating threats in a phased approach. To this end, the threat model defines 4 levels, each corresponding to increasingly more sophisticated threat actors as the levels increase. Each threat actor is assumed to have access to specific methods of attack limited by factors such as cost to execute, sophistication, time required etc.</p>
|
||||||
|
@ -22,14 +20,12 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<hr class="divider-line">
|
<section class="flex-container">
|
||||||
|
|
||||||
<section class="flex-container threat model" style="margin-top: 50px; margin-bottom: 10px !important">
|
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<h3 id="level-1">Level 1</h3>
|
<h3 id="level-1">Level 1</h3>
|
||||||
<p>Defense against remote adversaries with limited resources.</p>
|
<p>Defense against remote adversaries with limited resources.</p>
|
||||||
<h5>Adversary</h5>
|
<h5>Adversary</h5>
|
||||||
<p>An unskilled or lightly skilled individual leveraging widely available tools and publicly known vulnerabilities. Their attacks are largely opportunistic and automated. We do, however, assume they can be very patient and willing to work across a long time horizon.</p>
|
<p>An unskilled or lightly skilled individual leveraging widely available tools and publicly known vulnerabilities. Their attacks are largely opportunistic and automated. We do however assume they can be very patient and willing to work across a long time horizon.</p>
|
||||||
<h5>Capabilities</h5>
|
<h5>Capabilities</h5>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Scanning for and exploiting known vulnerabilities with public exploits.</li>
|
<li>Scanning for and exploiting known vulnerabilities with public exploits.</li>
|
||||||
|
@ -41,9 +37,7 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<hr class="divider-line">
|
<section class="flex-container">
|
||||||
|
|
||||||
<section class="flex-container threat model" style="margin-top: 50px; margin-bottom: 10px !important">
|
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<h3 id="level-2">Level 2</h3>
|
<h3 id="level-2">Level 2</h3>
|
||||||
<p>Defense against insiders.</p>
|
<p>Defense against insiders.</p>
|
||||||
|
@ -63,9 +57,7 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<hr class="divider-line">
|
<section class="flex-container">
|
||||||
|
|
||||||
<section class="flex-container threat model" style="margin-top: 50px; margin-bottom: 10px !important">
|
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<h3 id="level-3">Level 3</h3>
|
<h3 id="level-3">Level 3</h3>
|
||||||
<p>Defense against well-funded organizations.</p>
|
<p>Defense against well-funded organizations.</p>
|
||||||
|
@ -83,14 +75,12 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<hr class="divider-line">
|
<section class="flex-container">
|
||||||
|
|
||||||
<section class="flex-container threat model" style="margin-top: 50px; margin-bottom: 10px !important">
|
|
||||||
<div class="flex-container-inner">
|
<div class="flex-container-inner">
|
||||||
<h3 id="level-4">Level 4</h3>
|
<h3 id="level-4">Level 4</h3>
|
||||||
<p>Defense against nation state actors.
|
<p>Defense against nation state actors.
|
||||||
<h5>Adversary</h5>
|
<h5>Adversary</h5>
|
||||||
<p>A state-backed or similarly resourced entity capable of executing the most advanced forms of cyber and physical attacks, including full-spectrum operations across the supply chain, hardware, firmware, and human factors.</p>
|
<p>A state-backed or similarly resourced entity capable of executing the most advanced forms of cyber and physical attacks, including full-spectrum operations across the supply chain, hardware, firmware, and human factors..</p>
|
||||||
<h5>Capabilities</h5>
|
<h5>Capabilities</h5>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Observe all displays and input devices in public areas.</li>
|
<li>Observe all displays and input devices in public areas.</li>
|
||||||
|
@ -103,27 +93,7 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<hr class="divider-line">
|
|
||||||
|
|
||||||
<section class="flex-container threat model" style="margin-top: 50px; margin-bottom: 10px !important">
|
|
||||||
<div class="flex-container-inner">
|
|
||||||
<h2>Applying the Threat Model</h2>
|
|
||||||
<p>The Distrust Threat Model challenges organizations to examine their systems through the lens of failure: not if things go wrong, but when. It provides a structured way to evaluate your current posture and identify which parts of your infrastructure need to withstand which kinds of adversaries — from opportunistic attackers to state-backed campaigns.</p>
|
|
||||||
<p>Security isn’t one-size-fits-all. Different systems protect different kinds of value, and not every component needs Level 4 defenses. But understanding which ones do — and designing accordingly — is where resilience begins.</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<div class="threat">
|
|
||||||
<h4 class="gradient-text center" style="line-height: 50px; max-width: 650px; margin: auto;">ready to assess your risk?</h4>
|
|
||||||
<p class="hero-p center" style="max-width: 650px; margin-top: 10px">We help teams apply the Distrust Threat Model — mapping assets to adversaries and designing systems that stay secure, even when things go wrong.</p>
|
|
||||||
<div class="button-container center software-cta" style="margin-bottom: 6rem">
|
|
||||||
<a href="/contact.html" class="mega button center">Get in touch</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{%- include footer.html -%}
|
{%- include footer.html -%}
|
||||||
</body>
|
</body>
|
||||||
|
|
918
_sass/base.scss
918
_sass/base.scss
File diff suppressed because it is too large
Load Diff
|
@ -1,17 +0,0 @@
|
||||||
<svg width="1282" height="442" viewBox="0 0 1282 442" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g clip-path="url(#clip0_20870_19126)">
|
|
||||||
<path d="M363.932 244.011L350.111 190.138C349.715 188.553 348.439 187.321 346.854 186.925L293.466 173.765C293.069 173.677 292.629 173.633 292.233 173.633C290.957 173.501 289.636 173.897 288.668 174.865L198.572 264.962L186.644 218.395C186.248 216.81 184.971 215.578 183.387 215.182L137.524 203.87L227.577 113.818C228.105 113.29 228.413 112.629 228.633 111.969C229.029 111.089 229.161 110.077 228.897 109.108L215.077 55.2353C214.681 53.6508 213.404 52.4184 211.82 52.0223L158.431 38.8621C157.375 38.5981 156.318 38.7741 155.394 39.2143H155.35C155.086 39.3463 154.866 39.5224 154.602 39.6984C154.382 39.8745 154.074 39.9625 153.898 40.1826L0.201123 193.791C0.201123 193.791 -0.0629539 194.231 -0.239009 194.451C-1.20731 195.596 -1.55943 197.092 -1.11929 198.545L13.8014 250.613C14.2416 252.109 15.3859 253.254 16.8384 253.65L66.8381 267.999L81.1867 317.954C81.6268 319.451 82.7712 320.595 84.2236 320.991L134.399 335.384L148.792 385.56C149.232 387.056 150.376 388.2 151.829 388.597L204.117 403.605C204.514 403.737 204.954 403.781 205.35 403.781C205.438 403.781 205.526 403.737 205.658 403.737C205.658 403.737 205.702 403.737 205.746 403.737C206.89 403.737 208.035 403.297 208.915 402.417L362.655 248.676C363.184 248.148 363.492 247.488 363.712 246.828C364.108 245.948 364.24 244.935 363.976 243.967L363.932 244.011ZM295.006 303.738L283.783 259.944L308.65 235.12L351.388 247.4L295.05 303.782L295.006 303.738ZM207.815 390.929L196.591 347.135L241.573 302.153L284.311 314.433L207.815 390.929ZM242.497 288.641L231.758 251.229L270.358 260.736L242.497 288.597V288.641ZM276.476 267.25L286.335 305.674L248.791 294.891L276.476 267.206V267.25ZM277.753 253.386L234.003 242.602L290.209 186.397L302.356 228.782L277.753 253.386ZM223.131 253.43L235.279 295.815L190.517 340.577L146.767 329.794L223.131 253.43ZM342.145 194.847L353.368 238.641L310.939 226.449L298.791 184.152L342.145 194.847ZM140.165 323.28L128.942 279.486L145.139 263.289L187.876 275.569L140.165 323.28ZM146.063 249.777L135.324 212.365L173.924 221.872L146.063 249.733V249.777ZM189.901 266.854L152.357 256.071L180.042 228.386L189.901 266.81V266.854ZM138.889 256.995L122.912 272.972L79.162 262.189L126.741 214.61L138.889 256.995ZM88.537 118.043L100.685 160.429L55.5266 205.587L11.7768 194.803L88.537 118.043ZM155.218 51.3621L167.366 93.7475L143.158 117.955L99.4084 107.172L155.218 51.3621ZM160.412 168.307L149.188 124.557L173.66 100.085L216.397 112.321L160.412 168.307ZM107.903 153.254L97.1637 115.842L135.764 125.349L107.903 153.21V153.254ZM141.882 131.864L151.741 170.288L114.241 159.504L141.926 131.82L141.882 131.864ZM107.023 166.723L149.76 178.958L72.868 255.851L61.6445 212.101L107.023 166.723ZM207.154 59.9008L218.378 103.695L175.949 91.5028L163.801 49.2054L207.154 59.9008ZM9.57608 203.474L48.1763 212.981L20.3155 240.842L9.57608 203.43V203.474ZM26.6094 247.18L54.2942 219.495L64.1533 257.919L26.6535 247.136L26.6094 247.18ZM89.0651 313.157L76.9173 270.859L120.271 281.555L131.495 325.349L89.0651 313.157ZM144.567 338.465L183.167 347.972L155.306 375.833L144.567 338.421V338.465ZM161.6 382.171L189.285 354.486L199.144 392.91L161.6 382.127V382.171Z" fill="white"/>
|
|
||||||
<path d="M495.231 309.239C481.103 309.239 468.823 306.422 458.26 300.788C447.74 295.155 439.554 287.496 433.788 277.725C427.978 267.998 425.117 256.775 425.117 244.099C425.117 231.423 427.934 220.199 433.568 210.472C439.202 200.745 446.948 193.042 456.851 187.409C466.754 181.775 478.022 178.958 490.742 178.958C503.462 178.958 514.113 181.687 523.796 187.145C533.479 192.602 541.05 200.261 546.595 210.076C552.141 219.891 554.914 231.555 554.914 245.023C554.914 246.123 554.914 247.532 554.782 249.204C554.694 250.877 554.606 252.329 554.43 253.606H448.665V233.887H538.761L526.877 240.049C527.053 232.919 525.557 226.537 522.476 220.903C519.395 215.269 515.126 210.912 509.756 207.831C504.386 204.75 498.004 203.21 490.742 203.21C483.48 203.21 477.23 204.75 471.596 207.831C465.962 210.912 461.649 215.313 458.656 221.035C455.663 226.757 454.122 233.315 454.122 240.753V245.507C454.122 253.121 455.839 259.855 459.228 265.709C462.617 271.563 467.503 276.141 473.841 279.354C480.179 282.611 487.529 284.239 495.936 284.239C503.066 284.239 509.492 283.051 515.17 280.674C520.891 278.297 525.953 274.82 530.398 270.199L546.551 288.729C540.698 295.375 533.435 300.48 524.809 303.957C516.182 307.435 506.323 309.195 495.231 309.195V309.239Z" fill="white"/>
|
|
||||||
<path d="M554.652 205.368V181.601H639.247V205.368H554.652ZM619.309 309.241C605.356 309.241 594.573 305.632 587.002 298.414C579.388 291.195 575.603 280.632 575.603 266.679V152.595H605.092V265.711C605.092 271.741 606.677 276.407 609.846 279.752C613.015 283.097 617.46 284.725 623.138 284.725C629.652 284.725 635.022 282.965 639.291 279.488L647.83 300.658C644.177 303.519 639.819 305.632 634.758 307.084C629.696 308.493 624.546 309.241 619.309 309.241Z" fill="white"/>
|
|
||||||
<path d="M730.055 179.002C740.354 179.002 749.421 180.983 757.256 184.944C765.09 188.906 771.34 195.023 776.05 203.254C780.715 211.485 783.048 222.048 783.048 234.856V307.567H753.339V238.641C753.339 227.374 750.742 219.011 745.504 213.465C740.266 207.92 732.828 205.147 723.145 205.147C716.191 205.147 709.985 206.555 704.615 209.416C699.245 212.277 695.064 216.502 692.159 222.136C689.21 227.77 687.758 234.856 687.758 243.395V307.567H658.269V131.203H687.758V215.094L681.596 204.398C685.865 196.3 692.247 190.05 700.742 185.604C709.237 181.159 719.008 178.958 730.099 178.958L730.055 179.002Z" fill="white"/>
|
|
||||||
<path d="M863.896 309.24C849.768 309.24 837.488 306.423 826.925 300.789C816.405 295.155 808.219 287.497 802.453 277.726C796.643 267.999 793.782 256.775 793.782 244.099C793.782 231.423 796.599 220.199 802.233 210.472C807.867 200.745 815.613 193.043 825.516 187.409C835.419 181.775 846.687 178.958 859.407 178.958C872.127 178.958 882.778 181.687 892.461 187.145C902.144 192.603 909.715 200.261 915.26 210.076C920.806 219.891 923.579 231.555 923.579 245.023C923.579 246.124 923.579 247.532 923.447 249.205C923.359 250.877 923.271 252.33 923.095 253.606H817.33V233.888H907.426L895.542 240.05C895.718 232.92 894.222 226.537 891.141 220.904C888.06 215.27 883.791 210.913 878.421 207.832C873.051 204.751 866.669 203.21 859.407 203.21C852.145 203.21 845.895 204.751 840.261 207.832C834.627 210.913 830.314 215.314 827.321 221.036C824.328 226.758 822.787 233.316 822.787 240.754V245.507C822.787 253.122 824.504 259.856 827.893 265.71C831.282 271.564 836.168 276.141 842.506 279.354C848.844 282.611 856.194 284.24 864.601 284.24C871.731 284.24 878.157 283.051 883.835 280.675C889.556 278.298 894.618 274.821 899.063 270.199L915.216 288.729C909.363 295.375 902.1 300.481 893.474 303.958C884.847 307.435 874.988 309.196 863.896 309.196V309.24Z" fill="white"/>
|
|
||||||
<path d="M936.82 307.565V180.629H965.121V215.576L961.776 205.365C965.429 196.826 971.371 190.268 979.602 185.778C987.833 181.245 997.912 179 1009.8 179V207.301C1008.7 207.125 1007.59 207.037 1006.45 206.949C1005.35 206.861 1004.29 206.817 1003.37 206.817C991.97 206.817 982.947 210.074 976.257 216.544C969.611 223.058 966.266 232.961 966.266 246.253V307.565H936.776H936.82Z" fill="white"/>
|
|
||||||
<path d="M1065.64 205.366V181.599H1150.24V205.366H1065.64ZM1086.55 307.567V173.764C1086.55 160.296 1090.47 149.557 1098.3 141.546C1106.14 133.536 1117.36 129.53 1131.93 129.53C1137.17 129.53 1142.1 130.102 1146.81 131.203C1151.47 132.303 1155.39 134.064 1158.56 136.44L1150.24 158.535C1148.17 157.127 1145.7 155.939 1142.89 154.97C1140.03 154.002 1137.12 153.562 1134.09 153.562C1127.92 153.562 1123.21 155.278 1120.04 158.668C1116.88 162.057 1115.29 167.118 1115.29 173.764V188.509L1116 201.581V307.567H1086.51H1086.55ZM1186.15 159.724C1180.61 159.724 1176.07 157.963 1172.51 154.486C1168.94 151.009 1167.18 146.74 1167.18 141.634C1167.18 136.881 1168.94 132.743 1172.51 129.266C1176.07 125.789 1180.61 124.029 1186.15 124.029C1191.7 124.029 1196.23 125.657 1199.84 128.914C1203.41 132.171 1205.17 136.308 1205.17 141.37C1205.17 146.432 1203.41 150.745 1199.93 154.31C1196.45 157.875 1191.83 159.68 1186.15 159.68V159.724ZM1171.41 307.567V180.63H1200.9V307.567H1171.41Z" fill="white"/>
|
|
||||||
<path d="M1045.11 302.68L1033.31 283.181C1032.43 281.773 1030.89 280.893 1029.26 280.893H1029.18C1027.5 280.893 1025.92 281.861 1025.08 283.357L1014.12 303.164C1012.63 305.893 1012.63 309.194 1014.12 311.923L1025.13 331.773C1025.96 333.269 1027.5 334.194 1029.22 334.238H1029.26C1030.94 334.238 1032.52 333.357 1033.36 331.905L1045.11 312.011C1046.83 309.15 1046.78 305.584 1045.11 302.724V302.68Z" fill="white"/>
|
|
||||||
</g>
|
|
||||||
<defs>
|
|
||||||
<clipPath id="clip0_20870_19126">
|
|
||||||
<rect width="1281.44" height="441.386" fill="white"/>
|
|
||||||
</clipPath>
|
|
||||||
</defs>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.5 KiB |
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg id="Symbol" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 250.5 250.5">
|
|
||||||
<defs>
|
|
||||||
<style>
|
|
||||||
.cls-1 {
|
|
||||||
fill: #fff;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</defs>
|
|
||||||
<path class="cls-1" d="M125.25,57c37.6934341,0,68.25,30.5565659,68.25,68.25s-30.5565659,68.25-68.25,68.25-68.25-30.5565659-68.25-68.25,30.5565659-68.25,68.25-68.25ZM117.1391682,139.9576782c2.9369614-2.3221859,5.003054-5.8225662,6.1982731-10.501136.7172108-2.8687141,1.3318474-5.8227001,1.8441776-8.8619728.1706924-1.0927788.2561031-1.9978405.2561031-2.7149174,0-2.390572-.597612-4.4395012-1.79296-6.1470505-1.195224-1.7417423-2.8343922-3.0394016-4.9175144-3.8931118-2.0832462-.8878983-4.4394962-1.3318474-7.0691368-1.3318474-9.6644604,0-15.6578505,4.6955994-17.9800413,14.086927-.8195196,3.4491627-1.4513197,6.4031487-1.8952688,8.8619728-.1708214,1.0927788-.2561007,2.0148701-.2561007,2.76614,0,3.5857861,1.2806297,6.351926,3.8418892,8.29842,2.5953211,1.9124298,5.925009,2.8685753,9.9888132,2.8685753,4.9176384,0,8.8449383-1.1439964,11.7817657-3.4319992ZM101.1569698,131.3005909c0-.7512699.0682522-1.4684807.2048805-2.1515034.6147705-3.3125294,1.2294121-6.1128574,1.8441776-8.4008553.5804535-2.3221909,1.5367329-4.0467747,2.8685802-5.1737415,1.3660404-1.1269718,3.0052135-1.6903908,4.9176434-1.6903908,3.2442772,0,4.8662868,1.5537624,4.8662868,4.6614113,0,.7512699-.0682472,1.4855103-.2048805,2.202721-.4097561,2.3904381-1.0073681,5.1907661-1.7928261,8.4008553-.5805824,2.3223248-1.5538914,4.0469036-2.9198029,5.1737415-1.3318474,1.1269718-2.9539909,1.6905197-4.8664207,1.6905197-3.2784702,0-4.9176384-1.5709209-4.9176384-4.7127579ZM134.75625,142.8774811c.3415089,0,.6659882-.1194748.9733089-.3585434s.4951717-.5463844.563419-.9220863l2.3563839-11.2183517h6.9154789c4.4735603,0,7.9911041-.9391209,10.5523636-2.8173576,2.5954475-1.8782417,4.3200264-4.7810101,5.1737366-8.7083099.2048805-.9219624.3073158-1.8098606.3073158-2.6636997,0-2.9710205-1.1611549-5.2419937-3.4833458-6.8129147-2.2880028-1.570916-5.3273994-2.3563789-9.118071-2.3563789h-13.6258194c-.3415089,0-.6659882.1196037-.9733089.3585434-.3073208.2390686-.4951717.5465183-.5634239.9220863l-7.0691368,33.2963829c-.0682522.3415039-.0170296.6488297.1536579.9220863.2048805.2390686.4951717.3585434.8708736.3585434h6.9665676ZM140.0324318,123.3094917l1.9466179-9.1692936h6.1470505c1.4001045,0,2.3904381.2731327,2.9710205.8195221.5805824.5123302.8708687,1.2636002.8708687,2.2539387,0,.4439491-.0512177.9562794-.1536629,1.5367329-.3415039,1.4684807-1.0587196,2.5954475-2.1514984,3.3809105-1.0587196.785458-2.3051613,1.1781895-3.739444,1.1781895h-5.8909523Z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.6 KiB |
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg id="Wordmark" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 458.4 160">
|
|
||||||
<!-- Generator: Adobe Illustrator 29.5.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 141) -->
|
|
||||||
<defs>
|
|
||||||
<style>
|
|
||||||
.st0 {
|
|
||||||
fill: #fff;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</defs>
|
|
||||||
<path class="st0" d="M49.4,52.25c-3.4-1.44-7.25-2.15-11.54-2.15-15.78,0-25.56,7.59-29.35,22.78-1.34,5.58-2.37,10.35-3.09,14.33-.28,1.77-.42,3.26-.42,4.47,0,5.8,2.09,10.27,6.27,13.42,4.24,3.09,9.67,4.64,16.3,4.64,8.03,0,14.44-1.85,19.23-5.55,4.79-3.76,8.17-9.42,10.12-16.98,1.17-4.64,2.17-9.42,3.01-14.33.28-1.77.42-3.23.42-4.39,0-3.87-.97-7.18-2.93-9.94-1.95-2.82-4.63-4.91-8.03-6.3ZM44.38,73.12c-.67,3.87-1.64,8.39-2.93,13.58-.95,3.75-2.54,6.54-4.77,8.37-2.17,1.82-4.82,2.73-7.94,2.73-5.35,0-8.03-2.54-8.03-7.62,0-1.21.11-2.37.33-3.48,1-5.36,2.01-9.88,3.01-13.58.95-3.76,2.51-6.54,4.68-8.37,2.23-1.82,4.9-2.73,8.03-2.73,5.3,0,7.94,2.51,7.94,7.54,0,1.21-.11,2.4-.33,3.56ZM118.34,54.73c-3.73-2.54-8.7-3.81-14.88-3.81h-22.24c-.56,0-1.09.19-1.59.58-.5.39-.81.88-.92,1.49l-11.54,53.84c-.11.55-.03,1.05.25,1.49.33.39.81.58,1.42.58h11.37c.56,0,1.09-.19,1.59-.58.5-.39.81-.88.92-1.49l3.85-18.14h11.29c7.3,0,13.04-1.52,17.22-4.56,4.24-3.04,7.05-7.73,8.45-14.08.33-1.49.5-2.93.5-4.31,0-4.8-1.9-8.48-5.69-11.02ZM108.05,69.89c-.56,2.37-1.73,4.2-3.51,5.47-1.73,1.27-3.76,1.91-6.1,1.91h-9.62l3.18-14.83h10.03c2.28,0,3.9.44,4.85,1.33.95.83,1.42,2.04,1.42,3.64,0,.72-.08,1.55-.25,2.49h0ZM184.67,51.5c.22.33.33.66.33.99,0,.17-.03.33-.08.5l-1.92,8.86c-.11.61-.42,1.1-.92,1.49-.45.39-.98.58-1.59.58h-14.8l-9.28,42.91c-.11.61-.42,1.1-.92,1.49-.5.39-1.03.58-1.59.58h-11.04c-.61,0-1.09-.19-1.42-.58-.33-.44-.45-.94-.33-1.49l9.28-42.91h-14.88c-.61,0-1.09-.19-1.42-.58-.28-.44-.36-.94-.25-1.49l1.92-8.86c.11-.61.42-1.1.92-1.49.5-.39,1.03-.58,1.59-.58h44.98c.61,0,1.09.19,1.42.58h0ZM212.22,51.5c.22.33.33.66.33.99,0,.17-.03.33-.08.5l-11.54,53.84c-.11.61-.42,1.1-.92,1.49-.5.39-1.03.58-1.59.58h-11.29c-.61,0-1.09-.19-1.42-.58-.33-.44-.45-.94-.33-1.49l11.62-53.84c.11-.61.42-1.1.92-1.49.5-.39,1.03-.58,1.59-.58h11.29c.61,0,1.09.19,1.42.58ZM286.12,51.5c.22.33.33.66.33.99,0,.17-.03.33-.08.5l-11.54,53.84c-.11.61-.42,1.1-.92,1.49-.5.39-1.03.58-1.59.58h-10.12c-.61,0-1.09-.19-1.42-.58-.28-.44-.36-.94-.25-1.49l6.52-30.57-12.79,16.81c-.56.61-1.09,1.08-1.59,1.41s-1.09.5-1.76.5h-4.35c-1.17,0-1.98-.63-2.42-1.91l-5.94-17.56-6.69,31.31c-.11.61-.42,1.1-.92,1.49-.5.39-1.03.58-1.59.58h-10.03c-.61,0-1.09-.19-1.42-.58-.33-.39-.45-.88-.33-1.49l11.54-53.84c.11-.61.42-1.1.92-1.49.5-.39,1.06-.58,1.67-.58h9.03c1.34,0,2.2.61,2.59,1.82l9.11,26.09,20.32-26.09c.28-.44.67-.86,1.17-1.24.56-.39,1.23-.58,2.01-.58h9.11c.61,0,1.09.19,1.42.58h0ZM317.86,51.5c.23.33.34.66.34.99,0,.17-.03.33-.08.5l-11.54,53.84c-.11.61-.42,1.1-.92,1.49-.5.39-1.03.58-1.59.58h-11.29c-.61,0-1.09-.19-1.42-.58-.33-.44-.45-.94-.33-1.49l11.62-53.84c.11-.61.42-1.1.92-1.49.5-.39,1.03-.58,1.59-.58h11.29c.61,0,1.09.19,1.42.58ZM373.95,58.05c1.84,2.26,2.76,4.53,2.76,6.79,0,.66-.03,1.13-.08,1.41-.11.5-.36.91-.75,1.24-.34.33-.75.5-1.26.5h-11.2c-1.23,0-2.06-.47-2.51-1.41-.06-1.27-.73-2.35-2.01-3.23-1.28-.88-2.95-1.33-5.01-1.33-2.45,0-4.49.44-6.11,1.33-1.56.88-2.53,2.18-2.92,3.89-.06.28-.08.64-.08,1.08,0,1.33.78,2.43,2.34,3.31,1.62.83,4.43,1.68,8.44,2.57,6.24,1.21,10.78,2.95,13.63,5.22,2.9,2.26,4.35,5.27,4.35,9.03,0,1.27-.17,2.65-.5,4.14-1.23,5.63-4.21,9.91-8.95,12.84-4.68,2.87-10.95,4.31-18.81,4.31-4.91,0-9.11-.66-12.63-1.99-3.46-1.33-6.08-3.09-7.86-5.3-1.73-2.21-2.59-4.67-2.59-7.37,0-.44.06-1.1.17-1.99.11-.5.33-.91.67-1.24.39-.33.84-.5,1.34-.5h10.7c.67,0,1.17.11,1.51.33.39.22.78.61,1.17,1.16.39,1.44,1.28,2.62,2.68,3.56,1.45.94,3.43,1.41,5.94,1.41,3.18,0,5.74-.5,7.69-1.49,1.95-.99,3.12-2.35,3.51-4.06.06-.22.08-.55.08-.99,0-1.38-.87-2.46-2.59-3.23-1.73-.83-4.91-1.79-9.53-2.9-5.41-1.16-9.5-2.9-12.29-5.22-2.79-2.37-4.18-5.47-4.18-9.28,0-1.33.17-2.68.5-4.06,1.12-5.14,3.87-9.17,8.28-12.09,4.46-2.93,10.2-4.39,17.23-4.39,4.23,0,8,.75,11.29,2.24,3.29,1.49,5.82,3.4,7.61,5.72h0ZM452.1,52.5c0,.17-.03.33-.08.5l-11.54,53.84c-.11.61-.42,1.1-.92,1.49-.5.39-1.03.58-1.59.58h-10.12c-.61,0-1.09-.19-1.42-.58-.28-.44-.36-.94-.25-1.49l6.52-30.57-12.79,16.81c-.56.61-1.09,1.08-1.59,1.41-.5.33-1.09.5-1.76.5h-4.35c-1.17,0-1.98-.63-2.42-1.91l-5.94-17.56-6.69,31.31c-.11.61-.42,1.1-.92,1.49-.5.39-1.03.58-1.59.58h-10.03c-.61,0-1.09-.19-1.42-.58-.34-.39-.45-.88-.34-1.49l11.54-53.84c.11-.61.42-1.1.92-1.49.5-.39,1.06-.58,1.67-.58h9.03c1.34,0,2.2.61,2.59,1.82l9.11,26.09,20.32-26.09c.28-.44.67-.86,1.17-1.24.56-.39,1.23-.58,2.01-.58h9.11c.61,0,1.09.19,1.42.58.22.33.34.66.34.99h0Z"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.5 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.0 KiB |
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
|
@ -10,7 +10,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
initializeCompaniesCarousel();
|
initializeCompaniesCarousel();
|
||||||
// TODO: useful for news article carousel
|
// TODO: useful for news article carousel
|
||||||
// fetch('../assets/js/carousel-items.json')
|
// fetch('../assets/js/carousel-items.json')
|
||||||
// .then(response => response.json())
|
// .then(response => response.json())
|
||||||
|
@ -19,8 +19,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||||
// initializeCarousel();
|
// initializeCarousel();
|
||||||
// })
|
// })
|
||||||
// .catch(error => console.error('Error loading JSON:', error));
|
// .catch(error => console.error('Error loading JSON:', error));
|
||||||
}
|
});
|
||||||
);
|
|
||||||
|
|
||||||
function createCarouselItems(items) {
|
function createCarouselItems(items) {
|
||||||
const carousel = document.querySelector('#carousel');
|
const carousel = document.querySelector('#carousel');
|
||||||
|
@ -88,74 +87,3 @@ function initializeCompaniesCarousel() {
|
||||||
requestAnimationFrame(animate);
|
requestAnimationFrame(animate);
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
|
||||||
const footer = document.querySelector('footer');
|
|
||||||
const path = window.location.pathname;
|
|
||||||
|
|
||||||
if (!footer) return;
|
|
||||||
|
|
||||||
const borderStyles = {
|
|
||||||
'/software.html': '2px solid var(--light-teal)',
|
|
||||||
'/blog.html': '2px solid var(--pink)',
|
|
||||||
};
|
|
||||||
|
|
||||||
if (path.startsWith('/blog/') && path !== '/blog.html') {
|
|
||||||
footer.style.borderTop = '2px solid var(--pink)';
|
|
||||||
} else if (borderStyles[path]) {
|
|
||||||
footer.style.borderTop = borderStyles[path];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (borderStyles[path]) {
|
|
||||||
footer.style.borderTop = borderStyles[path];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set hover color
|
|
||||||
const hoverColors = {
|
|
||||||
'/software.html': 'var(--light-teal)',
|
|
||||||
'/blog.html': 'var(--pink)',
|
|
||||||
};
|
|
||||||
|
|
||||||
let hoverColor = hoverColors[path];
|
|
||||||
|
|
||||||
if (path.startsWith('/blog/') && path !== '/blog.html') {
|
|
||||||
hoverColor = 'var(--pink)';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hoverColor) {
|
|
||||||
const style = document.createElement('style');
|
|
||||||
style.innerHTML = `
|
|
||||||
.footer-links a:hover {
|
|
||||||
color: ${hoverColor};
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
document.head.appendChild(style);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', function () {
|
|
||||||
const path = window.location.pathname;
|
|
||||||
const workButton = document.querySelector('.work-button');
|
|
||||||
|
|
||||||
if (!workButton) return;
|
|
||||||
|
|
||||||
let hoverColor;
|
|
||||||
|
|
||||||
if (path === '/software.html') {
|
|
||||||
hoverColor = 'var(--light-teal)';
|
|
||||||
} else if (path === '/blog.html' || (path.startsWith('/blog/') && path !== '/blog.html')) {
|
|
||||||
hoverColor = 'var(--pink)';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hoverColor) {
|
|
||||||
const style = document.createElement('style');
|
|
||||||
style.innerHTML = `
|
|
||||||
a.mega-inverted.button.work-button:hover {
|
|
||||||
background-color: ${hoverColor} !important;
|
|
||||||
color: white; !important;
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
document.head.appendChild(style);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue