1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/* tjp.lol — shared styles. Plain CSS, no JS anywhere on this site. */
:root{
--bg:#f4f4f1; --fg:#232322; --muted:#77776f; --rule:#d8d8d1;
--accent:#2f6f4f; --accent-hover:#1f513a; --card:#ecece7;
--measure:46rem;
--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
:root{
--bg:#131413; --fg:#d7d9d2; --muted:#82857b; --rule:#2a2c28;
--accent:#6fbf93; --accent-hover:#8fd6ac; --card:#1b1d1a;
}
}
*{box-sizing:border-box;}
html{font-size:17px;}
body{
margin:0; background:var(--bg); color:var(--fg);
font-family:var(--sans); line-height:1.62; -webkit-text-size-adjust:100%;
}
code,kbd,samp,pre,.mono,nav.main a,time,.k,h1.brand{font-family:var(--mono);}
a{color:var(--accent); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px;}
a:hover{color:var(--accent-hover);}
a:visited{color:var(--accent);}
.wrap{max-width:var(--measure); margin:0 auto; padding:0 1.4rem;}
img{max-width:100%; height:auto;}
hr{border:0; border-top:1px dashed var(--rule); margin:2rem 0;}
/* content lists (chrome lists like ul.posts/.links/.tags opt out via list-style:none + own sizes) */
ol,ul{font-size:.96em; line-height:1.45;}
ol li,ul li{margin:.15rem 0;}
li::marker{font-family:var(--mono); color:var(--muted); font-size:.85em;}
/* ---- masthead ---- */
header.site{padding:2.4rem 0 1.2rem;}
h1.brand{font-size:1.5rem; margin:0; font-weight:700; letter-spacing:-.02em;}
h1.brand a{color:var(--fg); text-decoration:none;}
h1.brand .cur{color:var(--accent); font-weight:400;}
header.site .tag{color:var(--muted); margin:.45rem 0 0; font-size:.98rem;}
nav.main{margin-top:1.1rem; padding-top:1rem; border-top:1px dashed var(--rule);
display:flex; flex-wrap:wrap; gap:.4rem 1rem; font-size:.92rem;}
nav.main a{color:var(--fg); text-decoration:none;}
nav.main a::before{content:"["; color:var(--muted); margin-right:.15rem;}
nav.main a::after{content:"]"; color:var(--muted); margin-left:.15rem;}
nav.main a:hover{color:var(--accent);}
nav.main a[aria-current="page"]{color:var(--accent);}
main{padding:1.4rem 0 1rem;}
section{margin:2.2rem 0;}
h1:not(.brand),h2,h3,h4,h5{font-family:var(--mono); color:var(--muted); font-weight:400;
letter-spacing:.02em; margin:0 0 .9rem;}
h1:not(.brand)::before{content:"# ";}
h2::before{content:"## ";}
h3::before{content:"### ";}
h4::before{content:"#### ";}
h5::before{content:"##### ";}
:is(h1:not(.brand),h2,h3,h4,h5)::before{color:var(--accent);}
.intro p{margin:0 0 .9rem; font-size:1.06rem;}
/* ---- post/note lists ---- */
ul.posts{list-style:none; margin:0; padding:0; font-size:.98rem;}
ul.posts li{display:flex; gap:1rem; align-items:baseline; padding:.34rem 0;}
ul.posts time{color:var(--muted); font-size:.82rem; white-space:nowrap; min-width:6rem; font-variant-numeric:tabular-nums;}
ul.posts a{text-decoration:none; color:var(--fg);}
ul.posts a:hover{color:var(--accent); text-decoration:underline;}
@media (max-width:30rem){ul.posts li{flex-direction:column; gap:.05rem;}}
.tags{display:flex; flex-wrap:wrap; gap:.4rem; font-family:var(--mono); font-size:.85rem;}
.tags a{text-decoration:none; color:var(--muted);}
.tags a::before{content:"#";}
.tags a:hover{color:var(--accent);}
.cols{display:grid; grid-template-columns:1fr 1fr; gap:1.6rem 2rem;}
@media (max-width:34rem){.cols{grid-template-columns:1fr;}}
.links{list-style:none; margin:0; padding:0; font-size:.95rem;}
.links li{padding:.24rem 0; display:flex; gap:.8rem;}
.links .k{color:var(--muted); font-size:.8rem; min-width:4.6rem;}
.links a{text-decoration:none;} .links a:hover{text-decoration:underline;}
/* ---- long-form article ---- */
article.post{font-size:1.08rem; line-height:1.7;}
article.post .post-head{margin:0 0 2rem;}
article.post h1{font-size:1.85rem; line-height:1.2; letter-spacing:-.02em; margin:.2rem 0 .5rem;}
article.post > h1,article.post .note-body > h1{margin-bottom:2.2rem;}
article.post .meta{color:var(--muted); font-size:.85rem; font-family:var(--mono);}
article.post h2{font-size:1.3rem; margin:2.2rem 0 .7rem; letter-spacing:-.01em;}
article.post h3{font-size:1.08rem; margin:1.8rem 0 .5rem;}
article.post p{margin:0 0 1.1rem;}
article.post ul,article.post ol{margin:0 0 1.1rem; padding-left:1.3rem;}
article.post blockquote{margin:1.4rem 0; padding:.2rem 0 .2rem 1.1rem; border-left:3px solid var(--accent);
color:var(--muted); font-style:italic;}
article.post code{background:var(--card); padding:.1rem .35rem; border-radius:3px; font-size:.9em;}
article.post pre{background:var(--card); border:1px solid var(--rule); border-radius:6px;
padding:1rem 1.1rem; overflow-x:auto; font-size:.86rem; line-height:1.55;}
article.post pre code{background:none; padding:0;}
article.post a{text-underline-offset:3px;}
.post-nav{display:flex; justify-content:space-between; gap:1rem; margin-top:2.4rem;
padding-top:1.2rem; border-top:1px dashed var(--rule); font-size:.9rem;}
.post-nav a{text-decoration:none;}
/* ---- notes / wiki ---- */
.note-body{font-size:1.05rem; line-height:1.7;}
.note-body a.wiki{text-decoration:none; border-bottom:1px solid var(--rule);}
.note-body a.wiki:hover{border-bottom-color:var(--accent);}
.backlinks{margin-top:2.4rem; padding-top:1.2rem; border-top:1px dashed var(--rule);}
.backlinks h2{font-size:.8rem; font-family:var(--mono); color:var(--muted); font-weight:400; margin:0 0 .6rem;}
.note-index{columns:2; column-gap:2rem; font-size:.98rem;}
@media (max-width:34rem){.note-index{columns:1;}}
.note-index a{display:block; padding:.2rem 0; text-decoration:none;}
.note-index a:hover{text-decoration:underline;}
/* ---- footer ---- */
footer{border-top:1px dashed var(--rule); margin-top:2.4rem; padding:1.4rem 0 3rem;
color:var(--muted); font-size:.85rem;}
.ring{display:flex; gap:.9rem; align-items:center; flex-wrap:wrap; margin-bottom:.7rem; font-family:var(--mono);}
.ring a{text-decoration:none;}
footer a{color:var(--muted);} footer a:hover{color:var(--accent);}
|