*{margin:0;padding:0;box-sizing:border-box}:root{--color-brown:#857E61;--color-mauve:#B7A196;--color-pink:#DDC3D0;--color-lavender:#DBDAEA;--color-cyan:#dcffdb;--color-bg:var(--color-cyan);--color-text:#3a3a3a;--color-text-muted:#6a6a6a;--color-border:var(--color-brown);--color-accent:var(--color-lavender);--color-card-bg:#ffffff;--border-thick:3px}body{font-family:Google Sans Code,monospace;font-optical-sizing:auto;font-weight:400;font-style:normal;line-height:1.6;color:var(--color-text);background-color:var(--color-bg);padding:0;margin:0;position:relative}body:before{left:0;right:0;bottom:0;background-color:var(--color-bg);background-image:radial-gradient(circle,var(--color-lavender) 2px,transparent 2px),radial-gradient(circle,var(--color-pink) 2px,transparent 2px);background-size:40px 40px,40px 40px;background-position:0 0,20px 20px;animation:moveBackground 20s linear infinite;z-index:-2}body:after,body:before{content:"";position:fixed;top:0}body:after{left:50%;transform:translateX(-50%);width:100%;max-width:70%;height:100%;background:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,0) 10%,rgba(255,255,255,1) 15%,rgba(255,255,255,1) 85%,rgba(255,255,255,0) 90%,rgba(255,255,255,0));z-index:-1;pointer-events:none}@keyframes moveBackground{0%{background-position:0 0,20px 20px}to{background-position:34.64px 20px,54.64px 40px}}.nav{display:flex;gap:2rem;padding:2rem 2rem 1rem;justify-content:center}.nav,.nav a{background-color:transparent}.nav a{text-decoration:none;color:var(--color-text);font-weight:500;position:relative;padding:.5rem 1rem}.nav a:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:var(--border-thick) solid transparent;transition:all .3s ease}.nav a:hover:before{border-color:var(--color-border);top:-4px;left:-4px;right:-4px;bottom:-4px;animation:wiggle .5s ease}.nav a.active{color:var(--color-text);font-weight:700}.nav a.active:before{border-color:var(--color-border)}@keyframes wiggle{0%,to{transform:rotate(0deg)}25%{transform:rotate(2deg)}75%{transform:rotate(-2deg)}}.container{max-width:680px;margin:0 auto;padding:3rem 1.5rem}.intro{margin-bottom:3rem}.intro h1{font-size:2.5rem;margin-bottom:.5rem;color:var(--color-text)}.intro p{font-size:1.1rem;color:var(--color-text-muted);line-height:1.7}.articles h2,.portfolio h2{font-size:1.5rem;margin-bottom:1.5rem;color:var(--color-text)}.article-list,.portfolio-list{list-style:none}.article-list li{margin-bottom:2rem;padding:1.5rem;border:var(--border-thick) solid var(--color-border);background-color:var(--color-card-bg);transition:all .2s;position:relative}.article-list li:hover{background-color:var(--color-pink);background-image:radial-gradient(circle,var(--color-lavender) 1.5px,transparent 1.5px),radial-gradient(circle,rgba(255,255,255,.5) 1.5px,transparent 1.5px);background-size:30px 30px,30px 30px;background-position:0 0,15px 15px;animation:moveCardBackground 15s linear infinite;transform:translateX(4px);box-shadow:6px 6px 0 var(--color-brown)}@keyframes moveCardBackground{0%{background-position:0 0,15px 15px}to{background-position:25.98px 15px,40.98px 30px}}.article-list li:last-child{border-bottom:var(--border-thick) solid var(--color-border)}.portfolio-card{margin-bottom:2rem;border:var(--border-thick) solid var(--color-border);overflow:hidden;background-color:var(--color-card-bg);transition:all .2s;position:relative}.portfolio-card:hover{transform:translateY(-4px);box-shadow:8px 8px 0 var(--color-brown)}.portfolio-card:hover .portfolio-card-content{background-color:var(--color-lavender);background-image:radial-gradient(circle,var(--color-pink) 1.5px,transparent 1.5px),radial-gradient(circle,rgba(255,255,255,.5) 1.5px,transparent 1.5px);background-size:30px 30px,30px 30px;background-position:0 0,15px 15px;animation:moveCardBackground 15s linear infinite}.portfolio-card-image{width:100%;overflow:hidden;aspect-ratio:2/1;background-color:var(--color-mauve);border-bottom:var(--border-thick) solid var(--color-border)}.portfolio-card-image img{object-fit:cover}.portfolio-card-content{padding:1.5rem}.article-list a,.portfolio-card a{text-decoration:none;color:inherit;display:block}.article-list h3,.portfolio-list h3{font-size:1.4rem;margin-bottom:.3rem;color:var(--color-text)}.article-list time,.portfolio-list time{font-size:.9rem;color:var(--color-text-muted);display:block;margin-bottom:.5rem}.article-list p,.portfolio-list p{color:var(--color-text-muted);margin-top:.5rem}.tags{display:inline-block;font-size:.85rem;color:var(--color-text);background-color:var(--color-pink);border:2px solid var(--color-border);padding:.2rem .6rem;margin-bottom:.3rem}.portfolio-header-image{width:100%;margin-bottom:2rem;overflow:hidden;border:var(--border-thick) solid var(--color-border)}.article-page header,.portfolio-page header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:var(--border-thick) solid var(--color-border)}.article-page h1,.portfolio-page h1{font-size:2.5rem;margin-bottom:.5rem;color:var(--color-text)}.article-page time,.portfolio-page time{font-size:.95rem;color:var(--color-text-muted);display:block}.markdown-content{font-size:1.05rem;line-height:1.8;color:var(--color-text)}.markdown-content img{max-width:100%;height:auto;border:var(--border-thick) solid var(--color-border);margin:1.5rem 0}.markdown-content h1{font-size:2rem;margin-top:2rem;margin-bottom:1rem;color:var(--color-text)}.markdown-content h2{font-size:1.6rem;margin-top:1.8rem;margin-bottom:.8rem;color:var(--color-text)}.markdown-content h3{font-size:1.3rem;margin-top:1.5rem;margin-bottom:.7rem;color:var(--color-text)}.markdown-content p{margin-bottom:1rem}.markdown-content a{color:var(--color-text);text-decoration:none;border-bottom:2px solid var(--color-mauve);transition:all .2s}.markdown-content a:hover{background-color:var(--color-mauve);border-bottom-color:var(--color-border)}.markdown-content ol,.markdown-content ul{margin-left:1.5rem;margin-bottom:1rem}.markdown-content li{margin-bottom:.5rem}.markdown-content code{background-color:var(--color-lavender);padding:.2rem .4rem;border:2px solid var(--color-border);font-size:.9em;font-family:Monaco,Courier New,monospace}.markdown-content pre{background-color:var(--color-card-bg);border:var(--border-thick) solid var(--color-border);padding:1rem;overflow-x:auto;margin-bottom:1rem}.markdown-content pre code{background-color:transparent;padding:0;border:none}.markdown-content blockquote{border-left:4px solid var(--color-brown);margin-left:0;margin-bottom:1rem;background-color:var(--color-lavender);padding:1rem;color:var(--color-text-muted);font-style:italic}@media (max-width:768px){body:after{max-width:97%;background:linear-gradient(90deg,rgba(255,255,255,0) 0,rgba(255,255,255,1) 2%,rgba(255,255,255,1) 98%,rgba(255,255,255,0))}.container{padding:2rem 1rem}.article-page h1,.intro h1,.portfolio-page h1{font-size:2rem}}