.footer__content{font-size:.7rem}.profile-image{display:block;border-radius:50%;max-width:150px;height:auto;margin:0 auto 1.5rem}@media(min-width:700px){.profile-image{float:left;margin:0 1.5rem 1rem 0}}.project{width:100%;max-width:800px;text-align:left}.section-intro{margin-bottom:2rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;max-width:860px}@media(max-width:700px){.card-grid{grid-template-columns:1fr}}.content-card{border:1px solid #dcdcdc;border-radius:8px;padding:1.5rem;transition:transform .2s,box-shadow .2s}.card-image{width:100%;height:140px;object-fit:cover;border-radius:4px;margin-bottom:1rem}.project-header-image{width:100%;height:auto;border-radius:8px;margin-top:1.5rem;margin-bottom:1.5rem}.content-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px rgba(0,0,0,8%)}.content-card h2{margin-top:0;margin-bottom:.5rem;font-size:1.25rem}.content-card h2 a{text-decoration:none}.card-meta{font-weight:400;font-size:.9em;color:#777}.card-subtitle{margin:.25rem 0 .5rem;font-weight:500;color:#555}.card-description{margin:.5rem 0;color:#555}.card-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.card-tag{display:inline-block;padding:.2rem .6rem;font-size:.75rem;background:#f0f0f0;border-radius:4px;color:#555;text-decoration:none;transition:background .2s,color .2s}.card-tag:hover{background:#e0e0e0;color:#333}.links-inline{margin-top:.75rem;font-size:.9rem}.links-inline a{text-decoration:none}.links-inline a:hover{text-decoration:underline}.back-link{display:inline-block;margin-bottom:1.5rem;font-size:.9rem;text-decoration:none}.back-link:hover{text-decoration:underline}.links-section{margin-top:2rem}.links-section h3{margin-bottom:.5rem}@media(prefers-color-scheme:dark){.content-card{border-color:#4e4e57}.content-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.3)}.card-meta{color:#888}.card-subtitle,.card-description{color:#a9a9b3}.card-tag{background:#3a3a42;color:#a9a9b3}.card-tag:hover{background:#4a4a52;color:#c9c9d3}}[data-theme=dark] .content-card{border-color:#4e4e57}[data-theme=dark] .content-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.3)}[data-theme=dark] .card-meta{color:#888}[data-theme=dark] .card-subtitle,[data-theme=dark] .card-description{color:#a9a9b3}[data-theme=dark] .card-tag{background:#3a3a42;color:#a9a9b3}[data-theme=dark] .card-tag:hover{background:#4a4a52;color:#c9c9d3}[data-theme=light] .content-card{border-color:#dcdcdc}[data-theme=light] .content-card:hover{box-shadow:0 4px 12px rgba(0,0,0,8%)}[data-theme=light] .card-meta{color:#777}[data-theme=light] .card-subtitle,[data-theme=light] .card-description{color:#555}[data-theme=light] .card-tag{background:#f0f0f0;color:#555}[data-theme=light] .card-tag:hover{background:#e0e0e0;color:#333}body{overflow-x:hidden}.content{position:relative;overflow:visible;--sweep-time:0.7s;--pause-time:5s}.content::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background-color:rgba(76,175,80,.1);z-index:10;pointer-events:none}.content::after{content:'';position:absolute;top:0;left:-80px;width:80px;height:3px;background:linear-gradient(90deg,transparent 0%,rgba(76,175,80,.4) 20%,#4CAF50 50%,rgba(76,175,80,.4) 80%,transparent 100% );box-shadow:0 0 8px rgba(76,175,80,.6),0 0 15px rgba(76,175,80,.3);z-index:11;pointer-events:none;-webkit-animation:light-sweep calc(2 * var(--sweep-time) + 2 * var(--pause-time))infinite;animation:light-sweep calc(2 * var(--sweep-time) + 2 * var(--pause-time))infinite}@media(prefers-color-scheme:dark){.content::before{background-color:rgba(76,175,80,.15)}.content::after{box-shadow:0 0 12px rgba(76,175,80,.8),0 0 20px rgba(76,175,80,.4)}}[data-theme=dark] .content::before{background-color:rgba(76,175,80,.15)}[data-theme=dark] .content::after{box-shadow:0 0 12px rgba(76,175,80,.8),0 0 20px rgba(76,175,80,.4)}main h1 a{text-decoration:none}.logo__cursor{box-shadow:0 0 8px rgba(76,175,80,.6),0 0 15px rgba(76,175,80,.3)}@media(prefers-color-scheme:dark){.logo__cursor{box-shadow:0 0 12px rgba(76,175,80,.8),0 0 20px rgba(76,175,80,.4)}}[data-theme=dark] .logo__cursor{box-shadow:0 0 12px rgba(76,175,80,.8),0 0 20px rgba(76,175,80,.4)}.logo__cursor.flicker{animation:cursor-flicker .15s ease-out}@keyframes cursor-flicker{0%{opacity:1;filter:brightness(1)}30%{opacity:.5;filter:brightness(.4)}50%{opacity:.8;filter:brightness(.7)}70%{opacity:.4;filter:brightness(.3)}100%{opacity:1;filter:brightness(1)}}