.homepage .intro{max-width:680px}.homepage .eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem;font-size:.8rem;font-weight:700}.homepage .intro h1{letter-spacing:-.045em;max-width:680px;margin:0;font-size:clamp(2.25rem,5vw,4rem);font-weight:700;line-height:1.05}.homepage .lead{max-width:620px;color:var(--muted);margin:1.5rem 0 0;font-size:1.1rem;line-height:1.7}.homepage section{min-width:0}.homepage .section-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.homepage .section-heading h2{color:var(--title);margin:0;font-size:1rem;font-weight:700}.homepage .section-heading a{color:var(--muted);font-size:.85rem;text-decoration:none}.homepage .section-heading a:hover{color:var(--text)}.homepage .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.homepage .card,.homepage .post,.homepage .project{color:inherit;text-decoration:none}.homepage .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;text-decoration:none;transition:border-color .2s,transform .2s;display:block}.homepage .card:hover,.homepage .post:hover,.homepage .project:hover{border-color:var(--accent);transform:translateY(-2px)}.homepage .card-emoji{margin-bottom:.75rem;font-size:1.25rem;display:block}.homepage .card h3,.homepage .card p{margin:0}.homepage .card p{color:var(--muted);margin-top:.65rem;font-size:.9rem;line-height:1.6}.homepage .tags{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.homepage .tags span,.homepage .card-meta{color:var(--muted);font-size:.75rem}.homepage .card-meta{margin-top:1rem;display:block}@media (width<=640px){.homepage .cards{grid-template-columns:1fr}}.about .eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem;font-size:.8rem;font-weight:700}.about .content,.about .links{line-height:1.8}.about .links h2{margin-top:0}.about .content p{margin:0 0 1.5rem}.about hr{border:0;border-top:1px solid var(--border);margin:3rem 0}.about .links,.about .links h2:not(:first-child){margin-top:4rem}.about .feature{color:inherit;grid-template-columns:180px 1fr;align-items:center;gap:1.5rem;margin-top:1.5rem;text-decoration:none;display:grid}.about .feature img{object-fit:cover;border-radius:var(--radius);width:100%;height:92px;display:block}.about .feature h3{margin:0 0 .5rem}.about .feature p{color:var(--muted);margin:0}@media (width<=600px){.about .feature{grid-template-columns:1fr}}.blog,.projects{gap:3rem;display:grid}.blog .eyebrow,.projects .eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem;font-size:.8rem;font-weight:700}.posts{gap:1rem;display:grid}.posts .post{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;text-decoration:none;transition:border-color .2s,transform .2s;display:block}.posts .post-heading{text-transform:uppercase;align-items:baseline;gap:.6rem;display:flex}.posts .post-heading h2{text-transform:uppercase;margin:0;font-size:1.1rem}.posts .emoji{flex:none}.posts .post>p{color:var(--muted);margin:.65rem 0 0;font-size:.9rem;line-height:1.6}.posts .post-meta{color:var(--muted);flex-wrap:wrap;gap:.4rem;margin-top:1rem;font-size:.75rem;display:flex}.notes .note-list{border-top:1px solid var(--border)}.notes .note{border-bottom:1px solid var(--border);color:inherit;justify-content:space-between;align-items:baseline;gap:2rem;padding:1.5rem 0;text-decoration:none;transition:color .2s;display:flex}.notes .note:hover h2{color:var(--accent)}.notes .note-content{min-width:0}.notes .note h2{margin:0;font-size:1.1rem;font-weight:600;line-height:1.4}.notes .note p{color:var(--muted);margin:.4rem 0 0;font-size:.9rem;line-height:1.6}.notes .note time{color:var(--muted);white-space:nowrap;flex:none;font-size:.75rem}.notes .empty{color:var(--muted)}@media (width<=640px){.notes .note{display:block}.notes .note time{margin-top:.5rem;display:block}}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;display:grid}.project-grid .project{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;transition:border-color .2s,transform .2s;display:block;overflow:hidden}.project-grid .project img{object-fit:cover;width:100%;height:160px;display:block}.project-grid .project-content{padding:1.5rem}.project-grid .type{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem;font-size:.7rem;font-weight:700;display:block}.project-grid .project h2{margin:0;font-size:1.25rem}.project-grid .role,.project-grid .period,.project-grid .description{margin:0}.project-grid .role{margin-top:.35rem;font-size:.9rem}.project-grid .period{color:var(--muted);margin-top:.25rem;font-size:.8rem}.project-grid .description{color:var(--muted);margin-top:1rem;font-size:.9rem;line-height:1.6}@media (width<=640px){.project-grid{grid-template-columns:1fr}}.lego .lego-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;display:grid}.lego img{width:100%;display:block}.lego h3{margin:1rem 0 0}.lego p,.lego time{color:var(--muted)}.lego time{font-size:.85rem}.lego .lego-cover{object-fit:cover;border-radius:var(--radius);height:240px;margin-bottom:2rem}.lego .eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;font-size:.75rem;font-weight:700}@media (width<=700px){.lego .lego-grid{grid-template-columns:1fr 1fr}}@media (width<=450px){.lego .lego-grid{grid-template-columns:1fr}}.archive .intro{color:var(--muted);margin-bottom:3rem;line-height:1.7}.archive .intro p{margin:0}.archive .intro p+p{margin-top:1rem}.archive .intro strong{color:var(--text)}.archive .year+.year{margin-top:3rem}.archive .year h2{color:var(--title);margin:0 0 .75rem;font-size:1rem}.archive .year ul{margin:0;padding-left:1.25rem}.archive .year li{color:var(--muted);padding:.25rem 0}.archive .year a{color:var(--text);text-decoration:none}.archive .year a:hover{color:var(--accent)}.archive .post-title{font-size:.9rem}.archive .separator{margin-inline:.35rem}.archive .year small{color:var(--muted);font-size:.75rem}.post-page .description,.note-page .description,.project-page .description{color:var(--muted);margin:.75rem 0 0;font-size:1rem;line-height:1.7}.post-page .post-meta,.post-page .note-meta,.note-page .post-meta,.note-page .note-meta,.project-page .post-meta,.project-page .note-meta{color:var(--muted);margin-top:.75rem;font-size:.85rem}.post-page .archive-notice,.note-page .archive-notice{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:2.5rem;padding:1.25rem 1.5rem}.post-page .archive-notice h2,.note-page .archive-notice h2{margin:0;font-size:1rem}.post-page .archive-notice p,.note-page .archive-notice p{color:var(--muted);margin:.75rem 0 0;font-size:.9rem;line-height:1.6}.post-page .currently,.note-page .currently{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:2.5rem;font-size:.85rem;display:flex}.post-page .currently strong,.note-page .currently strong{color:var(--text)}.post-page .tags{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.post-page .tags a{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:4px;padding:.25rem .5rem;font-size:.75rem;text-decoration:none}.post-page .tags a:hover{border-color:var(--accent);color:var(--text)}.note-navigation{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;display:grid}.note-navigation a{color:var(--muted);text-decoration:none}.note-navigation a:hover{color:var(--text)}.note-navigation span,.note-navigation strong{display:block}.note-navigation span{font-size:.75rem}.note-navigation strong{color:var(--text);margin-top:.2rem;font-size:.85rem;font-weight:500}.note-navigation .next{text-align:right}.note-navigation .all-notes{text-align:center;font-size:.8rem}@media (width<=640px){.note-navigation{grid-template-columns:1fr 1fr}.note-navigation .all-notes{grid-area:1/1/auto/-1}.note-navigation .next{grid-column:2}}.project-page .project-cover{object-fit:cover;border-radius:var(--radius);width:100%;height:240px;margin-bottom:2rem;display:block}.project-page .eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;font-size:.75rem;font-weight:700}.project-page .role{margin:.5rem 0 0;font-size:1rem}.project-page .period{color:var(--muted);margin:.25rem 0 0;font-size:.85rem}.project-page .content{margin-top:3rem}:root{--background:#161320;--surface:#22173f;--border:#30254a;--text:#e6e0ff;--muted:#9f9aaf;--accent:#cdb6ff;--title:#665293;--content-width:960px;--reading-width:720px;--page-padding:24px;--radius:10px;--avatar:url(../../../images/avatar.png);font-family:Inconsolata,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}[data-theme=light]{--background:#f4f5fb;--surface:#e7e7e7;--border:#7c83a6;--text:#13162a;--muted:#545878;--accent:#665293;--title:#441688;--avatar:url(../../../images/avatar_light.png)}*,:before,:after{box-sizing:border-box}html{background:var(--background);color:var(--text)}body{background:var(--background);min-width:320px;color:var(--text);margin:0;line-height:1.6;transition:background-color .2s,color .2s}a{color:inherit}img{max-width:100%;height:auto}.site{width:min(100% - var(--page-padding) * 2, var(--reading-width));margin-inline:auto}.site-header{padding-block:3rem 2rem;position:relative}.identity-link{color:inherit;align-items:center;gap:1rem;text-decoration:none;display:inline-flex}.avatar{background:var(--avatar) no-repeat center/cover;border-radius:26%;flex:0 0 100px;width:100px;height:100px;overflow:hidden;box-shadow:0 10px 15px -3px #000000b9}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.identity-text strong{letter-spacing:-.02em;font-size:2.5rem;font-weight:700;display:block}.identity-text p{max-width:480px;color:var(--muted);margin:.3rem 0 0;font-size:.8rem;line-height:1.5}nav{flex-wrap:wrap;gap:1.25rem;margin-top:1.75rem;display:flex}nav a{color:var(--muted);font-size:.85rem;text-decoration:none;transition:color .2s}nav a:hover{color:var(--text)}main{padding-block:2rem 6rem}.page-header,.post-header,.note-header,.project-header{margin-bottom:3rem}.page-header{max-width:680px}.page-header h1,.post-header h1,.note-header h1,.project-header h1{color:var(--text);letter-spacing:-.045em;text-transform:uppercase;margin:0;font-size:clamp(2.25rem,5vw,3.5rem);font-weight:700;line-height:1.05}.page-header>p:last-child,.post-header>.description,.note-header>.description,.project-header>.description{max-width:620px;color:var(--muted);margin:1rem 0 0;font-size:1rem;line-height:1.7}.post-page,.note-page,.project-page,.archive,.projects,.blog{max-width:var(--reading-width);margin-inline:auto}li:has(input[type=checkbox]){align-items:flex-start;gap:.6rem;margin:.5rem 0;display:flex}li:has(input[type=checkbox]) input[type=checkbox]{appearance:none;border:1px solid var(--border);background:var(--card);width:1rem;height:1rem;transition:var(--transition);border-radius:3px;flex:0 0 1rem;margin:.2rem 0 0;position:relative}li:has(input[type=checkbox]) input[type=checkbox]:checked{background:var(--button);border-color:var(--button-border)}li:has(input[type=checkbox]) input[type=checkbox]:checked:after{content:"";border:solid var(--accent);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}li:has(input[type=checkbox]) input[type=checkbox]:focus-visible{outline:2px solid var(--muted);outline-offset:2px}.content h2,.content h3,.content h4{color:var(--text);letter-spacing:-.02em;line-height:1.3}.content h2{text-transform:uppercase;margin:3rem 0 1.25rem;font-size:1.5rem}.content h3{margin:2.5rem 0 1rem;font-size:1.2rem}.content h4{margin:2rem 0 .75rem;font-size:1rem}.content p{margin:0 0 1.25rem}.content a{color:var(--accent);text-underline-offset:.15em;text-decoration:underline;text-decoration-thickness:1px}.content a:hover{color:var(--text)}.content ul,.content ol{margin:0 0 1.25rem;padding-left:1.5rem}.content li+li{margin-top:.4rem}.content blockquote{border-left:2px solid var(--border);color:var(--muted);margin:2rem 0;padding-left:1.25rem}.content code{background:var(--surface);border-radius:4px;padding:.15em .35em;font-size:.9em}.content pre{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:2rem 0;padding:1.25rem;overflow-x:auto}.content pre code{background:0 0;border-radius:0;padding:0}.content .mermaid{color:var(--text);text-align:center;margin:2rem 0;padding:1.25rem;font-family:inherit;overflow-x:auto}.content .mermaid svg{width:max-content;max-width:100%;height:auto;margin:0 auto;display:block}.content .mermaid-error{color:var(--muted);text-align:left}.content img{max-width:100%;height:auto;margin:2rem auto;display:block}.content hr{border:0;border-top:1px solid var(--border);margin:3rem 0}.content table{border:1px solid var(--border-subtle);border-radius:var(--radius-md);border-collapse:separate;border-spacing:0;width:100%;margin:28px 0;font-size:.9rem;overflow:hidden}.content th,.content td{border-bottom:1px solid var(--border-subtle);padding:11px 14px}.content th[align=left],.content td[align=left]{text-align:left}.content th[align=center],.content td[align=center]{text-align:center}.content th[align=right],.content td[align=right]{text-align:right}.content th{background:var(--gray-3);color:var(--text);font-weight:600}.content td{color:var(--text-muted)}.content tr:last-child td{border-bottom:0}.homepage{gap:5rem;display:grid}.intro{max-width:680px}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem;font-size:.8rem;font-weight:700}.intro h1{max-width:680px;color:var(--text);letter-spacing:-.045em;margin:0;font-size:clamp(2.25rem,5vw,4rem);font-weight:700;line-height:1.05}.lead{max-width:620px;color:var(--muted);margin:1.5rem 0 0;font-size:1.1rem;line-height:1.7}section{min-width:0}.section-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.section-heading h2{color:var(--title);margin:0;font-size:1rem;font-weight:700}.section-heading a{color:var(--muted);font-size:.85rem;text-decoration:none}.section-heading a:hover{color:var(--text)}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:1.5rem;text-decoration:none;transition:border-color .2s,transform .2s;display:block}.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card-emoji{margin-bottom:.75rem;font-size:1.25rem;display:block}.card h3{margin:0;font-size:1rem;font-weight:700}.card p{color:var(--muted);margin:.65rem 0 0;font-size:.9rem;line-height:1.6}.tags{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.tags span{color:var(--muted);font-size:.75rem}.card-meta{color:var(--muted);margin-top:1rem;font-size:.75rem;display:block}@media (width<=640px){.cards{grid-template-columns:1fr}}.site-footer.svelte-jz8lnl{border-top:1px solid var(--border);justify-content:center;padding:2rem 0 3rem;display:flex}.site-footer.svelte-jz8lnl a:where(.svelte-jz8lnl){line-height:0;display:block}.site-footer.svelte-jz8lnl img:where(.svelte-jz8lnl){width:2.25rem;height:2.5rem;display:block}.interface-controls.svelte-1cmi4dh{position:absolute;top:3rem;right:0}.theme-toggle.svelte-1cmi4dh{border:1px solid var(--border);width:2.5rem;height:2.5rem;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;place-items:center;padding:0;transition:border-color .2s,color .2s;display:grid}.theme-icon.svelte-1cmi4dh{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:1.1rem;height:1.1rem}.theme-icon-moon.svelte-1cmi4dh,.theme-toggle.light-mode.svelte-1cmi4dh .theme-icon-sun:where(.svelte-1cmi4dh){display:none}.theme-toggle.light-mode.svelte-1cmi4dh .theme-icon-moon:where(.svelte-1cmi4dh){display:block}.theme-toggle.svelte-1cmi4dh:hover{border-color:var(--accent);color:var(--text)}.theme-toggle.svelte-1cmi4dh:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
