﻿@import url("https://fonts.bunny.net/css?family=space-grotesk:400,500,600,700");html{width:100%;height:100%;padding:0;margin:0}body{width:100%;height:100%;min-height:100vh;padding:0;margin:0;font-family:var(--sl-font-family-base);line-height:1.6;background-color:hsl(var(--sl-hsl-background));color:hsl(var(--sl-hsl-foreground));display:flex;flex-direction:column;transition:background-color var(--sl-transition-medium) ease,color var(--sl-transition-medium) ease}body.home-page{background-color:hsl(var(--sl-hsl-background))}.container{width:100%;max-width:72rem;margin:0 auto;padding:0 var(--sl-spacing-6, 1.5rem)}@media (max-width: 767px){.container{padding:0 var(--sl-spacing-4, 1rem)}}.main{flex:1;padding:var(--sl-spacing-8, 2rem) 0;position:relative;z-index:1}.global-header{position:sticky;top:0;z-index:100;padding:1rem 0;backdrop-filter:blur(10px);background:hsl(var(--sl-hsl-background)/.8);transition:all .3s ease}.global-header .container{display:flex;align-items:center;gap:2rem}@media (max-width: 767px){.global-header .container{gap:1rem;justify-content:space-between}}.global-header h1{margin:0;font-size:var(--sl-font-size-2xl);flex-shrink:0}.header-logo{color:hsl(var(--sl-hsl-foreground));text-decoration:none;font-weight:700;font-size:var(--sl-font-size-xl);transition:color var(--sl-transition-fast)}.header-logo:hover{color:hsl(var(--sl-hsl-primary))}.header-nav{display:flex;gap:var(--sl-spacing-8, 2rem);align-items:center;margin:0;padding:0;flex:1;justify-content:center}@media (max-width: 767px){.header-nav{display:none}}.nav-link{color:hsl(var(--sl-hsl-muted-foreground));text-decoration:none;font-weight:500;transition:all var(--sl-transition-fast);position:relative;padding:.5rem 0}.nav-link::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:hsl(var(--sl-hsl-primary));transform:scaleX(0);transform-origin:right;transition:transform var(--sl-transition-medium)}.nav-link:hover{color:hsl(var(--sl-hsl-foreground))}.nav-link:hover::after{transform:scaleX(1);transform-origin:left}.nav-link--active{color:hsl(var(--sl-hsl-foreground))}.nav-link--active::after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;gap:var(--sl-spacing-4xl);flex-shrink:0;margin-left:auto}@media (max-width: 767px){.header-actions{margin-left:0}.header-actions .language-selector{display:none}}.theme-toggle{background:none;border:none;padding:.5rem;color:hsl(var(--sl-hsl-muted-foreground));cursor:pointer;transition:color var(--sl-transition-fast);display:flex;align-items:center;justify-content:center}.theme-toggle:hover{color:hsl(var(--sl-hsl-foreground))}.theme-toggle__icon{width:20px;height:20px;display:none}.dark .theme-toggle__icon--sun{display:block}.theme-toggle__icon--moon{display:block}.dark .theme-toggle__icon--moon{display:none}.mobile-menu-toggle{background:none;border:none;padding:.5rem;color:hsl(var(--sl-hsl-muted-foreground));cursor:pointer;transition:color var(--sl-transition-fast);display:none}@media (max-width: 767px){.mobile-menu-toggle{display:flex;align-items:center;justify-content:center}}.mobile-menu-toggle:hover{color:hsl(var(--sl-hsl-foreground))}.mobile-menu-toggle svg{width:24px;height:24px}.footer{padding:var(--sl-spacing-12) 0 var(--sl-spacing-8);background:hsl(var(--sl-hsl-background)/.8);backdrop-filter:blur(10px);border-top:1px solid hsl(var(--sl-hsl-border));margin-top:var(--sl-spacing-10)}.footer .container{display:flex;flex-direction:column;gap:var(--sl-spacing-8)}.footer__grid{display:grid;grid-template-columns:minmax(0, 1fr) auto;gap:var(--sl-spacing-8);align-items:start}@media (max-width: 767px){.footer__grid{grid-template-columns:1fr}}.footer__colophon h2{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);font-weight:var(--sl-font-weight-normal);text-transform:uppercase;letter-spacing:.08em;color:hsl(var(--sl-hsl-muted-foreground));margin:0}.footer__colophon p{margin:var(--sl-spacing-3) 0 0;max-width:52ch;color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-sm)}.footer__meta{margin-top:var(--sl-spacing-8);display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--sl-spacing-3);font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);color:hsl(var(--sl-hsl-muted-foreground))}.footer__meta span{margin:0}.footer-nav__list{display:flex;gap:1.5rem;list-style:none;padding:0;margin:0;flex-wrap:wrap;justify-content:flex-end}.footer-nav__link{color:hsl(var(--sl-hsl-muted-foreground));text-decoration:none;font-weight:500;transition:color var(--sl-transition-fast);position:relative;padding:.5rem 0}.footer-nav__link::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;background:hsl(var(--sl-hsl-primary));transform:scaleX(0);transform-origin:right;transition:transform var(--sl-transition-medium)}.footer-nav__link:hover{color:hsl(var(--sl-hsl-foreground))}.footer-nav__link:hover::after{transform:scaleX(1);transform-origin:left}.footer-credits{color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-sm)}.footer-credits p{margin:0}body.home-page .container{max-width:100%}body.home-page .main{padding-top:0}@media (min-width: 1440px){body.home-page .container{max-width:90rem}}.bricks{height:10px;border-radius:var(--sl-radius-sm);background-color:hsl(var(--sl-hsl-primary));background-image:linear-gradient(90deg, hsl(var(--sl-hsl-background)) 2px, rgba(0,0,0,0) 2px),linear-gradient(90deg, hsl(var(--sl-hsl-background)) 2px, rgba(0,0,0,0) 2px),linear-gradient(0deg, hsl(var(--sl-hsl-background)) 2px, rgba(0,0,0,0) 2px);background-size:24px 5px,24px 5px,100% 5px;background-position:0 0,12px 5px,0 5px;margin:var(--sl-spacing-8) auto;max-width:100%;width:calc(100% - 3rem);transition:background-color var(--sl-transition-medium) ease}@media (min-width: 1440px){.bricks{max-width:90rem}}.home-eyebrow{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--sl-hsl-primary));margin:0}.home-section{padding-block:var(--sl-spacing-16);max-width:100%;margin-inline:auto;width:100%;padding-inline:var(--sl-spacing-6)}@media (min-width: 1440px){.home-section{max-width:90rem}}@media (max-width: 767px){.home-section{padding-block:var(--sl-spacing-12);padding-inline:var(--sl-spacing-4)}}.home-section__header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sl-spacing-4);margin-bottom:var(--sl-spacing-8)}.home-section__header h2{font-size:var(--sl-font-size-3xl);margin-top:var(--sl-spacing-2)}@media (max-width: 767px){.home-section__header h2{font-size:var(--sl-font-size-2xl)}}.home-section__desc{color:hsl(var(--sl-hsl-muted-foreground));margin:var(--sl-spacing-2) 0 0;max-width:46ch}.home-hero{position:relative;overflow:hidden;padding-block:0 var(--sl-spacing-16);max-width:100%;margin-inline:auto;padding-inline:var(--sl-spacing-6);display:flex;flex-direction:column}@media (min-width: 1440px){.home-hero{max-width:90rem}}@media (max-width: 767px){.home-hero{padding-block:var(--sl-spacing-12) var(--sl-spacing-8);padding-inline:var(--sl-spacing-4)}}.home-hero__bg{position:absolute;inset:0 0 auto 0;height:80%;z-index:0;pointer-events:none;opacity:.95;will-change:opacity,transform}@media (max-width: 767px){.home-hero__bg{position:relative;inset:auto;height:auto;order:2;margin-top:var(--sl-spacing-8);opacity:1}}.home-hero__portrait,.home-hero__matrix{position:absolute;inset:0;width:100%;height:100%}.home-hero__portrait{-webkit-mask-image:linear-gradient(to bottom, #000 55%, rgba(0,0,0,0) 98%),linear-gradient(to right, #000 0%, #000 55%, rgba(0,0,0,0) 98%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom, #000 55%, rgba(0,0,0,0) 98%),linear-gradient(to right, #000 0%, #000 55%, rgba(0,0,0,0) 98%);mask-composite:intersect}@media (max-width: 767px){.home-hero__portrait{-webkit-mask-image:linear-gradient(to bottom, #000 78%, rgba(0,0,0,0) 100%);mask-image:linear-gradient(to bottom, #000 78%, rgba(0,0,0,0) 100%);-webkit-mask-composite:source-over;mask-composite:intersect;aspect-ratio:4/3;border-radius:var(--sl-radius-lg);border:1px solid hsl(var(--sl-hsl-border));overflow:hidden}}.home-hero__portrait img{width:100%;height:100%;object-fit:cover;display:block;opacity:.12;filter:grayscale(1) sepia(.32) saturate(1.5) hue-rotate(-12deg) contrast(1.06)}.dark .home-hero__portrait img{filter:grayscale(1) sepia(.32) saturate(1.5) hue-rotate(-12deg) contrast(1.06) brightness(.72)}.home-hero__matrix{opacity:1;transition:opacity .2s linear}@media (max-width: 767px){.home-hero__matrix{display:none}}.home-hero__matrix.is-settled{animation:matrixFadeOut 1.6s ease forwards}.home-hero__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;min-height:70vh;justify-content:center}@media (max-width: 767px){.home-hero__content{min-height:0;order:1}}@media (min-width: 900px){.home-hero__content{margin-left:auto;max-width:42rem;text-align:left}}.home-hero__content::before{content:"";position:absolute;inset:-20% -30% -20% -60%;z-index:-1;background:linear-gradient(to right, rgba(0,0,0,0) 0%, hsl(var(--sl-hsl-background)/.55) 45%, hsl(var(--sl-hsl-background)/.82) 100%);pointer-events:none}@media (max-width: 899px){.home-hero__content::before{inset:-10% -10%;background:linear-gradient(to top, hsl(var(--sl-hsl-background)/.88) 0%, hsl(var(--sl-hsl-background)/.45) 60%, rgba(0,0,0,0) 100%)}}.dark .home-hero__content::before{background:linear-gradient(to right, rgba(0,0,0,0) 0%, hsl(var(--sl-hsl-background)/.65) 45%, hsl(var(--sl-hsl-background)/.9) 100%)}.home-hero__eyebrow{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--sl-hsl-primary));margin:0}.home-hero__title{font-family:var(--sl-font-family-heading);font-size:clamp(2.5rem,7vw,4.5rem);font-weight:var(--sl-font-weight-bold);line-height:var(--sl-line-height-tight);letter-spacing:-.02em;margin:var(--sl-spacing-4) 0 0;max-width:16ch;color:hsl(var(--sl-hsl-foreground))}@media (max-width: 767px){.home-hero__title{max-width:18ch}}.home-hero__hl{color:hsl(var(--sl-hsl-primary))}.home-hero__lead{font-size:var(--sl-font-size-xl);font-weight:var(--sl-font-weight-light);line-height:var(--sl-line-height-relaxed);color:hsl(var(--sl-hsl-muted-foreground));margin:var(--sl-spacing-5) 0 0;max-width:56ch}.home-hero__actions{display:flex;flex-wrap:wrap;gap:var(--sl-spacing-3);margin-top:var(--sl-spacing-8)}.home-hero__facts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sl-spacing-2) 0;margin:var(--sl-spacing-8) 0 0;padding:var(--sl-spacing-5) 0 0;border-top:1px solid hsl(var(--sl-hsl-border));font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground));list-style:none}.home-hero__facts li{display:inline-flex;align-items:center}.home-hero__facts li+li::before{content:"·";margin-inline:var(--sl-spacing-3);color:hsl(var(--sl-hsl-border))}.home-hero__facts li:first-child::before{content:"";display:inline-block;width:.5rem;height:.5rem;border-radius:var(--sl-radius-full);background:hsl(var(--sl-hsl-success));margin-right:.375rem;animation:homeDotPulse 2.4s infinite var(--sl-transition-timing-in-out)}@media (max-width: 767px){.home-hero__facts{font-size:var(--sl-font-size-xs)}}@keyframes homeDotPulse{0%, 100%{opacity:1}50%{opacity:.45}}@keyframes matrixFadeOut{to{opacity:0}}@media (min-width: 900px) and (prefers-reduced-motion: no-preference){@supports (animation-timeline: scroll()){.home-hero__bg{animation:heroBgFade linear both;animation-timeline:scroll();animation-range:0 90vh}}}@keyframes heroBgFade{to{opacity:0;transform:scale(1.06) translateY(-3.5%)}}.home-manifesto__list{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));column-gap:var(--sl-spacing-16);border-top:1px solid hsl(var(--sl-hsl-border));list-style:none;margin:0;padding:0}@media (max-width: 767px){.home-manifesto__list{grid-template-columns:1fr}}.home-manifesto__item{display:grid;grid-template-columns:3.5rem 1fr;gap:var(--sl-spacing-4);padding-block:var(--sl-spacing-5);border-bottom:1px solid hsl(var(--sl-hsl-border))}.home-manifesto__item:nth-child(3){grid-column:1/-1}@media (max-width: 767px){.home-manifesto__item{grid-template-columns:1fr;gap:var(--sl-spacing-2)}.home-manifesto__item:nth-child(3){grid-column:auto}}.home-manifesto__item p{font-family:var(--sl-font-family-heading);font-weight:var(--sl-font-weight-semibold);font-size:clamp(1.125rem,2vw,1.375rem);line-height:var(--sl-line-height-tight);max-width:44ch;margin:0;color:hsl(var(--sl-hsl-foreground))}.home-manifesto__num{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-base);color:hsl(var(--sl-hsl-muted-foreground));transition:color var(--sl-transition-fast)}.home-manifesto__item:hover .home-manifesto__num{color:hsl(var(--sl-hsl-primary))}.home-post-featured{display:block;color:hsl(var(--sl-hsl-foreground));border-top:1px solid hsl(var(--sl-hsl-border));padding-block:var(--sl-spacing-8);text-decoration:none}.home-post-featured:hover .home-post__title{color:hsl(var(--sl-hsl-primary))}.home-post__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sl-spacing-3)}.home-post__date{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.home-post__title{display:block;font-family:var(--sl-font-family-heading);font-weight:var(--sl-font-weight-semibold);font-size:var(--sl-font-size-lg);color:hsl(var(--sl-hsl-foreground));transition:color var(--sl-transition-fast)}.home-post__title--featured{font-size:clamp(1.375rem,3vw,var(--sl-font-size-2xl));margin-top:var(--sl-spacing-3)}.home-post__excerpt{display:block;color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-sm);margin-top:.25rem}.home-post-featured .home-post__excerpt{font-size:var(--sl-font-size-base);margin-top:var(--sl-spacing-3);max-width:68ch}.home-post__readmore{display:inline-block;margin-top:var(--sl-spacing-4);font-weight:var(--sl-font-weight-medium);color:hsl(var(--sl-hsl-primary))}.home-posts{border-top:1px solid hsl(var(--sl-hsl-border));margin:0;padding:0;list-style:none}.home-post{border-bottom:1px solid hsl(var(--sl-hsl-border))}.home-post__link{display:grid;grid-template-columns:8.5rem 9rem minmax(0, 1fr) auto;gap:var(--sl-spacing-4);align-items:baseline;padding-block:var(--sl-spacing-4);color:inherit;text-decoration:none}.home-post__link:hover .home-post__title{color:hsl(var(--sl-hsl-primary));text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.home-post__link:hover .home-post__arrow{transform:translateX(4px);color:hsl(var(--sl-hsl-primary))}@media (max-width: 767px){.home-post__link{grid-template-columns:1fr auto;grid-template-areas:"date arrow" "title arrow" "meta meta";row-gap:.375rem}.home-post__link .home-post__date{grid-area:date}.home-post__link .home-post__meta{grid-area:meta}.home-post__link .home-post__body{grid-area:title}.home-post__link .home-post__arrow{grid-area:arrow;align-self:center}}.home-post__arrow{font-family:var(--sl-font-family-mono);color:hsl(var(--sl-hsl-muted-foreground));transition:transform var(--sl-transition-fast) var(--sl-transition-timing-in-out),color var(--sl-transition-fast)}.home-blog__cta{display:flex;flex-wrap:wrap;gap:var(--sl-spacing-3);margin-top:var(--sl-spacing-6)}.home-services__cols{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));column-gap:var(--sl-spacing-16)}@media (max-width: 767px){.home-services__cols{grid-template-columns:1fr;column-gap:0}.home-services__cols .home-services__track+.home-services__track{margin-top:var(--sl-spacing-8)}}.home-services__track-label{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);font-weight:var(--sl-font-weight-normal);text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--sl-hsl-muted-foreground));padding-block:var(--sl-spacing-4);border-bottom:1px solid hsl(var(--sl-hsl-border));margin:0}.home-service{display:grid;grid-template-columns:3.5rem 1fr;gap:var(--sl-spacing-4);padding-block:var(--sl-spacing-5);border-bottom:1px solid hsl(var(--sl-hsl-border))}@media (max-width: 767px){.home-service{grid-template-columns:1fr;gap:var(--sl-spacing-2)}}.home-service h3{font-size:var(--sl-font-size-lg);margin:0;color:hsl(var(--sl-hsl-foreground))}.home-service p{color:hsl(var(--sl-hsl-muted-foreground));margin:var(--sl-spacing-1) 0 0;font-size:var(--sl-font-size-sm);max-width:52ch}.home-service__num{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-base);color:hsl(var(--sl-hsl-muted-foreground));transition:color var(--sl-transition-fast)}.home-service:hover .home-service__num{color:hsl(var(--sl-hsl-primary))}.home-project-featured{display:grid;grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);column-gap:var(--sl-spacing-16);align-items:end;padding-block:var(--sl-spacing-8);border-top:1px solid hsl(var(--sl-hsl-border));border-bottom:1px solid hsl(var(--sl-hsl-border))}@media (max-width: 767px){.home-project-featured{grid-template-columns:1fr;row-gap:var(--sl-spacing-4);align-items:start}}.home-project-featured__kicker{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--sl-hsl-primary));margin:0}.home-project-featured h3{font-size:clamp(1.75rem,3vw,var(--sl-font-size-3xl));margin:var(--sl-spacing-3) 0 0;transition:color var(--sl-transition-fast)}.home-project-featured h3 a{color:hsl(var(--sl-hsl-foreground));text-decoration:none}.home-project-featured:hover h3 a{color:hsl(var(--sl-hsl-primary))}.home-project-featured__stack{margin:var(--sl-spacing-4) 0 0;font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.home-project-featured__desc{color:hsl(var(--sl-hsl-muted-foreground));margin:0}.home-project-featured__link{display:inline-block;margin-top:var(--sl-spacing-4);font-weight:var(--sl-font-weight-medium);color:hsl(var(--sl-hsl-primary));text-decoration:none}.home-project-featured__link:hover{text-decoration:underline;text-underline-offset:4px}.home-project-rows{margin-top:0}.home-project-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sl-spacing-3);padding-block:var(--sl-spacing-4);border-bottom:1px solid hsl(var(--sl-hsl-border));text-decoration:none;color:inherit}.home-project-row h3{font-size:var(--sl-font-size-lg);font-weight:var(--sl-font-weight-semibold);margin:0;color:hsl(var(--sl-hsl-foreground));transition:color var(--sl-transition-fast)}.home-project-row:hover h3{color:hsl(var(--sl-hsl-primary))}.home-project-row__stack{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.home-records{margin-top:var(--sl-spacing-8);border-top:1px solid hsl(var(--sl-hsl-border))}.home-record{display:grid;grid-template-columns:13rem 1fr;gap:var(--sl-spacing-4);padding-block:var(--sl-spacing-4);border-bottom:1px solid hsl(var(--sl-hsl-border))}@media (max-width: 767px){.home-record{grid-template-columns:1fr;gap:.25rem}}.home-record__label{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--sl-hsl-muted-foreground))}.home-record p{font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground));max-width:70ch;margin:0}.home-contact{text-align:center;padding-block:var(--sl-spacing-20)}@media (max-width: 767px){.home-contact{padding-block:var(--sl-spacing-12)}}.home-contact h2{font-size:clamp(1.75rem,4vw,var(--sl-font-size-4xl));max-width:24ch;margin:var(--sl-spacing-3) auto 0}.home-contact .home-section__desc{margin-inline:auto}.home-contact__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--sl-spacing-3);margin-top:var(--sl-spacing-8)}.btn-link{display:inline-block;text-decoration:none}.home-section{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16, 1, .3, 1),transform .7s cubic-bezier(.16, 1, .3, 1);will-change:transform,opacity}.home-section.is-visible{opacity:1;transform:translateY(0)}.home-hero{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.home-section{opacity:1;transform:none;transition:none}.home-hero__facts li:first-child::before{animation:none}}.mobile-menu{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:hsl(var(--sl-hsl-background));opacity:0;visibility:hidden;transition:opacity var(--sl-transition-normal) var(--sl-transition-timing-in-out),visibility 0s linear var(--sl-transition-normal)}.mobile-menu.is-active{opacity:1;visibility:visible;transition:opacity var(--sl-transition-normal) var(--sl-transition-timing-in-out)}.mobile-menu.is-active .mobile-menu__content{transform:translateY(0);opacity:1}.mobile-menu__topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--sl-spacing-4) var(--sl-spacing-5);border-bottom:1px solid hsl(var(--sl-hsl-border))}.mobile-menu__brand{font-family:var(--sl-font-family-heading);font-weight:var(--sl-font-weight-bold);font-size:var(--sl-font-size-lg);color:hsl(var(--sl-hsl-foreground));text-decoration:none}.mobile-menu__brand em{font-style:normal;color:hsl(var(--sl-hsl-primary))}.mobile-menu__close{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;background:rgba(0,0,0,0);border:1px solid hsl(var(--sl-hsl-border));border-radius:var(--sl-radius-md);color:hsl(var(--sl-hsl-foreground));cursor:pointer;transition:border-color var(--sl-transition-fast),color var(--sl-transition-fast)}.mobile-menu__close:hover{border-color:hsl(var(--sl-hsl-primary));color:hsl(var(--sl-hsl-primary))}.mobile-menu__content{flex:1;display:flex;flex-direction:column;justify-content:space-between;width:100%;max-width:100%;padding:var(--sl-spacing-8) var(--sl-spacing-5) var(--sl-spacing-6);transform:translateY(16px);opacity:0;transition:transform var(--sl-transition-medium) var(--sl-transition-timing-in-out) .05s,opacity var(--sl-transition-medium) var(--sl-transition-timing-in-out) .05s}.mobile-menu__nav{display:flex;flex-direction:column;align-items:flex-start;gap:0}.mobile-menu__link{display:flex;align-items:baseline;gap:var(--sl-spacing-4);width:100%;padding-block:var(--sl-spacing-4);border-bottom:1px solid hsl(var(--sl-hsl-border));color:hsl(var(--sl-hsl-foreground));text-decoration:none;font-family:var(--sl-font-family-heading);font-size:var(--sl-font-size-2xl);font-weight:var(--sl-font-weight-semibold);line-height:var(--sl-line-height-tight);transition:color var(--sl-transition-fast),padding-left var(--sl-transition-fast)}.mobile-menu__link::before{content:attr(data-index);font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);font-weight:var(--sl-font-weight-normal);color:hsl(var(--sl-hsl-primary))}.mobile-menu__link:hover,.mobile-menu__link:active{color:hsl(var(--sl-hsl-primary));padding-left:var(--sl-spacing-2)}.mobile-menu__footer{padding-top:var(--sl-spacing-6)}.mobile-menu__languages-label{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:hsl(var(--sl-hsl-muted-foreground));margin:0 0 var(--sl-spacing-3)}.mobile-menu__languages{display:flex;flex-wrap:wrap;gap:var(--sl-spacing-2)}.mobile-menu__lang{display:inline-flex;align-items:center;gap:var(--sl-spacing-2);padding:var(--sl-spacing-2) var(--sl-spacing-4);border:1px solid hsl(var(--sl-hsl-border));border-radius:var(--sl-radius-full);color:hsl(var(--sl-hsl-muted-foreground));text-decoration:none;font-size:var(--sl-font-size-sm);font-weight:var(--sl-font-weight-medium);transition:all var(--sl-transition-fast)}.mobile-menu__lang:hover{border-color:hsl(var(--sl-hsl-primary));color:hsl(var(--sl-hsl-foreground))}.mobile-menu__lang--active{background:hsl(var(--sl-hsl-primary));border-color:hsl(var(--sl-hsl-primary));color:hsl(var(--sl-hsl-primary-foreground))}.mobile-menu__lang--active:hover{color:hsl(var(--sl-hsl-primary-foreground))}.portfolio-page{padding:var(--sl-spacing-4) 0 var(--sl-spacing-10)}.portfolio-page__intro{max-width:48rem;margin:0 auto var(--sl-spacing-10);color:hsl(var(--sl-hsl-muted-foreground))}.portfolio-page__empty{text-align:center;color:hsl(var(--sl-hsl-muted-foreground))}.project-detail{max-width:var(--sl-container-width, 56rem);margin:0 auto;padding:var(--sl-spacing-4) 0 var(--sl-spacing-10)}.project-detail__title{margin:0 0 var(--sl-spacing-3);font-size:var(--sl-font-size-3xl);color:hsl(var(--sl-hsl-foreground))}.project-detail__desc{margin:0 0 var(--sl-spacing-4);color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-lg)}.project-detail__tech{display:flex;flex-wrap:wrap;gap:var(--sl-spacing-2);margin-bottom:var(--sl-spacing-2)}.project-detail__links{display:flex;gap:var(--sl-spacing-3)}.project-detail__body{margin-top:var(--sl-spacing-10);max-width:48rem;color:hsl(var(--sl-hsl-muted-foreground));line-height:var(--sl-line-height-relaxed)}.project-detail__body h2{font-size:var(--sl-font-size-2xl);margin:var(--sl-spacing-8) 0 var(--sl-spacing-4);color:hsl(var(--sl-hsl-foreground))}.project-detail__body h3{font-size:var(--sl-font-size-xl);margin:var(--sl-spacing-6) 0 var(--sl-spacing-3);color:hsl(var(--sl-hsl-foreground))}.project-detail__body p{margin-bottom:var(--sl-spacing-4)}.project-detail__body ul,.project-detail__body ol{margin:var(--sl-spacing-4) 0;padding-left:var(--sl-spacing-6)}.project-detail__body li{margin-bottom:var(--sl-spacing-2)}.project-detail__body code{background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-1) var(--sl-spacing-2);border-radius:var(--sl-radius-sm);font-size:.9em;color:hsl(var(--sl-hsl-primary))}.project-detail__body pre{background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-4);border-radius:var(--sl-radius-md);overflow-x:auto;margin:var(--sl-spacing-4) 0;border:1px solid hsl(var(--sl-hsl-border))}.project-detail__body pre code{background:none;padding:0;color:hsl(var(--sl-hsl-foreground))}.single-page{max-width:var(--sl-container-width, 48rem);margin:0 auto;padding:var(--sl-spacing-4) 0 var(--sl-spacing-10)}.single-page__desc{margin-bottom:var(--sl-spacing-8);color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-lg);line-height:var(--sl-line-height-relaxed)}.single-page__body{color:hsl(var(--sl-hsl-foreground));line-height:var(--sl-line-height-relaxed);overflow-wrap:break-word;word-break:break-word}.single-page__body h1,.single-page__body h2,.single-page__body h3,.single-page__body h4,.single-page__body h5,.single-page__body h6{margin:var(--sl-spacing-8) 0 var(--sl-spacing-4);color:hsl(var(--sl-hsl-foreground))}.single-page__body h2{font-size:var(--sl-font-size-2xl)}.single-page__body h3{font-size:var(--sl-font-size-xl)}.single-page__body p{margin-bottom:var(--sl-spacing-4);color:hsl(var(--sl-hsl-muted-foreground))}.single-page__body a{color:hsl(var(--sl-hsl-primary));text-decoration:none}.single-page__body a:hover{text-decoration:underline}.single-page__body ul,.single-page__body ol{margin-bottom:var(--sl-spacing-4);padding-left:var(--sl-spacing-6)}.single-page__body li{margin-bottom:var(--sl-spacing-2)}.single-page__body img{max-width:100%;height:auto;margin:var(--sl-spacing-6) 0;border-radius:var(--sl-radius-md)}.single-page__body code{background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-1) var(--sl-spacing-2);border-radius:var(--sl-radius-sm);font-size:.9em;color:hsl(var(--sl-hsl-primary))}.single-page__body pre{background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-4);border-radius:var(--sl-radius-md);overflow-x:auto;margin:var(--sl-spacing-4) 0;border:1px solid hsl(var(--sl-hsl-border))}.single-page__body pre code{background:none;padding:0;color:inherit}.single-page__body blockquote{border-left:4px solid hsl(var(--sl-hsl-primary));margin:var(--sl-spacing-4) 0;padding:var(--sl-spacing-4);background:hsl(var(--sl-hsl-muted)/.4);border-radius:0 var(--sl-radius-md) var(--sl-radius-md) 0;color:hsl(var(--sl-hsl-muted-foreground))}.blog-page{padding:var(--sl-spacing-4) 0 var(--sl-spacing-10);position:relative;z-index:1}.blog-page__container{background:hsl(var(--sl-hsl-card));border-radius:var(--sl-radius-lg);padding:var(--sl-spacing-6) var(--sl-spacing-8)}.blog-page__intro{max-width:48rem;margin:0 auto var(--sl-spacing-8);color:hsl(var(--sl-hsl-muted-foreground))}.blog-entry--list{display:block;padding:var(--sl-spacing-6) var(--sl-spacing-6)}.blog-entry--list:not(:last-child){border-bottom:1px solid hsl(var(--sl-hsl-border)/.3)}.blog-entry--list .blog-entry__list-header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sl-spacing-4);margin-bottom:0;flex-wrap:wrap}.blog-entry--list .blog-entry__title--list{margin:0;flex:1 1 minmax(0, 60%);font-size:var(--sl-font-size-xl)}.blog-entry--list .blog-entry__title--list a{color:hsl(var(--sl-hsl-foreground));text-decoration:none;transition:color var(--sl-transition-normal)}.blog-entry--list .blog-entry__title--list a:hover{color:hsl(var(--sl-hsl-primary))}.blog-entry--list time{white-space:nowrap;font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground));flex-shrink:0}.blog-entry--list .blog-entry__image{max-width:90%;margin:var(--sl-spacing-4) 0;border-radius:var(--sl-radius-md);overflow:hidden}.blog-entry--list .blog-entry__image img{width:100%;height:auto;display:block}.blog-entry--list .blog-entry__description--list{margin-top:0;margin-bottom:var(--sl-spacing-4);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.blog-entry--list .blog-entry__footer{display:flex;justify-content:center;margin-top:var(--sl-spacing-4)}.blog-entry--list .blog-entry__footer .btn-link{text-decoration:none}.blog-entry--list .blog-entry__tags,.blog-entry--list .blog-entry__categories{display:flex;flex-wrap:wrap;gap:var(--sl-spacing-1);margin-top:var(--sl-spacing-4);padding-top:var(--sl-spacing-4);border-top:1px solid hsl(var(--sl-hsl-border)/.2)}.blog-page .home-posts{display:block}.blog-pagination{display:flex;justify-content:center;align-items:center;gap:var(--sl-spacing-2);margin-top:var(--sl-spacing-10)}.blog-pagination__info{font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.blog-categories{display:block;text-align:center;margin-bottom:var(--sl-spacing-10)}@media (max-width: 767px){.blog-categories{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.5rem}.blog-categories::-webkit-scrollbar{display:none}}.blog-entry{display:block;overflow-wrap:break-word;word-break:break-word;padding-bottom:var(--sl-spacing-10)}.blog-entry:not(:last-child){border-bottom:1px solid hsl(var(--sl-hsl-border))}.blog-entry__image{width:100%;margin-bottom:var(--sl-spacing-6);border-radius:var(--sl-radius-md);overflow:hidden;position:relative;background:linear-gradient(135deg, hsl(var(--sl-hsl-muted)) 0%, hsl(var(--sl-hsl-card)) 50%, hsl(var(--sl-hsl-muted)) 100%)}.blog-entry__image img{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1}.blog-entry__image--placeholder{aspect-ratio:16/9}.blog-entry__image--placeholder::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20'/%3E%3Cpath d='M8 7h6'/%3E%3Cpath d='M8 11h8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:48px 48px;opacity:.25}.blog-entry__content{display:block}.blog-entry__meta{display:flex;justify-content:space-between;align-items:center;gap:var(--sl-spacing-4);margin-bottom:var(--sl-spacing-4);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground));flex-wrap:wrap}.blog-entry__categories{display:flex;gap:var(--sl-spacing-2);flex-wrap:wrap}.blog-entry__title{font-size:var(--sl-font-size-2xl);margin-bottom:var(--sl-spacing-3);line-height:var(--sl-line-height-tight)}.blog-entry__title a{color:hsl(var(--sl-hsl-foreground));text-decoration:none;transition:color var(--sl-transition-normal)}.blog-entry__title a:hover{color:hsl(var(--sl-hsl-primary))}.blog-entry__description{color:hsl(var(--sl-hsl-muted-foreground));line-height:var(--sl-line-height-relaxed);margin-bottom:var(--sl-spacing-6)}.blog-entry__footer{margin-top:var(--sl-spacing-4)}.blog-post{max-width:var(--sl-container-width, 52rem);margin:0 auto;padding:var(--sl-spacing-4) 0 var(--sl-spacing-10)}.blog-post__back{margin-bottom:var(--sl-spacing-6)}.blog-post__header{margin-bottom:var(--sl-spacing-6);text-align:center}.blog-post__title{font-size:var(--sl-font-size-4xl);margin:0 0 var(--sl-spacing-3);color:hsl(var(--sl-hsl-foreground))}@media (max-width: 767px){.blog-post__title{font-size:var(--sl-font-size-3xl)}}.blog-post__date{font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.blog-post__tags{display:flex;gap:var(--sl-spacing-2);flex-wrap:wrap;justify-content:center;margin-top:var(--sl-spacing-3)}.blog-post__content{color:hsl(var(--sl-hsl-foreground));line-height:var(--sl-line-height-relaxed)}.blog-post__content h2{font-size:var(--sl-font-size-2xl);margin:var(--sl-spacing-8) 0 var(--sl-spacing-4)}.blog-post__content h3{font-size:var(--sl-font-size-xl);margin:var(--sl-spacing-6) 0 var(--sl-spacing-3)}.blog-post__content p{margin-bottom:var(--sl-spacing-4);color:hsl(var(--sl-hsl-muted-foreground))}.blog-post__content code{background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-1) var(--sl-spacing-2);border-radius:var(--sl-radius-sm);font-size:.9em;color:hsl(var(--sl-hsl-primary))}.blog-post__content pre{background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-4);border-radius:var(--sl-radius-md);overflow-x:auto;margin:var(--sl-spacing-4) 0;border:1px solid hsl(var(--sl-hsl-border))}.blog-post__content pre code{background:none;padding:0;color:hsl(var(--sl-hsl-foreground))}.blog-post__content blockquote{border-left:4px solid hsl(var(--sl-hsl-primary));padding-left:var(--sl-spacing-4);margin:var(--sl-spacing-4) 0;font-style:italic;color:hsl(var(--sl-hsl-muted-foreground));background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-4);border-radius:0 var(--sl-radius-md) var(--sl-radius-md) 0}.blog-post__toc{margin-top:var(--sl-spacing-6)}.blog-post__toc details{background:hsl(var(--sl-hsl-muted)/.3);border-radius:var(--sl-radius-md);padding:var(--sl-spacing-4) var(--sl-spacing-6);border:1px solid hsl(var(--sl-hsl-border)/.3);margin-bottom:var(--sl-spacing-4)}.blog-post__toc details summary{cursor:pointer;font-weight:var(--sl-font-weight-semibold);margin-bottom:var(--sl-spacing-4);color:hsl(var(--sl-hsl-foreground))}.blog-post__toc details ul{list-style:none;padding-left:var(--sl-spacing-4)}.blog-post__toc details ul li{margin:var(--sl-spacing-2) 0}.blog-post__toc details ul li a{color:hsl(var(--sl-hsl-muted-foreground));text-decoration:none;transition:color var(--sl-transition-normal)}.blog-post__toc details ul li a:hover{color:hsl(var(--sl-hsl-primary))}.blog-post__toc details ul li ul{margin-top:var(--sl-spacing-2);list-style:none;padding-left:var(--sl-spacing-3)}.blog-post__related{margin-top:var(--sl-spacing-8);padding-top:var(--sl-spacing-6);border-top:1px solid hsl(var(--sl-hsl-border))}.blog-post__related h2{font-size:var(--sl-font-size-xl);margin-bottom:var(--sl-spacing-4);color:hsl(var(--sl-hsl-foreground))}.blog-post__related-grid{display:grid;gap:var(--sl-spacing-4);grid-template-columns:repeat(auto-fill, minmax(min(100%,280px), 1fr))}.blog-post__related-card{display:block;padding:var(--sl-spacing-4);background:hsl(var(--sl-hsl-muted)/.3);border:1px solid hsl(var(--sl-hsl-border)/.3);border-radius:var(--sl-radius-md);text-decoration:none;transition:all var(--sl-transition-normal)}.blog-post__related-card:hover{background:hsl(var(--sl-hsl-muted)/.5);border-color:hsl(var(--sl-hsl-primary)/.3);transform:translateY(-2px)}.blog-post__related-card h3{font-size:var(--sl-font-size-sm);font-weight:var(--sl-font-weight-semibold);color:hsl(var(--sl-hsl-foreground));margin-bottom:var(--sl-spacing-2);line-height:var(--sl-line-height-tight)}.blog-post__related-card time{font-size:var(--sl-font-size-xs);color:hsl(var(--sl-hsl-muted-foreground))}.notas-page{padding:var(--sl-spacing-4) 0 var(--sl-spacing-10)}.nota-page{max-width:var(--sl-container-width, 52rem);margin:0 auto;padding:var(--sl-spacing-4) 0 var(--sl-spacing-10)}.nota-page__back{margin-bottom:var(--sl-spacing-6)}.nota-page__header{margin-bottom:var(--sl-spacing-6);text-align:center}.nota-page__title{font-size:var(--sl-font-size-3xl);margin:0 0 var(--sl-spacing-3);color:hsl(var(--sl-hsl-foreground))}@media (max-width: 767px){.nota-page__title{font-size:var(--sl-font-size-2xl)}}.nota-page__date{font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.nota-page__content{color:hsl(var(--sl-hsl-muted-foreground));line-height:var(--sl-line-height-relaxed)}.nota-page__content h2{font-size:var(--sl-font-size-2xl);margin:var(--sl-spacing-6) 0 var(--sl-spacing-3);color:hsl(var(--sl-hsl-foreground))}.nota-page__content h3{font-size:var(--sl-font-size-xl);margin:var(--sl-spacing-4) 0 var(--sl-spacing-2);color:hsl(var(--sl-hsl-foreground))}.nota-page__content p{margin-bottom:var(--sl-spacing-4)}.nota-page__content code{background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-1) var(--sl-spacing-2);border-radius:var(--sl-radius-sm);font-size:.9em;color:hsl(var(--sl-hsl-primary))}.article-page{max-width:var(--sl-container-width, 52rem);margin:0 auto;padding:var(--sl-spacing-4) 0 var(--sl-spacing-10)}.article-page__back{margin-bottom:var(--sl-spacing-6)}.article-page__header{margin-bottom:var(--sl-spacing-6);text-align:center}.article-page__title{font-size:var(--sl-font-size-4xl);margin:0 0 var(--sl-spacing-3);color:hsl(var(--sl-hsl-foreground))}@media (max-width: 767px){.article-page__title{font-size:var(--sl-font-size-3xl)}}.article-page__date{font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.article-page__meta{display:flex;flex-direction:column;align-items:center;gap:var(--sl-spacing-2)}.article-page__tags{display:flex;gap:var(--sl-spacing-2);flex-wrap:wrap;justify-content:center}.article-page__image{margin-bottom:var(--sl-spacing-6);border-radius:var(--sl-radius-lg);overflow:hidden}.article-page__image img{width:100%;height:auto;display:block}.article-page__content{color:hsl(var(--sl-hsl-foreground));line-height:var(--sl-line-height-relaxed)}.article-page__content h2{font-size:var(--sl-font-size-2xl);margin:var(--sl-spacing-8) 0 var(--sl-spacing-4)}.article-page__content h3{font-size:var(--sl-font-size-xl);margin:var(--sl-spacing-6) 0 var(--sl-spacing-3)}.article-page__content p{margin-bottom:var(--sl-spacing-4);color:hsl(var(--sl-hsl-muted-foreground))}.article-page__content code{background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-1) var(--sl-spacing-2);border-radius:var(--sl-radius-sm);font-size:.9em;color:hsl(var(--sl-hsl-primary))}.article-page__content pre{background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-4);border-radius:var(--sl-radius-md);overflow-x:auto;margin:var(--sl-spacing-4) 0;border:1px solid hsl(var(--sl-hsl-border))}.article-page__content pre code{background:none;padding:0;color:hsl(var(--sl-hsl-foreground))}.article-page__content blockquote{border-left:4px solid hsl(var(--sl-hsl-primary));padding-left:var(--sl-spacing-4);margin:var(--sl-spacing-4) 0;font-style:italic;color:hsl(var(--sl-hsl-muted-foreground));background:hsl(var(--sl-hsl-muted)/.4);padding:var(--sl-spacing-4);border-radius:0 var(--sl-radius-md) var(--sl-radius-md) 0}@media (prefers-reduced-motion: no-preference){@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.blog-entry{animation:fadeIn .5s ease forwards}}.error-page{display:flex;align-items:center;justify-content:center;min-height:30rem;padding:var(--sl-spacing-10) 0}.error-page__container{text-align:center}.error-page__title{font-size:var(--sl-font-size-4xl);margin:0 0 var(--sl-spacing-3)}@media (max-width: 767px){.error-page__title{font-size:var(--sl-font-size-3xl)}}.error-page__message{color:hsl(var(--sl-hsl-muted-foreground));margin-bottom:var(--sl-spacing-6)}.comments-section{margin-top:var(--sl-spacing-8xl);padding-top:var(--sl-spacing-6xl);border-top:1px solid hsl(var(--sl-hsl-border))}.comments-section h2{font-size:var(--sl-font-size-2xl);margin-bottom:var(--sl-spacing-6xl)}.comment{margin-bottom:var(--sl-spacing-4xl);padding:var(--sl-spacing-4xl) var(--sl-spacing-4xl) var(--sl-spacing-3xl);border-radius:var(--sl-radius-md);background:hsl(var(--sl-hsl-card));box-shadow:var(--sl-shadow-sm);transition:all var(--sl-transition-fast);position:relative}.comment:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;opacity:.4;transition:opacity var(--sl-transition-fast)}.comment:hover{transform:translateX(2px);box-shadow:var(--sl-shadow-md)}.comment:hover:before{opacity:.8}.comment.mastodon:before{background:linear-gradient(to bottom, hsl(var(--sl-hsl-primary)), rgba(0,0,0,0))}.comment.bluesky:before{background:linear-gradient(to bottom, hsl(var(--sl-hsl-accent)), rgba(0,0,0,0))}.comment[style*=margin-left]{margin-top:var(--sl-spacing-2xl)}.comment[style*=margin-left]:after{content:"";position:absolute;left:-15px;top:20px;width:15px;height:1px;background:hsl(var(--sl-hsl-border));opacity:.3}.comment[style*=margin-left]:before{height:calc(100% - 15px);top:15px}@media (max-width: 767px){.comment{padding:var(--sl-spacing-3xl);margin-bottom:var(--sl-spacing-3xl)}.comment[style*=margin-left]{margin-left:15px !important}}.comment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sl-spacing-3xl)}.comment-header-main{display:flex;justify-content:flex-start;align-items:center;gap:var(--sl-spacing-3xl)}.comment-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;overflow:hidden}.comment-avatar img{width:100%;height:100%;object-fit:cover}.comment-meta{display:flex;justify-content:flex-start;align-items:center;gap:var(--sl-spacing-2xl)}.comment-author{font-weight:700;color:hsl(var(--sl-hsl-foreground));font-size:var(--sl-font-size-sm)}.comment-platform{padding:var(--sl-spacing-1xl) var(--sl-spacing-2xl);border-radius:var(--sl-radius-sm);font-size:var(--sl-font-size-sm);text-transform:capitalize;font-weight:500}.mastodon .comment-platform{background:hsl(var(--sl-hsl-primary));color:#fff}.bluesky .comment-platform{background:hsl(var(--sl-hsl-accent));color:#fff}.comment-time{color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-sm)}.comment-content{margin:var(--sl-spacing-3xl) 0;line-height:1.6;color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-sm);text-align:left;padding-bottom:var(--sl-spacing-3xl);border-bottom:1px solid hsl(var(--sl-hsl-border))}.comment-content p{margin:0;text-align:left}.comment-footer{padding-top:var(--sl-spacing-3xl);text-align:right}.comment-link{display:inline-block;font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground));text-decoration:none;transition:color var(--sl-transition-fast)}.comment-link:focus{outline:2px solid hsl(var(--sl-hsl-primary));outline-offset:2px}.comment-link:focus:not(:focus-visible){outline:none}.comment-link:focus-visible{outline:2px solid hsl(var(--sl-hsl-primary));outline-offset:2px}.comment-link:hover{color:hsl(var(--sl-hsl-primary))}.bluesky .comment-link:hover{color:hsl(var(--sl-hsl-accent))}#comments-container p{color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-sm);text-align:left;padding:var(--sl-spacing-6xl);background:hsl(var(--sl-hsl-card));border-radius:var(--sl-radius-md);margin:var(--sl-spacing-4xl) 0}.page-shell{max-width:100%;margin-inline:auto;padding-inline:var(--sl-spacing-6);padding-block:var(--sl-spacing-12) var(--sl-spacing-16)}@media (min-width: 1440px){.page-shell{max-width:90rem}}@media (max-width: 767px){.page-shell{padding-inline:var(--sl-spacing-4);padding-block:var(--sl-spacing-8) var(--sl-spacing-12)}}.page-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sl-spacing-4);margin-bottom:var(--sl-spacing-10);border-bottom:1px solid hsl(var(--sl-hsl-border));padding-bottom:var(--sl-spacing-6)}.page-header__eyebrow{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--sl-hsl-primary));margin:0 0 var(--sl-spacing-2)}.page-header h1{font-size:clamp(2rem,5vw,var(--sl-font-size-4xl));font-weight:var(--sl-font-weight-bold);line-height:var(--sl-line-height-tight);letter-spacing:-.02em;margin:0;color:hsl(var(--sl-hsl-foreground))}.page-header__desc{color:hsl(var(--sl-hsl-muted-foreground));max-width:40ch;margin:0;font-size:var(--sl-font-size-base);line-height:var(--sl-line-height-relaxed)}.row-list{list-style:none;margin:0;padding:0;border-top:1px solid hsl(var(--sl-hsl-border))}.row-item{border-bottom:1px solid hsl(var(--sl-hsl-border))}.row-link{display:grid;grid-template-columns:8.5rem minmax(0, 1fr) auto;gap:var(--sl-spacing-4);align-items:baseline;padding-block:var(--sl-spacing-5);color:inherit;text-decoration:none}.row-link:hover .row-link__title{color:hsl(var(--sl-hsl-primary));text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.row-link:hover .row-link__arrow{transform:translateX(4px);color:hsl(var(--sl-hsl-primary))}@media (max-width: 767px){.row-link{grid-template-columns:1fr auto;grid-template-areas:"date arrow" "body arrow";row-gap:.375rem}.row-link .row-link__date{grid-area:date}.row-link .row-link__body{grid-area:body}.row-link .row-link__arrow{grid-area:arrow;align-self:center}}.row-link__date{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.row-link__meta{display:flex;flex-wrap:wrap;gap:var(--sl-spacing-2);margin-top:.375rem}.row-link__title{display:block;font-family:var(--sl-font-family-heading);font-weight:var(--sl-font-weight-semibold);font-size:var(--sl-font-size-xl);color:hsl(var(--sl-hsl-foreground));transition:color var(--sl-transition-fast)}.row-link__excerpt{display:block;color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-sm);margin-top:.25rem;max-width:68ch}.row-link--with-thumb{grid-template-columns:8.5rem 6rem minmax(0, 1fr) auto}@media (max-width: 767px){.row-link--with-thumb{grid-template-columns:5.5rem 1fr auto;grid-template-areas:"date thumb arrow" "body thumb arrow"}.row-link--with-thumb .row-link__thumb{grid-area:thumb}}.row-link__thumb{width:6rem;height:4rem;object-fit:cover;border-radius:var(--sl-radius-sm);border:1px solid hsl(var(--sl-hsl-border))}@media (max-width: 767px){.row-link__thumb{width:5.5rem;height:3.5rem}}.feature-block__image{width:100%;max-height:22rem;object-fit:cover;border-radius:var(--sl-radius-lg);border:1px solid hsl(var(--sl-hsl-border));margin-bottom:var(--sl-spacing-5)}.row-link__arrow{font-family:var(--sl-font-family-mono);color:hsl(var(--sl-hsl-muted-foreground));transition:transform var(--sl-transition-fast) var(--sl-transition-timing-in-out),color var(--sl-transition-fast)}.row-link--project{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--sl-spacing-3)}.row-link--project .row-link__title{font-size:var(--sl-font-size-lg)}.row-link--project .row-link__stack{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.feature-block{display:block;color:hsl(var(--sl-hsl-foreground));border-top:1px solid hsl(var(--sl-hsl-border));border-bottom:1px solid hsl(var(--sl-hsl-border));padding-block:var(--sl-spacing-8);text-decoration:none}.feature-block:hover .feature-block__title{color:hsl(var(--sl-hsl-primary))}.feature-block__kicker{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--sl-hsl-primary));margin:0}.feature-block__title{display:block;font-family:var(--sl-font-family-heading);font-weight:var(--sl-font-weight-bold);font-size:clamp(1.5rem,3.5vw,var(--sl-font-size-3xl));line-height:var(--sl-line-height-tight);margin-top:var(--sl-spacing-3);color:hsl(var(--sl-hsl-foreground));transition:color var(--sl-transition-fast)}.feature-block__excerpt{display:block;color:hsl(var(--sl-hsl-muted-foreground));margin-top:var(--sl-spacing-3);max-width:68ch}.feature-block__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sl-spacing-3);margin-bottom:var(--sl-spacing-3)}.feature-block__date{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.feature-block__readmore{display:inline-block;margin-top:var(--sl-spacing-4);font-weight:var(--sl-font-weight-medium);color:hsl(var(--sl-hsl-primary))}.pagination{display:flex;justify-content:center;align-items:center;gap:var(--sl-spacing-3);margin-top:var(--sl-spacing-10)}.pagination__info{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.article-shell{max-width:46rem;margin-inline:auto;padding-inline:var(--sl-spacing-6)}@media (max-width: 767px){.article-shell{padding-inline:var(--sl-spacing-4)}}.article-header{margin-bottom:var(--sl-spacing-8)}.article-header__back{margin-bottom:var(--sl-spacing-6)}.article-header__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sl-spacing-3);margin-bottom:var(--sl-spacing-3)}.article-header__date{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground))}.article-header h1{font-size:clamp(1.9rem,4.5vw,var(--sl-font-size-4xl));font-weight:var(--sl-font-weight-bold);line-height:var(--sl-line-height-tight);letter-spacing:-.02em;margin:0 0 var(--sl-spacing-4);color:hsl(var(--sl-hsl-foreground));overflow-wrap:break-word}.article-header__desc{color:hsl(var(--sl-hsl-muted-foreground));font-size:var(--sl-font-size-lg);line-height:var(--sl-line-height-relaxed);margin:0}.prose{color:hsl(var(--sl-hsl-foreground));line-height:var(--sl-line-height-relaxed);overflow-wrap:break-word;word-break:break-word}.prose h1,.prose h2,.prose h3,.prose h4{color:hsl(var(--sl-hsl-foreground));margin:var(--sl-spacing-8) 0 var(--sl-spacing-4);line-height:var(--sl-line-height-tight)}.prose h1{font-size:var(--sl-font-size-3xl)}.prose h2{font-size:var(--sl-font-size-2xl)}.prose h3{font-size:var(--sl-font-size-xl)}.prose p{margin-bottom:var(--sl-spacing-4);color:hsl(var(--sl-hsl-muted-foreground))}.prose a{color:hsl(var(--sl-hsl-primary));text-decoration:none}.prose a:hover{text-decoration:underline;text-underline-offset:3px}.prose ul,.prose ol{margin-bottom:var(--sl-spacing-4);padding-left:var(--sl-spacing-6)}.prose li{margin-bottom:var(--sl-spacing-2);color:hsl(var(--sl-hsl-muted-foreground))}.prose strong,.prose b{color:hsl(var(--sl-hsl-foreground))}.prose img{max-width:100%;height:auto;margin:var(--sl-spacing-6) 0;border-radius:var(--sl-radius-md);border:1px solid hsl(var(--sl-hsl-border))}.prose code{background:hsl(var(--sl-hsl-muted)/.5);padding:var(--sl-spacing-1) var(--sl-spacing-2);border-radius:var(--sl-radius-sm);font-size:.9em;color:hsl(var(--sl-hsl-primary));font-family:var(--sl-font-family-mono)}.prose pre{background:hsl(var(--sl-hsl-card));padding:var(--sl-spacing-4);border-radius:var(--sl-radius-md);overflow-x:auto;margin:var(--sl-spacing-4) 0;border:1px solid hsl(var(--sl-hsl-border))}.prose pre code{background:none;padding:0;color:hsl(var(--sl-hsl-foreground))}.prose blockquote{border-left:3px solid hsl(var(--sl-hsl-primary));margin:var(--sl-spacing-6) 0;padding:var(--sl-spacing-3) var(--sl-spacing-4);background:hsl(var(--sl-hsl-muted)/.4);border-radius:0 var(--sl-radius-md) var(--sl-radius-md) 0;color:hsl(var(--sl-hsl-muted-foreground))}.prose hr{border:none;border-top:1px solid hsl(var(--sl-hsl-border));margin:var(--sl-spacing-8) 0}.prose table{width:100%;border-collapse:collapse;margin-bottom:var(--sl-spacing-6);font-size:var(--sl-font-size-sm)}.prose th,.prose td{border:1px solid hsl(var(--sl-hsl-border));padding:var(--sl-spacing-2) var(--sl-spacing-3);text-align:left}.prose th{background:hsl(var(--sl-hsl-muted)/.4);color:hsl(var(--sl-hsl-foreground))}.toc{margin:var(--sl-spacing-6) 0;border:1px solid hsl(var(--sl-hsl-border));border-radius:var(--sl-radius-md);background:hsl(var(--sl-hsl-card))}.toc summary{cursor:pointer;padding:var(--sl-spacing-3) var(--sl-spacing-4);font-weight:var(--sl-font-weight-medium);font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-foreground));list-style:none}.toc summary::before{content:"+ ";font-family:var(--sl-font-family-mono);color:hsl(var(--sl-hsl-primary))}.toc[open] summary::before{content:"– "}.toc ul{list-style:none;margin:0;padding:0 var(--sl-spacing-4) var(--sl-spacing-4)}.toc li{margin:0}.toc a{display:block;padding-block:.25rem;font-size:var(--sl-font-size-sm);color:hsl(var(--sl-hsl-muted-foreground));text-decoration:none}.toc a:hover{color:hsl(var(--sl-hsl-primary))}.error-shell{max-width:100%;margin-inline:auto;padding-inline:var(--sl-spacing-6);padding-block:var(--sl-spacing-20);text-align:center}@media (min-width: 1440px){.error-shell{max-width:90rem}}.error-shell__eyebrow{font-family:var(--sl-font-family-mono);font-size:var(--sl-font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:hsl(var(--sl-hsl-primary));margin:0 0 var(--sl-spacing-3)}.error-shell h1{font-size:clamp(2rem,6vw,var(--sl-font-size-5xl));margin:0 0 var(--sl-spacing-4);color:hsl(var(--sl-hsl-foreground))}.error-shell p{color:hsl(var(--sl-hsl-muted-foreground));max-width:44ch;margin:0 auto var(--sl-spacing-8)}img{max-width:100%;height:auto}.single-page__body,.blog-post__content,.nota-page__content,.article-page__content,.project-detail__body,.portfolio-page__intro{overflow-wrap:break-word;word-break:break-word}sl-section-header h1,sl-section-header h2,sl-section-header h3{overflow-wrap:break-word;word-break:break-word}.gradient-text{background:linear-gradient(135deg, hsl(var(--sl-hsl-primary)) 0%, hsl(var(--sl-hsl-accent-coral)) 100%);-webkit-background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);display:inline-block}table{width:100%;border-collapse:collapse;margin-bottom:var(--sl-spacing-6xl)}@media (max-width: 767px){table{font-size:var(--sl-font-size-sm)}}th,td{border:1px solid hsl(var(--sl-hsl-border));padding:var(--sl-spacing-3xl)}@media (max-width: 767px){th,td{padding:var(--sl-spacing-2xl)}}@media (min-width: var(--sl-breakpoint-laptop)){body{font-size:var(--sl-font-size-base)}.container{max-width:var(--sl-max-width-container)}.mobile-menu-toggle{display:none}}.page-main{padding:var(--sl-spacing-6xl) 0}.page-main__container{width:100%;max-width:var(--sl-max-width-container);margin:0 auto;padding:0}@media (max-width: 767px){.page-main__container{padding:0}}@media (min-width: 1025px) and (max-width: 1280px){.page-main__container{padding:0}}.page-main__content{width:100%;margin:var(--sl-spacing-8xl) auto;color:hsl(var(--sl-hsl-foreground))}@media (max-width: 767px){.page-main__content{margin:var(--sl-spacing-6xl) auto}}.page-main__header{margin-bottom:var(--sl-spacing-6xl)}.page-main__title{font-size:var(--sl-font-size-4xl);margin-bottom:var(--sl-spacing-4xl)}.page-main__body{font-size:var(--sl-font-size-base);line-height:1.8;color:hsl(var(--sl-hsl-foreground))}