:root{--bg:#fdfbee;--surface:#faf2c0;--surface-2:#f5e88a;--accent:#f5c400;--accent-strong:#d7a700;--on-accent:#111111;--accent-readable:#8a6700;--text:#1a1a1a;--muted:#6b6b6b;--border:rgba(26, 26, 26, 0.12);--shadow:0 12px 32px rgba(0, 0, 0, 0.06);--shadow-hover:0 8px 24px rgba(0, 0, 0, 0.10);--header-height:0px;--radius:6px;--radius-lg:16px;--radius-full:9999px;--font-size-sm:0.85rem;--sidebar-col:minmax(220px, 280px)}:root[data-theme=dark]{--bg:#111111;--surface:#191919;--surface-2:#232323;--text:#f3f3f3;--muted:#aaaaaa;--border:rgba(255, 255, 255, 0.12);--accent:#f5c400;--accent-strong:#ffd84d;--on-accent:#111111;--shadow:0 12px 32px rgba(0, 0, 0, 0.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.65}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:100%;max-width:1100px;margin:0 auto;padding-left:1.25rem;padding-right:1.25rem}h1,h2,h3{font-family:"exo 2",sans-serif;font-weight:600;line-height:1.2;margin:0 0 .75rem}.eyebrow,.meta,.footer-inner,.pager-status,.category-label{color:var(--muted)}.footer-extras{display:flex;align-items:center;gap:1rem;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s}.footer-extras.is-visible{opacity:1;visibility:visible;transition:opacity .25s ease,visibility 0s linear 0s}.sand-widget{display:flex;align-items:center;gap:.6rem;font-size:var(--font-size-sm);color:var(--muted);user-select:none}.sand-switch{position:relative;width:44px;height:24px;border-radius:12px;border:none;-webkit-appearance:none;appearance:none;background:#e05555;cursor:pointer;padding:0;flex-shrink:0;transition:background .25s ease}.sand-switch[aria-checked=true]{background:#52ad72}.sand-switch-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;pointer-events:none;transition:left .25s ease}.sand-switch[aria-checked=true] .sand-switch-thumb{left:23px}.site-header{position:sticky;top:0;z-index:20;min-height:72px;font-family:"exo 2",sans-serif;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.header-inner,.footer-inner,.page-header{display:flex;gap:1rem;align-items:center;justify-content:space-between}.header-inner,.footer-inner{padding-block:1rem}.brand{font-weight:800;letter-spacing:.02em;font-size:clamp(1.45rem,2.2vw,1.9rem);line-height:1}.header-inner{display:grid;grid-template-columns:var(--sidebar-col)minmax(0,1fr)auto;column-gap:2rem}.main-nav{display:flex;gap:1rem;flex-wrap:wrap;justify-self:start}.main-nav a,.switcher-btn,.pager-link,.category{transition:.2s ease}.main-nav a.active,.main-nav a:hover{color:var(--accent-strong)}.controls{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;justify-self:end}.switcher{display:inline-flex;gap:.35rem;padding:.3rem;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-full)}.switcher-btn{display:inline-flex;align-items:center;justify-content:center;height:1.75rem;padding:.3rem .6rem;border-radius:var(--radius-full);border:0;background:0 0;color:var(--text);cursor:pointer;font:inherit}.switcher-btn--lang{width:4.5rem}.switcher-btn.is-active,.switcher-btn:hover{background:var(--accent);color:var(--on-accent)}.switcher-btn--icon{width:2.2rem;padding:.3rem}.theme-icon{width:1.1rem;height:1.1rem;display:none;flex-shrink:0;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;fill:none}.theme-icon--moon{fill:currentColor;stroke:none}[data-theme=light] .theme-icon--sun{display:block}[data-theme=dark] .theme-icon--moon{display:block}.hero,.category-cloud{margin:2rem 0}.error-page{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6rem 2rem;text-align:center}.error-code{font-size:8rem;font-weight:900;color:var(--accent);line-height:1;margin:0}.error-message{font-size:1.25rem;color:var(--muted);margin:1rem 0 2rem}.error-home{font-weight:600;color:var(--accent-strong);text-decoration:none}.error-home:hover{text-decoration:underline}.page-header{margin:.5rem 0 1.25rem}.page-subtitle{margin:0;color:var(--muted);font-size:var(--font-size-sm);max-width:36ch;text-align:right}.hero{padding:2rem;background:linear-gradient(135deg,var(--surface),var(--surface-2));border:2px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.hero h1{font-size:clamp(2rem,5vw,3.4rem)}.article-header h1{font-size:clamp(1.45rem,3vw,1.9rem)}.hero-text{font-size:1.1rem;max-width:60ch}.post-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}.post-card,.article{padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.post-card{display:flex;flex-direction:column;gap:.75rem;position:relative;transition:border-color .2s ease,box-shadow .2s ease}.post-card:hover{border-color:var(--accent);box-shadow:var(--shadow-hover)}.post-card h2 a::after{content:"";position:absolute;inset:0}.post-card-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;position:relative;z-index:1}.post-card-read-more{flex-shrink:0;font-size:var(--font-size-sm);font-weight:600;color:var(--accent-strong);text-decoration:none;white-space:nowrap}.post-card-read-more:hover{text-decoration:underline}[data-theme=light] .post-card-read-more{color:var(--accent-readable)}.post-card .category-list{position:relative;z-index:1}.post-card .category,.article-categories .category{background:0 0;border-color:var(--accent);color:var(--text)}.post-card .category:hover,.article-categories .category:hover{background:var(--accent);color:var(--on-accent);filter:none}.project-tech .category{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent);color:var(--text)}.post-card h2{margin:0 0 .5rem}.post-card-summary{margin:0}.article-header .meta{margin:.2rem 0 1rem}.post-card .meta{margin:.2rem 0 .45rem}.meta-reading{display:inline-flex;align-items:center;gap:.25rem}.meta-reading svg{width:.85rem;height:.85rem;flex-shrink:0}.post-card-main{min-width:0;flex:auto}.category-list,.category-cloud{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.category{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .5rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--accent);color:var(--on-accent);font-size:var(--font-size-sm);transition:background .2s ease,border-color .2s ease,color .2s ease}.category:hover{border-color:var(--accent-strong);background:var(--accent-strong);color:var(--on-accent);filter:brightness(1.08)}.pager-link:hover{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.cloud-category span{opacity:.72}.article-categories{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0}.pager-link{display:inline-flex;align-items:center;height:2.4rem;padding:0 .9rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--surface);font:inherit}.pager-link.is-disabled{opacity:.45;pointer-events:none}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.project-card{padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.75rem;transition:border-color .2s ease,box-shadow .2s ease}.project-card:hover{border-color:var(--accent);box-shadow:var(--shadow-hover)}.project-card h2{margin:0;font-size:1.1rem}.projects-section{margin-bottom:2.5rem}.projects-section-title{font-size:1.15rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text);margin:0 0 1rem}.projects-section--archived .project-card{opacity:.75}.projects-section--archived .project-card:hover{opacity:1}.project-card-summary{margin:0;color:var(--muted);font-size:var(--font-size-sm);flex:1}.project-tech .category{cursor:default}.project-links{display:flex;gap:.5rem;flex-wrap:wrap}.prose figure{margin:0 0 1rem}.prose figure img{border:1px solid var(--border)}.prose figure.rounded img{border-radius:var(--radius-lg)}.prose figure.full{width:100%}.prose figure.two-thirds{width:66%;margin-inline:auto}.prose figure.one-third{width:33%;margin-inline:auto}.prose .gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin:0 0 .1rem;align-items:stretch}.prose .gallery figure{margin:0;display:flex;flex-direction:column}.prose .gallery figure img{width:100%;flex:1;min-height:0;object-fit:cover}.prose figcaption{margin-top:.5rem;font-size:var(--font-size-sm);color:var(--muted);text-align:center}.prose h2,.prose h3{margin-top:2rem}.prose p,.prose ul,.prose ol{margin:0 0 1rem}.prose code{padding:.15rem .4rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);font-size:.9em}.prose pre{margin:0 0 1rem;border-radius:var(--radius);border:1px solid var(--border);overflow-x:auto}.prose pre code{display:block;padding:1rem 1.25rem;background:0 0;border:none;border-radius:0;font-size:.875rem;line-height:1.6;white-space:pre}.prose .highlight{margin:0 0 1rem;border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.prose .highlight pre{margin:0;border:none;border-radius:0}.prose .highlight code{padding:1rem 1.25rem;border:none;border-radius:0;font-size:.875rem;line-height:1.6}.about-section{margin-top:1.75rem}.about-section-title{font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text);margin:0 0 .75rem}.about-currently-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.currently-item{padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:.3rem}.currently-label{font-size:.95rem;color:var(--text);font-weight:500}.resume-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:0 0;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--font-size-sm);text-decoration:none;transition:border-color .2s ease,color .2s ease}.resume-btn svg{width:1rem;height:1rem;flex-shrink:0}.resume-btn:hover{border-color:var(--accent);color:var(--accent-strong)}.about-connect{display:flex;gap:.75rem;flex-wrap:wrap}.connect-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;flex:1;height:80px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--font-size-sm);text-decoration:none;transition:border-color .2s ease,box-shadow .2s ease,color .2s ease}.connect-card svg{width:1.5rem;height:1.5rem;flex-shrink:0}.connect-card:hover{border-color:var(--accent);box-shadow:var(--shadow-hover);color:var(--accent-strong)}.layout{display:grid;grid-template-columns:var(--sidebar-col)minmax(0,1fr);gap:2rem;align-items:start;max-width:1100px;margin:0 auto;padding:1.25rem}.layout--no-sidebar{grid-template-columns:1fr}.sidebar{display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:var(--header-height);align-self:start;max-height:calc(100vh - var(--header-height));overflow-y:auto;order:-1}.main-content{width:100%;min-width:0}.card{padding:1rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.avatar{width:100%;display:block;margin:0 0 1rem;object-fit:cover;border-radius:50%;aspect-ratio:1/1}.categories-sidebar-list{list-style:none;padding:0;margin:0}.categories-sidebar-list li+li{margin-top:.45rem}.category-list-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;text-decoration:none;padding:.45rem .6rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text);transition:border-color .2s ease}.category-list-link:hover{border-color:var(--accent)}.category-list-name{overflow-wrap:anywhere}.category-list-count{flex:none;min-width:1.75rem;text-align:center;padding:.1rem .45rem;border-radius:var(--radius-full);background:var(--accent);color:var(--on-accent);font-size:var(--font-size-sm);font-weight:600}.profile{text-align:center}.profile-name{margin:0 0 .75rem}.profile-summary{margin:0 0 1rem;font-size:.95rem}.contacts{display:flex;flex-direction:column;gap:.6rem}.contact-email{display:block;font-size:var(--font-size-sm);color:var(--muted);text-overflow:ellipsis;overflow:hidden;white-space:nowrap;transition:color .2s ease}.contact-email:hover{color:var(--accent-strong)}.contact-socials{display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap}.contact-social-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--muted);transition:border-color .2s ease,color .2s ease,background .2s ease}.contact-social-btn svg{width:1rem;height:1rem}.contact-social-btn:hover{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.profile,.categories-sidebar-card{background:color-mix(in srgb,var(--surface) 72%,var(--bg));border:1px solid var(--border);box-shadow:0 6px 16px rgba(0,0,0,4%)}@media(max-width:768px){.layout{grid-template-columns:1fr}.sidebar{position:static;max-height:none;overflow-y:visible}.categories-sidebar-card{display:none}}.site-footer{border-top:1px solid var(--border);margin-top:3rem}#sand-secret{color:inherit;text-decoration:none;cursor:default}@media(max-width:480px){.about-connect{display:grid;grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.profile{display:grid;grid-template-columns:150px auto;grid-template-rows:auto auto auto;gap:0 1rem;width:fit-content;margin:0 auto;padding:1rem}.avatar{grid-row:1/4;grid-column:1;width:150px;margin:0;align-self:center;aspect-ratio:1/1;object-fit:cover}.profile-name{grid-row:1;grid-column:2;font-size:1rem;margin:0;align-self:end}.contacts{grid-row:2;grid-column:2;gap:.4rem;align-self:start}.contact-socials{justify-content:center}.profile-summary{grid-row:3;grid-column:2;font-size:.85rem;margin:.5rem 0 0}}@media(max-width:800px){.site-header{position:static;backdrop-filter:none;background:var(--bg)}.post-card{flex-direction:column}.header-inner{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.brand{margin-right:auto}.main-nav{order:1;width:100%;justify-content:center}.page-header{display:flex;flex-direction:column;align-items:flex-start}.page-subtitle{display:none}.footer-inner{text-align:center;flex-direction:column}.pagination{flex-direction:column;align-items:stretch}}