:root{--bg:#fff;--fg:#25242a;--muted:#74717b;--line:#e9e7ed;--purple:#7654b7;--soft:#f8f7fa;--green:#507971;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.8 'Cascadia Code','SFMono-Regular',Consolas,monospace}body.dark{--bg:#19181d;--fg:#eae7ef;--muted:#ada6b7;--line:#36313f;--purple:#b597ed;--soft:#211f27;--green:#8abfb0;color-scheme:dark}a{color:inherit;text-decoration:none}a:hover{color:var(--purple)}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--purple);outline-offset:5px}.bar{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(6vw,24px);background:var(--bg)}.filename{font-weight:700}.filename span,.syntax{color:var(--purple)}#theme{border:0;background:none;font-size:14px;color:var(--muted)}main{max-width:1000px;margin:auto;padding:68px 40px 0}.intro{display:grid;grid-template-columns:1fr 165px;gap:64px;align-items:center}.eyebrow{font-size:12px;letter-spacing:.13em;color:var(--muted)}h1{font-size:clamp(26px,3.3vw,38px);letter-spacing:-.055em;line-height:1.3;margin:18px 0 24px;font-weight:600}.cursor{color:var(--purple)}.lead{font-weight:700;font-size:18px;margin-bottom:8px}.intro p:not(.lead){color:var(--muted);margin-top:0;max-width:650px}.contact{display:inline-block;color:var(--purple);font-weight:600;padding:7px 0;margin-top:8px}figure{margin:0;transform:rotate(3deg)}figure img{width:165px;height:208px;object-fit:cover;object-position:50% 25%;filter:grayscale(1);border:1px solid var(--line);padding:5px;background:var(--bg)}figcaption{text-align:center;color:var(--muted);font-size:12px}.universe{margin:65px 0 54px;border-top:1px dashed var(--line);padding-top:24px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px}h2{font-size:21px;letter-spacing:-.04em;font-weight:600;margin:12px 0}.meta{color:var(--muted);font-size:12px}.hint{font-size:14px;color:var(--muted);margin:6px 0}#graph{height:470px;position:relative;overflow:hidden;background:radial-gradient(ellipse,var(--soft),transparent 70%)}canvas,#nodes{position:absolute;inset:0;width:100%;height:100%}.node{position:absolute;border:0;background:none;transform:translate(-50%,-50%);font-size:12px;white-space:nowrap;text-align:center;padding:8px;color:var(--muted);min-height:44px}.node i{display:block;margin:0 auto 5px;width:8px;height:8px;background:currentColor;border-radius:50%;box-shadow:0 0 0 5px var(--bg);transition:box-shadow .2s,transform .2s}.node:hover,.node:focus-visible{color:var(--purple);z-index:3}.node:hover i,.node:focus-visible i{transform:scale(1.5);box-shadow:0 0 0 9px var(--soft)}.node.project{color:var(--purple)}.node.personal{color:var(--green)}.node.central{font-weight:bold;font-size:15px;color:var(--fg)}.node.central i{width:17px;height:17px;background:var(--purple)}.legend{display:flex;justify-content:center;gap:28px;font-size:12px;color:var(--muted)}.legend span:first-child{color:var(--purple)}.legend span:last-child{color:var(--green)}.link-section{border-top:1px dashed var(--line);padding:20px 0 26px}.link-section ul{list-style:none;padding:0;margin:16px 0}.link-section li{padding:9px 0 9px 24px;position:relative}.link-section li:before{content:'-';position:absolute;left:0;color:var(--muted)}.link-section a{color:var(--purple);overflow-wrap:anywhere}.link-section a:before{content:'[[';opacity:.55}.link-section a:after{content:']]';opacity:.55}.desc{display:block;font-size:14px;color:var(--muted)}.socials{display:flex;flex-wrap:wrap;column-gap:25px}.personal-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin:16px 0}.personal-links button{border:0;background:transparent;color:var(--green);padding:6px 0;font-size:14px}.personal-links button:hover{text-decoration:underline}footer{border-top:1px solid var(--line);padding:30px 0 40px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:15px;color:var(--muted);font-size:12px}dialog{background:var(--bg);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:0;width:min(660px,94vw);max-height:90vh;box-shadow:0 20px 100px #0004}dialog::backdrop{background:#141018a6;backdrop-filter:blur(5px)}.note-top{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;background:var(--soft);border-bottom:1px solid var(--line);font-size:14px;color:var(--muted);position:sticky;top:0}.note-top button{border:0;background:none;font-size:26px;width:40px;height:40px}.note-body{padding:10px 28px 28px}.note-body p{color:var(--muted)}.note-body img{width:auto;height:auto;max-width:100%;max-height:65vh;display:block;margin:20px auto 0;object-fit:contain}.note-body img.archive{max-height:none;width:100%}@media(max-width:650px){main{padding:34px 22px 0}.intro{gap:18px;grid-template-columns:1fr 85px}.intro figure{align-self:start;margin-top:42px}.intro figure img{width:85px;height:110px}.intro figcaption{display:none}.intro p,.intro .contact{grid-column:1/-1}.intro>div{display:contents}.intro .eyebrow,.intro h1{grid-column:1}.intro .eyebrow{font-size:10px;grid-row:1}.intro h1{grid-row:2;margin:0}.intro figure{grid-column:2;grid-row:1/3;margin:0}.intro .lead{margin:10px 0 0;font-size:17px}.intro p:not(.lead){font-size:15px;margin:0}.universe{margin-top:38px}.meta{display:none}#graph{height:460px;margin:0 -15px;width:calc(100% + 30px)}.node{font-size:10px;white-space:normal;width:104px;line-height:1.35;padding:6px}.legend{gap:16px;font-size:11px}h2{font-size:19px}.note-body{padding:10px 20px 20px}.link-section a{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.link-section li[id]{scroll-margin-top:90px}.link-section li:target{background:var(--soft);outline:1px solid var(--line);border-radius:4px}
