diff --git a/_includes/companies-carousel.html b/_includes/companies-carousel.html index d04c1d4..bc0f41e 100644 --- a/_includes/companies-carousel.html +++ b/_includes/companies-carousel.html @@ -1,4 +1,4 @@ -
+ + + {%include divider.html %} {% include powered-by.html %} diff --git a/_layouts/services.html b/_layouts/services.html index ea6477c..d74ecf1 100644 --- a/_layouts/services.html +++ b/_layouts/services.html @@ -32,6 +32,8 @@
+ {%include divider.html %} +

our services

@@ -49,7 +51,7 @@
  • Vetting security talent

  • - @@ -62,10 +64,10 @@
  • Secure architecture review
  • Security audits
  • Penetration testing
  • -
  • Secure code review
  • +
  • Smart contract audits

  • - diff --git a/_layouts/software.html b/_layouts/software.html index d43d993..cf0fc11 100644 --- a/_layouts/software.html +++ b/_layouts/software.html @@ -62,7 +62,8 @@
    -

    backlog (fundraising)

    +

    backlog (fundraising)

    +

    backlog

    Bootproof

    Prove what software booted on a system via remote attestation technologies.

    @@ -162,7 +163,7 @@
    -

    ❝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

    +

    ❝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

    @@ -172,7 +173,7 @@

    fund open source development

    Your support funds the tools. Your forks spread the mission. Help us build transparent, verifiable security tools — together.

    Your support funds the tools. Help us build transparent, verifiable security tools — together.

    -
    diff --git a/_layouts/threatmodel.html b/_layouts/threatmodel.html index 0529dc1..eb02193 100644 --- a/_layouts/threatmodel.html +++ b/_layouts/threatmodel.html @@ -8,9 +8,8 @@
    -

    Distrust threat model

    +

    Distrust threat model

    Distrust's threat model aids organizations in methodically eliminating surface area for attack, making entire classes of attacks impossible. -

    Unlike conventional frameworks (e.g., STRIDE, PASTA) that focus on identifying and preventing specific risks, our threat model assumes that at some level systems are already compromised. This pessimistic set of assumptions allows organizations to build systems that can remain secure even when up against their worst case adversary.

    @@ -23,6 +22,8 @@
    +
    +

    Level 1

    @@ -40,6 +41,8 @@
    +
    +

    Level 2

    @@ -60,6 +63,8 @@
    +
    +

    Level 3

    @@ -78,6 +83,8 @@
    +
    +

    Level 4

    @@ -96,7 +103,27 @@
    + +
    + +
    +
    +

    Applying the Threat Model

    +

    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.

    +

    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.

    +
    +
    + + +
    +

    ready to assess your risk?

    +

    We help teams apply the Distrust Threat Model — mapping assets to adversaries and designing systems that stay secure, even when things go wrong.

    +
    + Get in touch +
    +
    + {%- include footer.html -%} diff --git a/_sass/base.scss b/_sass/base.scss index 199c29e..d43474a 100644 --- a/_sass/base.scss +++ b/_sass/base.scss @@ -55,7 +55,7 @@ h2 { } h3 { - font-size: clamp(1.5rem, 10vw, 3.5rem) !important; + font-size: clamp(1.5rem, 10vw, 3.3rem) !important; line-height: 0.9 !important; width: 100% !important; } @@ -89,7 +89,7 @@ h6 { p { //font-size: $base-font-size;// - font-size: clamp(1.25rem, 2.5vw, 1.4rem); + font-size: clamp(1.20rem, 2.5vw, 1.3rem); } p, @@ -139,6 +139,11 @@ a:hover { .hero-p { max-width: 800px; + font-size: clamp(1.25rem, 2.5vw, 1.3rem); +} + +.landing-page-header .hero-p { + font-size: clamp(1.25rem, 2.5vw, 1.4rem); } .hero-header { @@ -267,6 +272,7 @@ h3.gradient-text.center { margin-bottom: 20px; padding: 20px 30px; min-height: 150px; + max-height: 150px; display: flex; justify-content: space-between; flex-direction: column; @@ -347,6 +353,14 @@ h3.gradient-text.center { margin-left: 20px; } +.backlog-mobile { + display: none; +} + +.backlog-desktop { + display: block; +} + .roadmap-title-container { display: flex; } @@ -385,6 +399,13 @@ h3.gradient-text.center { margin-bottom: 1.5rem; } +.divider-line { + border: none; + height: 1px; + background-color: var(--light-grey); + margin: 30px 0 !important; +} + .narrow-list > li > p { margin-top: 0px; } @@ -470,6 +491,20 @@ h3.gradient-text.center { margin-bottom: 50px; } +.flex-container.powered-by { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 1rem; + max-width: 100%; + box-sizing: border-box; + padding: 0 1rem; + } + +.flex-container.powered-by .flex-container-inner { + margin-right: min(1em,8%); +} + .powered-by .card { display: flex; flex-direction: column; @@ -504,7 +539,7 @@ h3.gradient-text.center { .live-tools-cards .card { display: flex; flex-direction: column; - min-height: 360px; + min-height: 330px; padding: 35px; background: none; border: 1px solid var(--light-teal); @@ -735,6 +770,12 @@ h3.gradient-text.center { background-color: var(--pink); } + .threat h4.gradient-text { + font-size: 48px !important; + font-weight: bold !important; + padding-bottom: 7px !important; + margin-top: 6rem !important; + } .button-container.center { display: flex; @@ -1119,8 +1160,10 @@ hr { } .powered-by .card { - min-height: 360px; + min-height: 250px; + padding: min(1.5em, 8%) } + } @media (max-width: 1020px) { @@ -1279,13 +1322,13 @@ hr { } .logo-grid-container { - margin-top: 40px; + margin-top: 20px; } .logo-grid { display: grid; - grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); - gap: 35px 70px; + grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); + gap: 20px 85px; list-style: none; padding: 0; margin: 0; @@ -1297,7 +1340,7 @@ hr { .logo-grid img { max-width: 100%; - max-height: 30px; + max-height: 50px; object-fit: contain; filter: grayscale(100%); transition: filter 0.3s ease; @@ -1433,7 +1476,7 @@ textarea { .form-container { max-width: 700px; margin: auto; - margin-left: 8rem; + margin-left: 9rem; } .form-container.card { @@ -1997,6 +2040,10 @@ pre { margin-top: 80px; } +.mid-tall-section.carousel { + margin: 250px 0px 200px 0px; +} + /** end carousel */ /** @@ -2083,7 +2130,7 @@ pre { } .post a { - color: var(--light-teal); + color: var(--pink); } .post a:hover { @@ -2107,7 +2154,7 @@ pre { .blog-details-read-time { padding: 2px 10px; margin-left: 15px; - color: white; + color: var(--pink); } /** end blog */ @@ -2224,6 +2271,24 @@ pre { } @media (max-width: 1150px) { + + .flex-container-inner.card.roadmap-card.roadmap-card-teal { + min-height: 485px !important; + } + + .backlog-mobile { + display: block; + } + + .backlog-desktop { + display: none; + } + + .mini-card { + padding: 15px 15px; + max-height: 200px; + } + .roadmap-title-container { flex-direction: column; } @@ -2237,6 +2302,10 @@ pre { max-width: 100%; } + .mid-tall-section.carousel { + margin: 90px 0px 100px 0px; + } + footer { padding: 50px 0px 30px 0px; } @@ -2290,9 +2359,19 @@ pre { width: 20px; } + .live-tools-cards .card { + min-height: 350px; + } + } @media (max-width: 1020px) { + + .flex-container.powered-by { + flex-direction: column; + align-items: center; + } + .flex-container-inner { width: 100% !important; min-height: auto; @@ -2350,6 +2429,55 @@ pre { @media (max-width: 850px) { + .hero-header { + padding-bottom: 7px; + margin-bottom: 0px; + } + + .hero-header.landing-header { + padding-bottom: 25px; + font-size: 48px !important; + line-height: 48px !important; + } + + .button-container.threatmodel-cta-bottom { + padding-top: 0 !important; + } + + .button-container.services { + margin-bottom: 2rem; + } + + .capsule-header { + margin-bottom: 80px; + } + + .powered-by .card { + min-width: 0rem; + min-height: 330px; + } + + .flex-container-inner.live-tools, .quote { + margin-bottom: 0; + } + + h4.quote { + margin-bottom: 1rem !important; + } + + + .hero-p.center.live-tools { + max-width: 300px !important; + } + + .who-we-are .gradient-text { + margin-top: 3rem !important; + } + +.flex-container.powered-by .flex-container-inner { + margin-right: 0em; +} + .flex-container.properties .flex-container-inner { max-width: 40%; } @@ -2376,12 +2504,12 @@ pre { .flex-container.properties .flex-container-inner { max-width: 100%; - max-height: 9rem; + max-height: 12rem; } .why-choose-distrust .flex-container.properties .flex-container-inner { max-width: 100%; - padding-bottom: 12rem !important; + padding-bottom: 15rem !important; } .card { @@ -2439,11 +2567,6 @@ pre { min-height: 300px; } - .mini-card { - padding: 20px 20px !important; - filter: brightness(100%) !important; - } - .kanban-column { border: none !important; padding: 0px !important; @@ -2570,7 +2693,7 @@ pre { } .mid-tall-section { - margin: 20px 0px; + margin: 30px 0px; } .about-special { @@ -2578,12 +2701,10 @@ pre { } p { - //font-size: 1.1rem !important;// - margin-bottom: 0px; + margin-bottom: 6px; } h1 { - //font-size: 55px !important;// line-height: 50px !important; } @@ -2617,6 +2738,10 @@ pre { font-size: 1.1rem; } + .hero-p.center.cta { + max-width: 340px !important; + } + .landing-page-header { margin-top: 20vh; margin-bottom: 20vh; diff --git a/assets/base/companies/etherfi_logo-white.svg b/assets/base/companies/etherfi_logo-white.svg new file mode 100644 index 0000000..258b72c --- /dev/null +++ b/assets/base/companies/etherfi_logo-white.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/base/companies/optimism-white-symbol.svg b/assets/base/companies/optimism-white-symbol.svg new file mode 100644 index 0000000..c8a44d3 --- /dev/null +++ b/assets/base/companies/optimism-white-symbol.svg @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/assets/base/companies/optimism-white.svg b/assets/base/companies/optimism-white.svg new file mode 100644 index 0000000..d0c0528 --- /dev/null +++ b/assets/base/companies/optimism-white.svg @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/assets/js/main.js b/assets/js/main.js index 686ea44..3c24c06 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -99,6 +99,13 @@ document.addEventListener('DOMContentLoaded', function () { '/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]; } @@ -109,13 +116,46 @@ document.addEventListener('DOMContentLoaded', function () { '/blog.html': 'var(--pink)', }; - if (hoverColors[path]) { + 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: ${hoverColors[path]}; + color: ${hoverColor}; } `; document.head.appendChild(style); } -}); \ No newline at end of file +}); + +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); + } + }); + \ No newline at end of file