diff --git a/public/events/masonry/1.webp b/public/events/masonry/1.webp deleted file mode 100644 index a8a1e92..0000000 Binary files a/public/events/masonry/1.webp and /dev/null differ diff --git a/public/events/masonry/2.webp b/public/events/masonry/2.webp deleted file mode 100644 index 67711fb..0000000 Binary files a/public/events/masonry/2.webp and /dev/null differ diff --git a/public/events/masonry/3.webp b/public/events/masonry/3.webp deleted file mode 100644 index c711b96..0000000 Binary files a/public/events/masonry/3.webp and /dev/null differ diff --git a/public/events/masonry/4.webp b/public/events/masonry/4.webp deleted file mode 100644 index 5a26a3e..0000000 Binary files a/public/events/masonry/4.webp and /dev/null differ diff --git a/public/events/masonry/5.webp b/public/events/masonry/5.webp deleted file mode 100644 index 25ba17b..0000000 Binary files a/public/events/masonry/5.webp and /dev/null differ diff --git a/public/events/masonry/6.webp b/public/events/masonry/6.webp deleted file mode 100644 index c516f03..0000000 Binary files a/public/events/masonry/6.webp and /dev/null differ diff --git a/public/events/masonry/7.webp b/public/events/masonry/7.webp deleted file mode 100644 index 56c798b..0000000 Binary files a/public/events/masonry/7.webp and /dev/null differ diff --git a/public/events/masonry/8.webp b/public/events/masonry/8.webp deleted file mode 100644 index bc40740..0000000 Binary files a/public/events/masonry/8.webp and /dev/null differ diff --git a/public/events/masonry/9.webp b/public/events/masonry/9.webp deleted file mode 100644 index e8c39a2..0000000 Binary files a/public/events/masonry/9.webp and /dev/null differ diff --git a/public/hp-bg-redesign.webp b/public/hp-bg-redesign.webp deleted file mode 100644 index 0d0b6de..0000000 Binary files a/public/hp-bg-redesign.webp and /dev/null differ diff --git a/public/icons/signal.svg b/public/icons/signal.svg deleted file mode 100644 index cc07d87..0000000 --- a/public/icons/signal.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/public/review.png b/public/review.png deleted file mode 100644 index 41954b9..0000000 Binary files a/public/review.png and /dev/null differ diff --git a/public/scripts/text-scramble.js b/public/scripts/text-scramble.js deleted file mode 100644 index 0cbf305..0000000 --- a/public/scripts/text-scramble.js +++ /dev/null @@ -1,99 +0,0 @@ -function applyScrambleEffect() { - const glitchTextElements = document.querySelectorAll('.glitch-text'); - const glitchTextHoverElements = document.querySelectorAll('.glitch-text-hover'); - - function animateScramble(element, text, duration = 2000) { - const chars = []; - element.innerHTML = ''; // Clear the original text - - // Measure the element's width before animation starts - const preScrambleWidth = element.offsetWidth; - element.style.width = `${preScrambleWidth}px`; - - for (let t = 0; t < text.length; t++) { - const span = document.createElement('span'); - - // Check if the character is a space, then use   to preserve it - span.innerHTML = text[t] === ' ' ? ' ' : text[t]; - chars[t] = span; - span.style.display = 'inline-block'; - element.appendChild(span); - } - - const rand = Math.random; - const SECONDS = 1000; - const FPS = 30; - const animationLength = duration; - - function animate3(k) { - const kk = k * text.length; - for (let i = 0; i < text.length; i++) { - if (kk < i) { - chars[i].innerHTML = String.fromCharCode(~~(65 + rand() * 26)); - } else { - // Preserve spaces with   - chars[i].innerHTML = text[i] === ' ' ? ' ' : text[i]; - } - } - } - - // Animation loop - let start = Date.now(); - function animate() { - const current = Date.now(); - const time = current - start; - const k = time / animationLength; - - if (k < 1) { - setTimeout(animate, SECONDS / FPS); - animate3(k); - } else { - // Ensure the final text is revealed once the animation is complete - for (let i = 0; i < text.length; i++) { - chars[i].innerHTML = text[i] === ' ' ? ' ' : text[i]; - } - // Restore the original width (optional if you want to revert to normal) - element.style.width = 'auto'; - // Allow new hover events after the animation completes - element.isAnimating = false; - } - } - - animate(); - } - - // Use Intersection Observer to observe when the element comes into view - const observer = new IntersectionObserver((entries, observer) => { - entries.forEach(entry => { - if (entry.isIntersecting) { - const element = entry.target; - const text = element.innerText; - animateScramble(element, text); - observer.unobserve(element); // Stop observing after the animation has been triggered - } - }); - }, { - threshold: 0.1 // Trigger when 10% of the element is visible - }); - - // Observe each glitchTextElement for when it comes into view - glitchTextElements.forEach((element) => { - observer.observe(element); - }); - - glitchTextHoverElements.forEach((element) => { - const text = element.innerText; - - element.isAnimating = false; - - element.addEventListener('mouseenter', () => { - if (!element.isAnimating) { - element.isAnimating = true; // Set flag to prevent re-triggering during animation - animateScramble(element, text, 800); - } - }); - }); - } - - document.addEventListener('DOMContentLoaded', applyScrambleEffect); - \ No newline at end of file diff --git a/src/components/AboutFooter.astro b/src/components/AboutFooter.astro index 6e85303..199f1f9 100644 --- a/src/components/AboutFooter.astro +++ b/src/components/AboutFooter.astro @@ -2,147 +2,114 @@ import * as config from "../config.yaml"; import core from "../core.json"; import contributors from "../contributors.json"; -import SpeakerGrid from "./SpeakerGrid.astro"; -import SliderTestimonial from "./SliderTestimonial.astro"; -import MembersGrid from "./MembersGrid.astro"; +import { getPersonByGH } from "../lib/core.js"; +import PeopleCarousel from "../components/PeopleCarousel.astro"; -// Accept sectionsConfig as a prop -const { - sectionsConfig = [ - { name: "community", visible: true, order: 1 }, - { name: "socialLinks", visible: true, order: 2 }, - { name: "speakers", visible: true, order: 3 }, - { name: "core contributors", visible: true, order: 4 }, - { name: "contributors", visible: true, order: 5 }, - { name: "testimonials", visible: true, order: 6 }, - { name: "membersGrid", visible: true, order: 7 }, - { name: "communityPartners", visible: true, order: 8 }, - ], -} = Astro.props; +function findPerson(src) { + const p = core.people.find((p) => + src.refs?.twitter + ? p.refs?.twitter === src.refs.twitter + : src.refs?.bsky + ? p.refs.bsky === src.refs.bsky + : {} + ); + if (p) { + p.ct = src; + } + return p; +} -console.log(sectionsConfig); -// Function to sort sections by order -const sortedSections = sectionsConfig - .filter((section) => section.visible) - .sort((a, b) => a.order - b.order); +function personLink(person) { + return person.refs?.twitter + ? `https://twitter.com/${person.refs.twitter}` + : person.refs?.bsky + ? `https://bsky.app/profile/${person.refs.bsky}` + : "#"; +} --- -{ - sortedSections.map((section) => ( -
- {section.name === "community" && ( -
-

- - Join the Community + +
+

+ Join the Community +

+
{config.landing.community}
+ +

Speakers

+
+ { + core.people + .filter((p) => !core.teams["core-team"].includes(p.id)) + .filter((p) => p.imageUrl) + .map((person) => ( +
+ + + +
+ )) + } +
+ + + +

Git Contributors

+
+ { + // filter(p => !core.teams['core-team'].includes(getPersonByGH(p.login)?.id)) + contributors.items.map((contrib) => ( +
+ + + +
+ )) + } +
+ + +
diff --git a/src/components/AboutItemGrid.astro b/src/components/AboutItemGrid.astro index 6cb53b6..14cb84c 100644 --- a/src/components/AboutItemGrid.astro +++ b/src/components/AboutItemGrid.astro @@ -2,137 +2,236 @@ import AboutItem from "../components/AboutItem.astro"; --- - -
-
-

- We cultivate and foster a culture of privacy in web3 making data free - and public. -

-

- Check our annual reports, infographics, privacy awards, newsletter, and - guidelines. -

- +
+ +
+
+ General public + Projects + Startupers +
+
+ Developers + Audit companies + Investors +
-
- - -

- By developing free and open tools,
we empower people to make informed - decisions: -

- -
-
-
-
- + + +
+
+ +
+ + Market stats + + + + Like Crunchbase, but free forever +
-
-
- PRIVACY EXPLORER -
- + +
+ +
+ + Privacy Ranking + + + + Scoring and review of current privacy projects + +
+
+
+ +
+ + Academy + + + Education for general public how to reach privacy + +
+
+
+ +
+ + Research + + + + Anual reports, Frameworks, Tools, Books + +
+
+
+ +
+ + Data + + + For Projects, Use-case list, Market & Funding info
- -
-
-
- + + +
+
+ +
+ + Advocacy + + + + Branding “decentralization = privacy” +
-
-
- - HACKATHON IDEA GENERATOR - -
- Helps developers build applications that address real-world - problems, that people will actually use. +
+ +
+ +
+ + Events + + + + Meetups, Summits, Hackathons, Camps + +
+
+
+ +
+ + Ecosystems collaboration + + + Networks, Alliances, Media +
+
+
+ +
+ + Standartisation + + + + Privacy-features, security audit (example) + +
+
+
+ +
+ + Incubation + + + Product managers facilitation, Business sustainability
-
-
-
- -
-
-
- WEEK IN PRIVACY -
- Weekly newsletter with round-up of the most important news - happening around privacy in Web3 + + +
+
+
+ + GENERAL PUBLIC +
    +
  • Milions of educated users
  • +
  • Higher privacy culture
  • +
+
+
+ + PROJECTS + +
    +
  • Better privacy features
  • +
  • New use-cases
  • +
  • Efficient demos
  • +
+
+
+ + SECURITY AUDIT COMPANIES + +
    +
  • New “privacy audit” category
  • +
  • Significant growth of audited projects.
  • +
+
+
+
+
+ + DEVELOPERS + +
    +
  • More devs building privacy
  • +
  • More sustainable projects.
  • +
+
+
+ + STARTUPERS + +
    +
  • More privacy-oriented projects
  • +
  • Longer runway
  • +
-
- - - - - -
-
-

- We make privacy accessible for everyone, empowering people to learn and - implement best practices effectively. -

-

- From mentoring at hackathons, guidelines for developers, and the - Cypherpunk Academy - we offer training, incubation, and acceleration - programs. -

- -
-
-
+ +
diff --git a/src/components/EventMasonry.astro b/src/components/EventMasonry.astro deleted file mode 100644 index bc32b33..0000000 --- a/src/components/EventMasonry.astro +++ /dev/null @@ -1,29 +0,0 @@ ---- -const { - images = [ - "/events/masonry/1.webp", - "/events/masonry/2.webp", - "/events/masonry/3.webp", - "/events/masonry/4.webp", - "/events/masonry/5.webp", - "/events/masonry/6.webp", - "/events/masonry/7.webp", - "/events/masonry/8.webp", - "/events/masonry/9.webp", - ], -} = Astro.props; ---- - -
- { - images.map((image, index) => ( -
- {`Image -
- )) - } -
diff --git a/src/components/MembersGrid.astro b/src/components/MembersGrid.astro deleted file mode 100644 index 5a00a57..0000000 --- a/src/components/MembersGrid.astro +++ /dev/null @@ -1,129 +0,0 @@ ---- -const { people, team } = Astro.props; -// Dummy data for now: -let filteredPeople = [ - { - id: "guy-zyskind", - name: "Guy Zyskind", - caption: - "Founder of [Secret Network](https://scrt.network/), CEO [SCRT Labs](https://www.scrtlabs.com/)", - country: "is", - refs: { - twitter: "GuyZys", - }, - imageUrl: "https://data.web3privacy.info/img/people/guy-zyskind.jpg", - thumbs: { - "64": "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-64px.webp", - "128": - "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-128px.webp", - "400": - "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-400px.webp", - }, - }, - { - id: "guy-zyskind", - name: "Guy Zyskind", - caption: - "Founder of [Secret Network](https://scrt.network/), CEO [SCRT Labs](https://www.scrtlabs.com/)", - country: "is", - refs: { - twitter: "GuyZys", - }, - imageUrl: "https://data.web3privacy.info/img/people/guy-zyskind.jpg", - thumbs: { - "64": "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-64px.webp", - "128": - "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-128px.webp", - "400": - "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-400px.webp", - }, - }, - { - id: "guy-zyskind", - name: "Guy Zyskind", - caption: - "Founder of [Secret Network](https://scrt.network/), CEO [SCRT Labs](https://www.scrtlabs.com/)", - country: "is", - refs: { - twitter: "GuyZys", - }, - imageUrl: "https://data.web3privacy.info/img/people/guy-zyskind.jpg", - thumbs: { - "64": "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-64px.webp", - "128": - "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-128px.webp", - "400": - "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-400px.webp", - }, - }, - { - id: "guy-zyskind", - name: "Guy Zyskind", - caption: - "Founder of [Secret Network](https://scrt.network/), CEO [SCRT Labs](https://www.scrtlabs.com/)", - country: "is", - refs: { - twitter: "GuyZys", - }, - imageUrl: "https://data.web3privacy.info/img/people/guy-zyskind.jpg", - thumbs: { - "64": "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-64px.webp", - "128": - "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-128px.webp", - "400": - "https://data.web3privacy.info/img/people/thumbs/guy-zyskind-400px.webp", - }, - }, -]; - -// NOTE: Uncomment this if you want to filter people dynamically based upon a specific parameter - -// const filteredPeople = people -// .filter((p) => !team.includes(p.id)) -// .filter((p) => p.imageUrl); - -// Limit the number of members to 12 (2 rows with a max of 6 columns each) -const limitedPeople = filteredPeople.slice(0, 12); - -function personLink(person) { - return person.refs?.twitter - ? `https://twitter.com/${person.refs.twitter}` - : person.refs?.bsky - ? `https://bsky.app/profile/${person.refs.bsky}` - : "#"; -} - -function truncateCaption(caption) { - if (!caption) return ""; - const words = caption.split(" "); - if (words.length > 10) { - return words.slice(0, 20).join(" ") + "..."; - } - return caption; -} ---- - -
- { - limitedPeople.map((person) => ( -
- - {person.name} - -
-

{person.name}

- {person.refs && person.refs.twitter && ( -

@{person.refs.twitter}

- )} - {/*

{truncateCaption(person.caption)}

*/} -
-
- )) - } -
diff --git a/src/components/MembershipOtherOptionsWidget.astro b/src/components/MembershipOtherOptionsWidget.astro deleted file mode 100644 index a39ca9e..0000000 --- a/src/components/MembershipOtherOptionsWidget.astro +++ /dev/null @@ -1,123 +0,0 @@ -
-
-
-

SPONSORSHIP

-
-
-
-
-
-

- Members are our chosen collaborators for mutual support and - growth. Rather than one-time deals for individual events or - projects, we strive for consistent collaboration to achieve - lasting impact. -

- - Become an integral part of our community! Join us with building - privacy platform we all need. - -
-
- 2024 -
    -
  • - Privacy
  • -
  • Scaling
  • -
  • Exploration
  • -
  • Ethereum
  • -
  • Foundation
  • -
  • Railgun
  • -
  • Payy
  • - - -
-
- - -
-
-
-
-
-
-
-

DONATE

-
-
-
-
-
-

- Members are our chosen collaborators for mutual support and - growth. Rather than one-time deals for individual events or - projects, we strive for consistent collaboration to achieve - lasting impact. -

-

- Support our independence, help us to advocate for freedom -

-
- -
-
-
-
-
-
-

- SPEAK at our events -

-
-
-
-
-
-

- At Web3Privacy Now, we are dedicated to fostering growth, - innovation, and collaboration. We offer a supportive environment - where like-minded individuals come together to share knowledge, - spark creativity, and drive positive change. -

-
-
- -
-
-
-
-
diff --git a/src/components/MembershipWidget.astro b/src/components/MembershipWidget.astro deleted file mode 100644 index 40a265d..0000000 --- a/src/components/MembershipWidget.astro +++ /dev/null @@ -1,152 +0,0 @@ ---- -import core from "../core.json"; ---- - -
-
-
-

INDIVIDUAL

-
-
-
-
-
-

- Members are our chosen collaborators for mutual support and - growth. Rather than one-time deals for individual events or - projects, we strive for consistent collaboration to achieve - lasting impact. -

- - Become an integral part of our community! Join us with building - privacy platform we all need. - -
-
- - Benefits - -
    -
  • You are supporting a good thing!
  • -
  • Guaranteed access to all our events
  • -
  • Swag Privacy Pack
  • -
  • Deals from our partners
  • -
  • Voting rights in our association
  • -
-
-
-
- Price - - €100 / Year - - -

- After making your donation, kindly send us the tx hash, your - T-shirt size, and let us know if you would like your membership - to be public or kept private. -

-
- -
-
-
-
-
-
-
-

INDIVIDUAL

-
-
-
-
-
-

- Members are our chosen collaborators for mutual support and - growth. Rather than one-time deals for individual events or - projects, we strive for consistent collaboration to achieve - lasting impact. -

-
-
- - Benefits - -
    -
  • - Greater Exposure -

    - Ensure visibility at all our events [Congresses, Summits & - Hackathons] -

    -
  • -
  • - Access to Talent - -

    Grow impact through strategic, targeted communications.

    -
  • -
  • - Tought Leadership - -

    Participate in speaking engagements and mentorship roles.

    -
  • -
  • - - Deals from our partners - - -

    More details about the deals from our partners.

    -
  • -
  • - Focused Engagement -

    - Reach and interact with specific, highly-relevant audiences. -

    -
  • -
-
-
-
-
- Our membership has multiple tiers ranging from - - 7,000 to 70,000 € / year - - -

- After making your donation, kindly send us the tx hash, your - T-shirt size, and let us know if you would like your - membership to be public or kept private. -

-
- -
-
-
-
-
- -
-
diff --git a/src/components/SliderTestimonial.astro b/src/components/SliderTestimonial.astro deleted file mode 100644 index 6828b84..0000000 --- a/src/components/SliderTestimonial.astro +++ /dev/null @@ -1,176 +0,0 @@ ---- -const testimonials = [ - { - author: "Matteo", - text: `balance between Transparency and Privacy, accountable and unaccountable, manifest and secret, convex and concave, 1 and 0 is one of the most fun puzzles.`, - imageUrl: "/review.png", - }, - { - author: "Jane", - text: `This platform has opened my eyes to the potential of blockchain technology in a way that I never imagined. The community is vibrant and full of innovation.`, - imageUrl: "/review.png", - }, - { - author: "Alex", - text: `It's amazing to see how much transparency can coexist with privacy, and this is the best representation of how it can work. Great work!`, - imageUrl: "/review.png", - }, -]; - -let currentTestimonial = 0; ---- - -
-
-
-
- Review Image -
-
-
-

- {testimonials[currentTestimonial].author}: -

-

- "{testimonials[currentTestimonial].text}" -

-
-
-
- - -
- -
-
- -
- -
- { - testimonials.map((_, index) => ( -
-
-
- - diff --git a/src/components/SpeakerGrid.astro b/src/components/SpeakerGrid.astro deleted file mode 100644 index d8d008e..0000000 --- a/src/components/SpeakerGrid.astro +++ /dev/null @@ -1,49 +0,0 @@ ---- -const { people, team } = Astro.props; - -// Filter the people and limit the results to 12 -const filteredPeople = people - .filter((p) => !team.includes(p.id)) - .filter((p) => p.imageUrl) - .slice(0, 12); // Limit to the first 12 people - -function personLink(person) { - return person.refs?.twitter - ? `https://twitter.com/${person.refs.twitter}` - : person.refs?.bsky - ? `https://bsky.app/profile/${person.refs.bsky}` - : "#"; -} - -function truncateCaption(caption) { - if (!caption) return ""; - const words = caption.split(" "); - if (words.length > 10) { - return words.slice(0, 20).join(" ") + "..."; - } - return caption; -} ---- - -
- {filteredPeople.map((person) => ( -
- - {person.name} - -
-

{person.name}

- {person.refs && person.refs.twitter && ( -

@{person.refs.twitter}

- )} -

{truncateCaption(person.caption)}

-
-
- ))} -
diff --git a/src/config.yaml b/src/config.yaml index 08749e0..b4c2795 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -22,7 +22,7 @@ header: link: news - name: Docs link: docs - - name: Get Involved + - name: Membership link: membership url: /membership #- name: Manifesto diff --git a/src/layouts/base.astro b/src/layouts/base.astro index e1989e5..18c93b3 100644 --- a/src/layouts/base.astro +++ b/src/layouts/base.astro @@ -155,9 +155,7 @@ function genHeading(str) {
{config.hero.text}
@@ -169,6 +167,7 @@ function genHeading(str) { <>
+ {/**/}
                   
                     {genHeading(title)}
@@ -177,7 +176,7 @@ function genHeading(str) {
               
-

{subtext}

+

{subtext}

) @@ -189,79 +188,40 @@ function genHeading(str) {
-
- - -
- -
-
- -
-
-
- { - config.footer.menu.map((item) => ( -
-

- {item.title} -

-
- )) - } -
-
-
- - -
- All rights not reserved, Creative commons 2024 - Web3Privacy z.s. +
+ + +
+
+ { + config.footer.menu.map((item) => ( + +
+
- - - + +
+ diff --git a/src/pages/membership/index.astro b/src/pages/membership/index.astro index 4390e0c..f115973 100644 --- a/src/pages/membership/index.astro +++ b/src/pages/membership/index.astro @@ -1,24 +1,13 @@ --- import BaseLayout from "../../layouts/base.astro"; +import * as config from "../config.yaml"; import core from "../../core.json"; import AboutFooter from "../../components/AboutFooter.astro"; -import MembershipWidget from "../../components/MembershipWidget.astro"; -import contributors from "../../contributors.json"; -import MembershipOtherOptionsWidget from "../../components/MembershipOtherOptionsWidget.astro"; -import MembersGrid from "../../components/MembersGrid.astro"; - -const sectionsConfig = [ - // { name: "membersGrid", visible: true, order: 1 }, - // { name: "socialLinks", visible: true, order: 2 }, - // { name: "testimonials", visible: true, order: 1 }, - // { name: "speakers", visible: true, order: 2 }, - // { name: "contributors", visible: true, order: 3 }, - // { name: "community", visible: false, order: 6 }, -]; +import AboutWidget from "../../components/AboutWidget.astro"; --- @@ -32,115 +21,10 @@ const sectionsConfig = [ part of our ecosystem.

-
- -
-
-
-

- Github Contributors -

-
- -
-

- This is the kind of support we value most: open-source, grassroots - initiatives driven by individual passion and the desire to create - something meaningful. -

-
- -
- - { - contributors.items.map((contrib) => ( -
- - - -
- )) - } -
- +
+
-
-

membership

- -
-
-
-

other ways

- +
- -
-

Members

- -
- -
-

Join the community

-

- We thrive on uniting diverse perspectives, skills, and visions. Both - online and offline, we bring together tech and non-tech individuals, - activists, key players, hackers, lawyers, researchers, philosophers, - policymakers, local communities, and grassroots movements. -

- -
- -
-

Community Partners

- -
- - diff --git a/src/styles/base.css b/src/styles/base.css index 1be2947..2a5ee89 100644 --- a/src/styles/base.css +++ b/src/styles/base.css @@ -28,28 +28,13 @@ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } -/* Add animation */ -.testimonial-fade { - opacity: 0; - transition: opacity 0.2s ease-in-out; -} - -.testimonial-fade.active { - opacity: 1; -} - -.glitch-text { - font-family: Major Mono Display, ui-monospace, SFMono-Regular, Menlo, Monaco, - Consolas, "Liberation Mono", "Courier New", monospace; -} - @tailwind components; @layer components { body, p, div { - @apply text-[#C0C0C0] leading-8; + @apply text-[#909090] leading-8; } h1, h2, h3, h4 { @@ -73,7 +58,7 @@ } #intro { - background-image: url(/hp-bg-redesign.webp); + background-image: url(/hp-bg.webp); background-repeat: repeat; background-color: #0f0f0f; background-position: center;