header{border-bottom:1px solid var(--color-medium-gray);margin-bottom:30px;padding:15px 0}header .container{align-items:center;display:flex;justify-content:space-between}.logo{font-family:var(--font-serif);font-size:1.5rem;font-weight:500}nav ul{display:flex;list-style:none}nav ul li{margin-left:25px}nav ul li a{color:var(--color-text);font-family:var(--font-mono);font-weight:400;letter-spacing:-.02em}nav ul li a.active{font-weight:600}footer{border-top:1px solid var(--color-medium-gray);margin-top:60px;padding:40px 0}footer .container{align-items:center;display:flex;justify-content:space-between}footer p{font-family:var(--font-sans);font-size:.9rem;margin-bottom:0}.footer-links a{color:var(--color-text);font-size:.9rem;margin-left:20px}@media (max-width:768px){header .container{flex-direction:column}nav{margin-top:15px;width:100%}nav ul{justify-content:space-between;width:100%}nav ul li{margin-left:0}footer .container{flex-direction:column}.footer-links{margin-top:15px}.footer-links a{margin-left:10px;margin-right:10px}}@media (max-width:576px){nav ul{flex-wrap:wrap}nav ul li{margin-bottom:10px}}.projects-section{margin-bottom:80px}.projects-section h2{margin-bottom:40px;text-align:center}.project-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.project-card{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000014;cursor:pointer;overflow:hidden;position:relative;transition:transform .3s ease,box-shadow .3s ease}.project-card:hover{box-shadow:0 10px 20px #0000001f;transform:translateY(-5px)}.project-card a.card-link{height:100%;left:0;overflow:hidden;position:absolute;text-indent:-9999px;top:0;width:100%;z-index:1}.project-card .project-content>*{position:relative;z-index:0}.project-image{height:200px;overflow:hidden}.project-image img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.project-card:hover .project-image img{transform:scale(1.05)}.placeholder-image{align-items:center;background-color:var(--color-accent-light);display:flex;height:100%;justify-content:center;transition:background-color .3s ease;width:100%}.placeholder-image span{color:var(--color-accent);font-family:var(--font-sans);font-weight:600;padding:20px;text-align:center}.project-card:hover .placeholder-image{background-color:var(--color-accent)}.project-card:hover .placeholder-image span{color:#fff}.project-content{background-color:#fff;padding:20px}.project-content h3{font-size:1.3rem;margin-bottom:10px;margin-top:0}.project-content p{color:var(--color-dark-gray);font-family:var(--font-sans);font-size:.95rem;margin-bottom:20px}@media (max-width:992px){.project-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width:576px){.project-grid{grid-template-columns:1fr}}.hero{border-radius:8px;margin:0 auto;max-width:var(--container-width);padding:0;text-align:left}.hero-content{margin:0;max-width:800px}.hero h1{font-size:3rem}.hero h1,.lead{margin-bottom:20px}.lead{color:var(--color-dark-gray);font-family:var(--font-mono);font-size:1.5rem}.hero p:not(.lead){font-family:var(--font-serif);font-size:1.1rem;letter-spacing:-.01em;line-height:1.6;margin-bottom:20px}@media (max-width:576px){.hero h1{font-size:2.2rem}.lead{font-size:1.2rem}}.about-content{margin:0 auto;max-width:800px}.about-text p{margin-bottom:1.5em}.about-text h2{margin-bottom:.8em;margin-top:2em}.about-text ul{margin-bottom:1.5em;padding-left:1.5em}.about-text ul li{font-family:var(--font-sans);font-size:1rem;margin-bottom:.5em}.contact-content{display:flex;justify-content:center;margin:0 auto;max-width:1000px;text-align:center}.contact-methods{align-items:center;display:flex;flex-direction:column;margin-top:30px}.contact-method{margin-bottom:20px;text-align:center}.contact-method h3{font-size:1.2rem;margin-bottom:5px;margin-top:30}.contact-method p{font-family:var(--font-sans);margin-bottom:0}@media (max-width:992px){.contact-content{padding:0 20px}}article{font-family:var(--font-serif);margin:0 auto;max-width:var(--article-width);padding:0;width:100%}.article-header{margin-bottom:40px}.meta{color:var(--color-dark-gray);font-family:var(--font-sans);font-size:.9rem;margin-bottom:20px}.meta span{margin-right:15px}.featured-image,.featured-video{margin-bottom:30px}.featured-image img,.featured-video video{border-radius:5px;height:auto;object-fit:cover;width:100%}.header-video{max-height:500px}.caption{color:var(--color-dark-gray);font-family:var(--font-sans);font-size:.9rem;font-style:italic;margin-top:10px;text-align:center}section{margin-bottom:40px}.intro p:first-of-type{font-size:1.2rem;line-height:1.9}.materials-list{list-style:none;padding-left:0}.materials-list li{border-bottom:1px solid var(--color-medium-gray);padding:10px 0}.materials-list li:last-child{border-bottom:none}figure{margin-bottom:30px}figure img{border-radius:5px;height:auto;width:100%}figcaption{color:var(--color-dark-gray);font-family:var(--font-sans);font-size:.9rem;font-style:italic;margin-top:10px;text-align:center}section .featured-image{margin-left:auto;margin-right:auto;width:75%}.article-image{margin:30px auto;text-align:center}.article-image,.article-image img{display:block;max-width:100%;object-fit:contain}.article-image img{border-radius:5px;height:auto;margin:0 auto}section figure{margin-left:auto;margin-right:auto;width:75%}.image-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.image-full{margin:30px auto;width:75%}.video-container{height:0;margin-bottom:30px;padding-bottom:56.25%;position:relative;width:100%}.video-container iframe{border:none;border-radius:5px;height:100%;left:0;position:absolute;top:0;width:100%}.code-block{background-color:var(--color-light-gray);border-radius:5px;margin:25px 0;overflow:auto}pre{line-height:1.5;overflow-x:auto;padding:20px}code,pre{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9rem}code{background-color:var(--color-light-gray);border-radius:3px;padding:2px 4px}.features-list,.tech-list{line-height:1.8;padding-left:0}.features-list li,.tech-list li{margin-bottom:12px;margin-left:20px}.features-list ul,.tech-list ul{list-style-type:disc;margin-left:20px;margin-top:8px;padding-left:20px}.features-list ul li,.tech-list ul li{margin-bottom:8px}.coming-soon{margin:0 auto;max-width:600px;padding:100px 0;text-align:center}.coming-soon h1{font-size:3rem;margin-bottom:20px}.coming-soon p{margin-bottom:30px}.coming-soon .btn{margin-top:20px}.not-found{margin:0 auto;max-width:600px;padding:100px 0;text-align:center}.not-found h1{color:var(--color-accent);font-size:6rem;margin-bottom:20px}.not-found h2{margin-bottom:20px;margin-top:0}.not-found p{margin-bottom:30px}.not-found .btn{margin-top:20px}:root{--font-serif:"Libre Baskerville","Playfair Display",Georgia,serif;--font-sans:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"SF Mono","Fira Code","Fira Mono","Roboto Mono","Menlo","DejaVu Sans Mono","Consolas","Liberation Mono","Monaco","Andale Mono","Ubuntu Mono","Courier New",monospace;--color-text:#191919;--color-background:#fcfaf6;--color-light-gray:#f7f5f1;--color-medium-gray:#e6e4df;--color-dark-gray:#757575;--color-accent:#191919;--color-link:#006282;--color-accent-light:#e6f7f2;--color-accent-dark:#191919;--container-width:1400px;--article-width:800px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#fcfaf6;background-color:var(--color-background);color:#191919;color:var(--color-text);font-family:Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-sans);line-height:1.6}.container{margin:0 auto;max-width:1400px;max-width:var(--container-width);padding:10px;width:90%}h1,h2,h3,h4,h5,h6{font-family:Libre Baskerville,Playfair Display,Georgia,serif;font-family:var(--font-serif);font-weight:500;letter-spacing:.02em;line-height:1.3;margin-bottom:.8em}h1{font-size:2.5rem;margin-bottom:.5em;margin-top:0}h2{font-size:1.9rem;margin-bottom:.7em;margin-top:1.8em}h3{font-size:1.5rem;margin-bottom:.6em;margin-top:1.5em}p{font-family:Libre Baskerville,Playfair Display,Georgia,serif;font-family:var(--font-serif);font-size:1.05rem;font-weight:400;letter-spacing:.01em;line-height:1.8;margin-bottom:1.5em}a{color:#006282;color:var(--color-link);transition:color .2s ease}a,a:hover{text-decoration:underline}main{display:block;margin:0 auto 60px}main.article-page{max-width:800px;max-width:var(--article-width)}.btn{border-radius:4px;cursor:pointer;display:inline-block;font-family:Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-sans);font-weight:600;margin:0 10px;padding:12px 24px;text-align:center;text-decoration:none;transition:all .3s ease}.btn-primary{background-color:#191919;background-color:var(--color-accent);border:none;color:#fff}.btn-primary:hover{background-color:#191919;background-color:var(--color-accent-dark);text-decoration:none}.btn-secondary{background-color:initial;border:2px solid #191919;border:2px solid var(--color-accent);color:#191919;color:var(--color-accent)}.btn-secondary:hover{background-color:#e6f7f2;background-color:var(--color-accent-light);text-decoration:none}.btn-outline{background-color:initial;border:1px solid #191919;border:1px solid var(--color-accent);color:#191919;color:var(--color-accent);font-size:.9rem;padding:8px 16px}.btn-outline:hover{background-color:#e6f7f2;background-color:var(--color-accent-light);text-decoration:none}.page-header{margin-bottom:60px;margin-left:auto;margin-right:auto;max-width:1400px;max-width:var(--container-width);padding:10px 0;text-align:center}.page-header h1{font-size:2.8rem}.page-header p{font-family:Source Sans Pro,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-sans);margin:0 auto;max-width:800px}.page-header .lead,.page-header p{color:#757575;color:var(--color-dark-gray);font-size:1.2rem}.page-header .lead{font-family:SF Mono,Fira Code,Fira Mono,Roboto Mono,Menlo,DejaVu Sans Mono,Consolas,Liberation Mono,Monaco,Andale Mono,Ubuntu Mono,Courier New,monospace;font-family:var(--font-mono);margin-bottom:20px}@media (max-width:992px){main.container{max-width:95%}}@media (max-width:768px){h1{font-size:2rem}h2{font-size:1.6rem}h3{font-size:1.3rem}}@media (max-width:576px){.hero h1{font-size:2.2rem}.hero-buttons .btn{display:block;margin:10px auto;width:80%}}
/*# sourceMappingURL=main.27b90f30.css.map*/