diff --git a/dist/assets/index-CgWb7O_-.js b/dist/assets/index-CgWb7O_-.js new file mode 100644 index 0000000..3604faf --- /dev/null +++ b/dist/assets/index-CgWb7O_-.js @@ -0,0 +1 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();function d(){const t=document.querySelector(".typewriter");if(!t)return;const e=t.getAttribute("data-text");let n=0;t.textContent="",t.style.opacity="1";function r(){n{n.forEach(r=>{r.isIntersecting&&(r.target.classList.add("animate"),e.unobserve(r.target))})},{threshold:.3});t.forEach(n=>e.observe(n))}function f(){const t=document.getElementById("particles");if(!t)return;const e=t.getContext("2d");let n=[],r;function i(){t.width=window.innerWidth,t.height=window.innerHeight}class o{constructor(){this.x=Math.random()*t.width,this.y=Math.random()*t.height,this.vx=(Math.random()-.5)*.3,this.vy=(Math.random()-.5)*.3,this.radius=Math.random()*1.5+.5,this.opacity=Math.random()*.3+.1}update(){this.x+=this.vx,this.y+=this.vy,(this.x<0||this.x>t.width)&&(this.vx*=-1),(this.y<0||this.y>t.height)&&(this.vy*=-1)}draw(){e.beginPath(),e.arc(this.x,this.y,this.radius,0,Math.PI*2),e.fillStyle=`rgba(111, 78, 55, ${this.opacity})`,e.fill()}}function s(){i(),n=[];const c=Math.floor(t.width*t.height/15e3);for(let a=0;a{c.update(),c.draw()}),r=requestAnimationFrame(l)}window.addEventListener("resize",()=>{cancelAnimationFrame(r),s(),l()}),s(),l()}function m(){document.querySelectorAll(".testimonial-card").forEach(e=>{const n=e.querySelector(".testimonial-toggle"),r=e.querySelector(".testimonial-excerpt"),i=e.querySelector(".testimonial-full");!n||!r||!i||n.addEventListener("click",()=>{const o=e.classList.contains("expanded");e.classList.toggle("expanded"),n.textContent=o?"Read More":"Read Less",n.setAttribute("aria-expanded",!o),o?(r.style.display="block",i.style.display="none"):(r.style.display="none",i.style.display="block")})})}document.addEventListener("DOMContentLoaded",()=>{d(),u(),h(),f(),m()}); diff --git a/dist/assets/index-BDKv4rRo.css b/dist/assets/index-DMIaFUaQ.css similarity index 59% rename from dist/assets/index-BDKv4rRo.css rename to dist/assets/index-DMIaFUaQ.css index 4d058ea..1d353fc 100644 --- a/dist/assets/index-BDKv4rRo.css +++ b/dist/assets/index-DMIaFUaQ.css @@ -1 +1 @@ -:root{--color-coffee-dark: #3b2f2f;--color-coffee-medium: #6F4E37;--color-cream: #F5E8C7;--color-gold: #D4A574;--color-teal: #1D7874;--color-orange: #E76F51;--bg-body: var(--color-cream);--text-body: var(--color-coffee-dark);--bg-surface: color-mix(in srgb, var(--color-cream), white 40%);--color-primary: var(--color-teal);--color-secondary: var(--color-gold);--border-subtle: color-mix(in srgb, var(--color-coffee-medium), transparent 85%);--shadow-soft: 0 4px 20px -2px color-mix(in srgb, var(--color-coffee-dark), transparent 90%);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--bs-body-bg: var(--bg-body);--bs-body-color: var(--text-body);--bs-primary: var(--color-primary);--bs-primary-rgb: 42, 157, 143}@media(prefers-color-scheme:dark){:root{--bg-body: var(--color-coffee-dark);--text-body: var(--color-cream);--bg-surface: color-mix(in srgb, var(--color-coffee-dark), black 20%);--border-subtle: color-mix(in srgb, var(--color-cream), transparent 85%);--shadow-soft: 0 4px 20px -2px black;--bs-body-bg: var(--bg-body);--bs-body-color: var(--text-body);--bs-dark: #1f1a17}}body{font-family:var(--font-sans);background-color:var(--bg-body);color:var(--text-body);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}a{color:var(--color-primary);text-decoration:none;font-weight:600;transition:text-decoration-color .2s}a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}h1,h2,h3,h4,h5,h6{font-weight:800;letter-spacing:-.03em;color:currentColor;margin-bottom:1rem}h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1.1}h2{font-size:clamp(1.75rem,3vw,2.5rem);margin-top:3rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary);display:inline-block}header{background-color:var(--bg-body);padding:3rem 1rem;margin-bottom:2rem}header h1{color:var(--color-coffee-medium)!important}header p{font-size:1.25rem;opacity:.8;max-width:600px;margin-inline:auto}.card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden;transition:transform .3s cubic-bezier(.25,.46,.45,.94),box-shadow .3s ease;height:100%;view-timeline-name:--card-entry;view-timeline-axis:block;animation:fade-in-up linear both;animation-timeline:view();animation-range:entry 10% cover 20%}.card:hover{transform:translateY(-4px) scale(1.01);box-shadow:var(--shadow-soft);border-color:var(--color-secondary)}.card .card-img-top{aspect-ratio:16/9;object-fit:cover;transition:transform .5s ease}.card:hover .card-img-top{transform:scale(1.05)}.card .card-body{padding:1.5rem;display:flex;flex-direction:column}.card .card-body h5.card-title{font-size:1.25rem;margin-bottom:.75rem}.card .card-body p.card-text{font-size:.95rem;opacity:.9;flex-grow:1}.list-group{--bs-list-group-bg: transparent;--bs-list-group-border-color: var(--border-subtle)}.list-group .list-group-item{background-color:var(--bg-surface);border-color:var(--border-subtle);font-weight:500;transition:background-color .2s}.list-group .list-group-item:hover{background-color:color-mix(in srgb,var(--color-primary),transparent 95%);border-left:4px solid var(--color-secondary)}footer{background-color:var(--color-coffee-dark)!important;color:var(--color-cream)!important;padding:3rem 0;margin-top:5rem;border-top:4px solid var(--color-secondary)}footer a{color:var(--color-cream);opacity:.7}footer a:hover{opacity:1;color:var(--color-secondary)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.card-body{container-type:inline-size}@container (max-width: 300px){.card-title{font-size:1.1rem}}.btn-primary{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:700;text-transform:uppercase;font-size:.85rem;letter-spacing:.05em;padding:.6em 1.2em;border-radius:50px}.btn-primary:hover,.btn-primary:focus,.btn-primary:active{background-color:color-mix(in srgb,var(--color-primary),black 10%)!important;border-color:color-mix(in srgb,var(--color-primary),black 10%)!important} +:root{--color-coffee-dark: #3b2f2f;--color-coffee-medium: #6F4E37;--color-cream: #F5E8C7;--color-gold: #D4A574;--color-teal: #1D7874;--color-orange: #E76F51;--bg-body: var(--color-cream);--text-body: var(--color-coffee-dark);--bg-surface: color-mix(in srgb, var(--color-cream), white 40%);--color-primary: var(--color-teal);--color-secondary: var(--color-gold);--border-subtle: color-mix(in srgb, var(--color-coffee-medium), transparent 85%);--shadow-soft: 0 4px 20px -2px color-mix(in srgb, var(--color-coffee-dark), transparent 90%);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--bs-body-bg: var(--bg-body);--bs-body-color: var(--text-body);--bs-primary: var(--color-primary);--bs-primary-rgb: 42, 157, 143}@media(prefers-color-scheme:dark){:root{--bg-body: var(--color-coffee-dark);--text-body: var(--color-cream);--bg-surface: color-mix(in srgb, var(--color-coffee-dark), black 20%);--border-subtle: color-mix(in srgb, var(--color-cream), transparent 85%);--shadow-soft: 0 4px 20px -2px black;--bs-body-bg: var(--bg-body);--bs-body-color: var(--text-body);--bs-dark: #1f1a17}}body{font-family:var(--font-sans);background-color:var(--bg-body);color:var(--text-body);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}a{color:var(--color-primary);text-decoration:none;font-weight:600;transition:text-decoration-color .2s}a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}h1,h2,h3,h4,h5,h6{font-weight:800;letter-spacing:-.03em;color:currentColor;margin-bottom:1rem}h1{font-size:clamp(2.5rem,5vw,4rem);line-height:1.1}h2{font-size:clamp(1.75rem,3vw,2.5rem);margin-top:3rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary);display:inline-block}header{background-color:var(--bg-body);padding:3rem 1rem;margin-bottom:2rem}header h1{color:var(--color-coffee-medium)!important}header p{font-size:1.25rem;opacity:.8;max-width:600px;margin-inline:auto}.card{background-color:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden;transition:transform .3s cubic-bezier(.25,.46,.45,.94),box-shadow .3s ease;height:100%;view-timeline-name:--card-entry;view-timeline-axis:block;animation:fade-in-up linear both;animation-timeline:view();animation-range:entry 10% cover 20%}.card:hover{transform:translateY(-4px) scale(1.01);box-shadow:var(--shadow-soft);border-color:var(--color-secondary)}.card .card-img-top{aspect-ratio:16/9;object-fit:cover;transition:transform .5s ease}.card:hover .card-img-top{transform:scale(1.05)}.card .card-body{padding:1.5rem;display:flex;flex-direction:column}.card .card-body h5.card-title{font-size:1.25rem;margin-bottom:.75rem}.card .card-body p.card-text{font-size:.95rem;opacity:.9;flex-grow:1}.list-group{--bs-list-group-bg: transparent;--bs-list-group-border-color: var(--border-subtle)}.list-group .list-group-item{background-color:var(--bg-surface);border-color:var(--border-subtle);font-weight:500;transition:background-color .2s}.list-group .list-group-item:hover{background-color:color-mix(in srgb,var(--color-primary),transparent 95%);border-left:4px solid var(--color-secondary)}footer{background-color:var(--color-coffee-dark)!important;color:var(--color-cream)!important;padding:3rem 0;margin-top:5rem;border-top:4px solid var(--color-secondary)}footer a{color:var(--color-cream);opacity:.7}footer a:hover{opacity:1;color:var(--color-secondary)}@keyframes fade-in-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.card-body{container-type:inline-size}@container (max-width: 300px){.card-title{font-size:1.1rem}}.btn-primary{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:700;text-transform:uppercase;font-size:.85rem;letter-spacing:.05em;padding:.6em 1.2em;border-radius:50px}.btn-primary:hover,.btn-primary:focus,.btn-primary:active{background-color:color-mix(in srgb,var(--color-primary),black 10%)!important;border-color:color-mix(in srgb,var(--color-primary),black 10%)!important}.scroll-progress{position:fixed;top:0;left:0;width:100%;height:4px;background:linear-gradient(to right,var(--color-primary) 0%,var(--color-primary) var(--scroll-progress, 0%),transparent var(--scroll-progress, 0%));z-index:9999;transition:none}#particles{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:.6}.typewriter{opacity:0;transition:opacity .3s;position:relative;display:inline-block}.typewriter:after{content:"|";position:absolute;right:-8px;animation:blink .7s infinite;color:var(--color-secondary)}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.skill-bars{--bs-list-group-bg: transparent}.skill-item{display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;border-left:4px solid transparent;transition:border-color .3s,background-color .3s}.skill-item:hover{border-left-color:var(--color-secondary)}.skill-name{font-weight:600;font-size:1rem;color:var(--text-body)}.skill-bar-track{width:100%;height:8px;background:color-mix(in srgb,var(--color-coffee-medium),transparent 85%);border-radius:50px;overflow:hidden;position:relative}.skill-bar-fill{height:100%;width:0;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));border-radius:50px;transition:width 1.5s cubic-bezier(.65,0,.35,1);position:relative;overflow:hidden}.skill-bar-fill:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skill-item.animate .skill-bar-fill{width:var(--skill-level)}.testimonial-card{position:relative;overflow:visible}.testimonial-full{display:none}.testimonial-excerpt{display:block}.testimonial-card.expanded .testimonial-excerpt{display:none}.testimonial-card.expanded .testimonial-full{display:block}.testimonial-author{font-weight:600;font-style:italic;color:var(--color-coffee-medium);margin-top:1rem;margin-bottom:0}.testimonial-toggle{margin-top:1rem;background:var(--color-secondary);color:var(--color-coffee-dark);border:none;padding:.5rem 1.5rem;border-radius:50px;font-weight:700;font-size:.85rem;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:transform .2s,background-color .2s}.testimonial-toggle:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px)}.testimonial-toggle:active{transform:translateY(0)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.typewriter:after{animation:none}.skill-bar-fill:after{animation:none}} diff --git a/dist/index.html b/dist/index.html index 619eaf2..0d1f115 100644 --- a/dist/index.html +++ b/dist/index.html @@ -41,27 +41,59 @@ scroll-behavior: smooth; } - - - + + + + + +
+ + + +

d@n tech

-

Your partner in web development

-

Visit my main site

-
+

+

Visit my main site

+

About Us

Welcome to d@n tech! We specialize in creating stunning and efficient websites for businesses of all sizes. Our team of experienced developers is dedicated to delivering high-quality web solutions that meet your unique needs.

-

Services

-
    -
  • Custom Website Development
  • -
  • Responsive Design
  • -
  • E-commerce Solutions
  • -
  • SEO Optimization
  • -
  • Website Maintenance
  • -
+

Services

+
    +
  • + Custom Website Development +
    +
    +
    +
  • +
  • + Responsive Design +
    +
    +
    +
  • +
  • + E-commerce Solutions +
    +
    +
    +
  • +
  • + SEO Optimization +
    +
    +
    +
  • +
  • + Website Maintenance +
    +
    +
    +
  • +
@@ -121,29 +153,33 @@
-
-

Testimonials

-
-
-
-
-

"It was a pleasure working with Dustin on my counseling practice website. Throughout the process, he was thoughtful, responsive, and truly understood my vision. In addition to bringing my ideas to life with a clean, professional design, he made the entire process enjoyable and easy. His attention to detail, creativity, and technical skills are excellent. As a result of Dustin's work, I now have a website that truly represents my practice. There is no better person to recommend than him!"

-

- Margaret Pemu, Pemu Counseling and Wellness

-
-
-
-
-
-
-

"Working with Dustin at d@n tech was an absolute pleasure from start to finish. He is funny, engaging, and listens well. He offered grace for my lack of technical skill and worked from simple examples provided, which translated into a functional and funky-professional website that represents my brand. - - His patience and technical skills are truly impressive. Furthermore, he was responsive throughout the entire process, always open to feedback, and quick to implement changes. What I appreciated most was how he spent time working toward what I wanted and was supportive in my goals."

-

-Laura, Woman-Owned Small Business

-
-
-
-
-
+
+

Testimonials

+
+
+
+
+

"It was a pleasure working with Dustin on my counseling practice website. Throughout the process, he was thoughtful, responsive, and truly understood my vision..."

+

"It was a pleasure working with Dustin on my counseling practice website. Throughout the process, he was thoughtful, responsive, and truly understood my vision. In addition to bringing my ideas to life with a clean, professional design, he made the entire process enjoyable and easy. His attention to detail, creativity, and technical skills are excellent. As a result of Dustin's work, I now have a website that truly represents my practice. There is no better person to recommend than him!"

+

- Margaret Pemu, Pemu Counseling and Wellness

+ +
+
+
+
+
+
+

"Working with Dustin at d@n tech was an absolute pleasure from start to finish. He is funny, engaging, and listens well. He offered grace for my lack of technical skill..."

+

"Working with Dustin at d@n tech was an absolute pleasure from start to finish. He is funny, engaging, and listens well. He offered grace for my lack of technical skill and worked from simple examples provided, which translated into a functional and funky-professional website that represents my brand. + + His patience and technical skills are truly impressive. Furthermore, he was responsive throughout the entire process, always open to feedback, and quick to implement changes. What I appreciated most was how he spent time working toward what I wanted and was supportive in my goals."

+

-Laura, Woman-Owned Small Business

+ +
+
+
+
+