:root{--bg:#0a0909;--fg:#f3f0ef;--mut:#f3f0ef9e;--line:#f3f0ef1f;--soft:#f3f0ef12;--wine:#7d1a2b;--wine-t:#c23a54;--f:"Manrope",system-ui,sans-serif;--pgap:16px;--smt:40px;--t-name:800 clamp(2rem,6vw,2.75rem)/1.05 var(--f);--t-h3:800 1.2rem/1.25 var(--f);--t-label:600 .75rem/1.4 var(--f);--t-small:400 .9rem/1.55 var(--f);color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--fg);font:400 16px/1.65 var(--f);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{text-wrap:balance;margin:0}p,dd{text-wrap:pretty}a{color:var(--fg);text-underline-offset:.2em}:focus-visible{outline:2px solid var(--wine-t);outline-offset:3px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#bg{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.page{z-index:1;max-width:720px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:var(--bg);margin:0 auto;padding-bottom:72px;position:relative}.intro{align-items:center;gap:28px;padding-block:64px 40px;display:flex}.intro img{object-fit:cover;filter:grayscale();border:2px solid var(--wine);border-radius:50%;flex:none;width:128px;height:128px}h1{font:var(--t-name);letter-spacing:-.02em}.role{color:var(--wine-t);margin:6px 0 0;font-weight:600}.loc{color:var(--mut);margin:2px 0 0;font-size:.92rem}section{border-top:1px solid var(--line);scroll-margin-top:var(--smt);padding-block:40px}h2{font:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);margin-bottom:20px}#sobre p{max-width:62ch;margin:0 0 14px}.edu{border-top:1px solid var(--line);margin:18px 0 0;padding:0;list-style:none}.edu li{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr;gap:12px;padding:10px 0;font-size:.95rem;display:grid}.edu .when{color:var(--wine-t);font-variant-numeric:tabular-nums;font-weight:600}.pgrid{gap:var(--pgap);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid;container-type:inline-size}.proj{min-width:0;min-height:calc((100cqi - var(--pgap))/2);border:1px solid var(--line);background:linear-gradient(#7d1a2b29,#0000 40%);flex-direction:column;gap:6px;padding:24px;transition:border-color .2s;display:flex}.proj:hover{border-color:#f3f0ef47}.proj h3{font:var(--t-h3)}.proj .meta{font:var(--t-small);color:var(--mut);margin:0}.proj dl,.proj dd{margin:0}.proj dt{font:var(--t-label);letter-spacing:.1em;text-transform:uppercase;color:var(--wine-t);margin-top:14px}.proj dd{font-size:.95rem}.tags{flex-wrap:wrap;gap:6px;margin:auto 0 0;padding:14px 0 0;list-style:none;display:flex}.tags li{font:var(--t-label);background:var(--soft);border-radius:999px;padding:4px 10px}.plink{margin-top:8px;font-size:.9rem;font-weight:600}.plink.off{color:var(--mut);font-weight:400}.more{color:var(--mut);margin:20px 0 0;font-size:.95rem}.more a{margin-left:14px}.stack{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.stack h3{font:var(--t-label);color:var(--wine-t);margin-bottom:8px;font-size:.85rem}.stack ul{margin:0;padding:0;list-style:none}.stack li{padding:3px 0}.mail{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:12px;margin:0;display:flex}.mail .addr{font-size:1.3rem;font-weight:600}.copy{font:inherit;color:var(--fg);border:1px solid var(--wine-t);cursor:pointer;background:0 0;padding:7px 14px;font-size:.88rem;font-weight:600;transition:background-color .15s}.copy:hover{background:var(--wine)}.links{flex-wrap:wrap;gap:24px;margin:14px 0 0;display:flex}.links a{color:var(--mut);text-decoration:none}.links a:before{content:"→ ";color:var(--wine-t)}.links a:hover{color:var(--fg)}.lang{gap:2px;display:flex}.lang a{border:1px solid var(--line);color:var(--mut);padding:3px 8px;font-size:.75rem;font-weight:600;text-decoration:none}.lang a[aria-current]{color:var(--fg);border-color:var(--mut)}.index{z-index:2;grid-template-columns:14px auto;gap:16px;display:grid;position:fixed;top:120px;left:calc(50% + 408px)}#thread{width:14px;height:200px;display:block}.index nav{flex-direction:column;justify-content:space-between;height:200px;font-weight:600;display:flex}.index nav a{color:var(--mut);line-height:1;text-decoration:none;transition:color .15s}.index nav a:hover,.index nav a[aria-current]{color:var(--fg)}.index .ext{grid-column:1/-1;gap:6px;margin-top:24px;font-size:.9rem;display:grid}.index .ext a{color:var(--mut)}.index .ext a:hover{color:var(--fg)}.index .lang{margin-top:8px}.mnav{display:none}@media (width<=1140px){.index{display:none}.mnav{top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-block:18px;font-size:.9rem;font-weight:600;display:flex;position:sticky}.mnav nav{flex-wrap:wrap;gap:22px;display:flex}.mnav nav a{color:var(--mut);border-bottom:2px solid #0000;padding-bottom:2px;text-decoration:none}.mnav nav a[aria-current]{color:var(--fg);border-color:var(--wine-t)}:root{--smt:72px}}@media (width<=720px){.pgrid{grid-template-columns:1fr}.proj{min-height:0}.edu li{grid-template-columns:1fr;gap:2px}}@media (width<=620px){.intro{flex-direction:column;align-items:flex-start}.stack{grid-template-columns:1fr}.mnav{flex-wrap:wrap}}
