diff --git a/css/sideart.woff2 b/css/sideart.woff2 new file mode 100644 index 0000000..9c6af1d Binary files /dev/null and b/css/sideart.woff2 differ diff --git a/css/style.css b/css/style.css index 14db4f7..5aa831f 100644 --- a/css/style.css +++ b/css/style.css @@ -187,61 +187,77 @@ button { color: var(--muted); } -/* ── sky ──────────────────────────────────────────────────────────────── - Generated, not photographed. tools/background.py renders every style into - img/bg/; inc/header.php enumerates that directory and emits one custom - property per style, so --bg-img follows html[data-bg]. Only the matching - rule's url() is fetched. Each is Bayer ordered-dithered to a few grey - levels and upscaled with pixelated rendering so the cells stay crunchy. - Regenerate everything: python tools/background.py all */ -:root { - --bg: #060606; - /* opacity of the text-column scrim; raise for busier background styles */ - --scrim: .82; +/* ── side art ─────────────────────────────────────────────────────────── + Full-height sakura in both margins: colored ASCII art (inc/art/left.html + and right.html, 104x88 characters), mirrored so the branches hang in from + the outer corners. Hidden when there's no margin. */ + +/* The art is drawn for .6em-wide characters; system monospaces range from + .5em up, which squashes it. So it gets its own: JetBrains Mono's printable + ASCII (OFL), about 4.5 KB. */ +@font-face { + font-family: sideart; + src: url(sideart.woff2) format("woff2"); } -body { position: relative; } - -/* background layer */ -body::before { - content: ""; +.side { position: fixed; - inset: 0; + top: 0; z-index: -2; - background: #060606 var(--bg-img) center center / cover no-repeat; - image-rendering: pixelated; + margin: 0; + max-width: calc(50% - 360px); + overflow: hidden; + /* 88 rows at a 1.2 line fill the height */ + font: calc(100vh / 105.6) / 1.2 sideart, monospace; + opacity: .85; + pointer-events: none; + user-select: none; } +.side i { font-style: normal; } +.side-left { left: 0; } +/* rtl only so the right panel clips on its inner edge; the art itself stays + ltr, or the bidi algorithm reorders runs of punctuation */ +.side-right { right: 0; direction: rtl; } +.side-right > span { direction: ltr; unicode-bidi: isolate; } +.side .a0 { color: #8c6068; } +.side .a1 { color: #a07076; } +.side .a2 { color: #ffb0cc; } +.side .a3 { color: #ff96be; } +.side .a4 { color: #f678ac; } +.side .a5 { color: #ffd4e4; } +.side .a6 { color: #e86098; } +.side .a7 { color: #ffecbe; } -/* Readability scrim + diagonal hatch. - The first layer is a feathered vertical band, ~880px wide and centred on - the 680px text column, sitting above the artwork (z-index -2) but below - the content. It gives every background style a consistent dark bed to - read against instead of relying on each one being quiet in the middle, - and because the edges fade out there is no visible panel or card. */ -body::after { +/* the column's shadow: the art fades out under it instead of stopping dead + beside the text. Eased falloff, as wide as about a third of the margin. */ +body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; - background: - linear-gradient(90deg, - transparent 0%, - rgba(4, 4, 4, var(--scrim)) 14%, - rgba(4, 4, 4, var(--scrim)) 86%, - transparent 100%), - radial-gradient(ellipse 70% 60% at 50% 38%, rgba(4, 4, 4, .32), transparent 82%), - repeating-linear-gradient(-45deg, rgba(240, 240, 240, .045) 0 1px, transparent 1px 8px); - background-size: 880px 100%, auto, auto; - background-position: center top, center, center; - background-repeat: no-repeat, no-repeat, repeat; + --l: calc(50% - 340px); + --r: calc(50% + 340px); + --fade: clamp(60px, (100vw - 680px) * .16, 180px); + background: linear-gradient(90deg, + transparent calc(var(--l) - var(--fade)), + color-mix(in srgb, var(--bg) 22%, transparent) calc(var(--l) - var(--fade) * .75), + color-mix(in srgb, var(--bg) 55%, transparent) calc(var(--l) - var(--fade) * .5), + color-mix(in srgb, var(--bg) 85%, transparent) calc(var(--l) - var(--fade) * .25), + var(--bg) var(--l) var(--r), + color-mix(in srgb, var(--bg) 85%, transparent) calc(var(--r) + var(--fade) * .25), + color-mix(in srgb, var(--bg) 55%, transparent) calc(var(--r) + var(--fade) * .5), + color-mix(in srgb, var(--bg) 22%, transparent) calc(var(--r) + var(--fade) * .75), + transparent calc(var(--r) + var(--fade))); } -/* cards sat on flat #161616 before; let the sky read through them */ -.status-card, -.spotify-card, -.post-body pre { background-color: rgba(6, 6, 6, .66); } -input, textarea { background: rgba(6, 6, 6, .66); } +@media (max-width: 1280px) { + .side, body::before { display: none; } +} + +@media print, (forced-colors: active) { + .side, body::before { display: none; } +} /* guestbook sign button */ .btn-sign { diff --git a/img/bg/forest-21.png b/img/bg/forest-21.png deleted file mode 100644 index 7da5c76..0000000 Binary files a/img/bg/forest-21.png and /dev/null differ diff --git a/img/bg/forest-4.png b/img/bg/forest-4.png deleted file mode 100644 index cbaca06..0000000 Binary files a/img/bg/forest-4.png and /dev/null differ diff --git a/img/bg/forest-57.png b/img/bg/forest-57.png deleted file mode 100644 index a4f080b..0000000 Binary files a/img/bg/forest-57.png and /dev/null differ diff --git a/img/bg/forest-93.png b/img/bg/forest-93.png deleted file mode 100644 index 6928e41..0000000 Binary files a/img/bg/forest-93.png and /dev/null differ diff --git a/inc/art/left.html b/inc/art/left.html new file mode 100644 index 0000000..a147e51 --- /dev/null +++ b/inc/art/left.html @@ -0,0 +1,88 @@ + -+.:===+=: : ,#@@@@@@@@@%@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%@@@@@@@@%%o + ,+-===-, .**. .X@@@@@@@@o*o*@@@@@@%@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + =**=. , o@@@@@@@%###@@@@%#%@@@%xx=x@@@@@@X@#@X#@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@ +,,:+*+, -%: -%#@@@@@@@@@@@@@@%X+=@x@@-#+o%@@@X-: .-. ,@%#%*@@@@%@@@@@@@@@@@@@@@@@@@%#@ +==+***=----;;, :#@@@@@@@@@@@@@@@#,:xX*@@;==Xo@%@%= . ,*;x@@@%@%x@@@@@@@@@@@@@x+x= +--=***+++******=-:. ;+xX+@@@@@@@@@@@@%xo@@@@@@@@@%@@@@%x: ;=,*#@@@@xx@%@@%@@#@@@+, + .,,::;;-=++++++=;:xX;,,*x*.:=*o@@@@@@@@@@@#@@@@@@@@@@@@@@@%--. :*+@@@@@@@@@@X@@@@@@X:#-=: + .,;+**==+***++**+++=*Xx@@@@@@@@@@@@@@@@@@@@@@@@@@@X@+::;;;;-o@@@@@@@@@@@@@@@%+: -* + ,;===+=: ...:=o#@@@@@@@@@@@@@@@@@@@@@@oX%@xX;,.. =*o@@@@@#o@@@@@@@@@@@,,, + .*, .:+*+*=;. ;=.,*x@x@@@@@@@@@@@@@@@@#Xx. .;=-o*;:;. ;@@@@@X+,:=o@@@@@@@@#, + ,. . ;+***+-,:- ,*o+@@@@@@@@@@* :--#o ,;x@@@@@x=%@@@@@@@%%@+--o@@#@o*. + ,; *= :++-+**=;.:x*=@@@@@@@@@@#, :; :#@@@@@@@:o@@@@@@@@@@@@##@x*: + :- :- ,++: :=++o=#@@@@@@@@@@%-,.;. ,;;+@@@#%*.@@@@@@@oo+@@@@@@@@@@@@@@@o; + .o*, ,==. ;*%@@@@@@Xx#*:o=*@%@@@@@@@@@@@@:.;:*@@*o+ ;#x@%@@@@@@@+*#- + :++- o@@@@@@@@#@@@%-#%@@@@@@@@@@@#%##@*o#;;: .-,X@@@@@@@@##- + :; ,o++#x, x#@@@@@@@@@@@@#@@@@@@@@@@@@X%%%@@@@#%%. ;@@@@@@@@@##Xo;. +, .+. -- -++, , ,@@@@@@@@@@@@@@@@@@@@@%@#@@#@@@@@@@@%= *@@@@@@@%= . , +, -x: .++; :@#xX@@%@@@@@@@@@@@@@@@@@@@@%@%@@@@@@@@%%x,,,=@@@@@x=: ;:. .+=x#, +,,. .oX- -*= ;X%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#+;X=*@X::, -x@@@@@@%* +X. ,*+: + ,::;;;:, +-; -*- x+:X@@@@@@@@@@@@@@@@@@@@@@%o@@+*@@Xxo. .o@@@@@@@X- . +. .,:---;+=;.,-=: ,o+@@@@@@@@@@@@@@@@@@@##*.+@@@@@@@%; ,+o@@@@#+; ;#+. + , .+o===;. +@@@@@@@@@@@@@@@x%#x+; +@%@@@@@@@o :X*X*, ; +#%: :=+;. ,#@@@@@@@@@@@@@@+,.::++;:.X#x@@%#X. . +=. :+=: =o+=-@@@@@@@@@o+o=..:-=; :X; .@@@%* + .-=, ;+==. .:%@@@@@@@@@x-;-..-=:+*X@x==x+,=- . %@@@@@% + :=; . ,;==+- ;@@@@@@@@@@@@X@+, .;%@@@@@@@@@@o ,,%@-,.:;;,x@@@#- + .. ,--. ;%+. :=++=++. ,o@@@@@@@@@#@@%#@+#%@@@@@@@@@@@@- .-@@@@@@o=#*#%#:*@@ + ,@%:=x#;+: : .::::-++#x#o *++%*@@@@@@@@@@@@@@@@@@@@@@@@@@X: .:::::,,-@@@@o-#@@@@@@@@@ +#@@@@@@@@%- ,;-;,,;-==o@@@%o+@@@@@@x%@@@@@@@@@@@@@@@@@@@@@;;-ox#*:=-::;-;;--;:=:.=; :;@xxX@XX= +@@@@@@%@#o++x: .,;:,.:;;;=-=*X;%x=@@@@@@@@@@@@@@@@@@@@@@@@@@@%%-,,:*@@@@%@#=-:, :+ +@@@@@@@@#%@@@xX*:::,:;;-;;=++==#o. o@@@@@@@@@@@@@@@@@@@@@@X;-:::*X:.=#@@@@%#=, ;:,.xx,;+:,, x +*%@@@%#@@@@@@@x;::;-;::,.;=,o@@@#; ;-=X%@@@@@@@@@@@@@@@@@@X=-:=o%@#%* ;@@=*+,:-;.,,,,,;-@@@%%@@@@%@Xx# +x%@@%@@@@@@@#@o;:,. .=;.:@@@@Xx;-====o#@@@@@@@@@#X@@@@@@@@%o:=x@@@@=;-=+-====--==:::+%@@@@@@@@@@@#%oo +=+XX%@@@@@@@@@o...,;#@==*oXx@X#%;;;,,.,-@@@@@@@@@@@@@@@@@@@@@@x: x@@@@X:,,,,::;-;-==-,,;#@@@@@@@@%ox+,:+ +o*=-@@@@@@@@@@@@@@@@@@%@#@@@@@@%- -, x%@@@@@@@@%#X@@@#@@@@@@@@@=;=@@-=. ::. .,=-x@@@@@@@@%@@X-;=X +@@@@@@@@@@@@@@#o%%@@@@@@@@@@@@@@@=-@o *@##@@x%-,@@@@@@@@@@@@@@@@@@@%@@%o: ,;,:,.x@@@@@@@X%@%@@X#%@ +@@@@@@@@@@x%@@@@x-@@#@@xX@@@@@@@@@@@%X+x@@@o.;%@#@@@@@@@@@@@@@@@@@@@@@@@@@@X :-.,*%@@@@@@%@@@@@%%@@@ +@@@@@@@@X=,=@@@@@@@@@@@:=#X%@@#@@@%@X**x%@##*#@@@@@@X@@@@@@@@@@@@@@@@@@@@@@*:xo=%@@%%@@X@@@@@@@@@@@@@@@@ +@@@@@@@@@#@@@@@@@%@@@@+,.,+;+. :=.*%X@X,*@X*@@#@@@@@%@@@@@@@@@@@%#@@@@@@**-;-%@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@Xo#@@@@@=*%@+++: ,*. =%@@%@%#@@@@@@@@@@@@@@@@@@@@@@@@@@%X: :@@@@@@@%@@@@@@@@@@@@@@@@@@@@#% +@@@@@@#o*x@@@@@@@@@@%x;=:,=, =@@@@x#X%@@@@@@@@@@@@@@@@@@=o%@@@@@@#:,+#@@%%XXx%@@@@@@@@@@@@@@@@@@@@@ +@%@@@@@@@@%%@@@@@@X%# ,+,Xo: *@@@%*:=*%@#@@@%Xo:X@@@@@@@==#@@@@@@@@@%=:%x ;oX@%@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@+ + ;+-,. ,x%*+X* *#%@@@@@@o ;*@@@@@@@X: :,%@@@@@%x*+;. ,-.*o@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@#*, -X+@@, ,x@%@%xo; ;x@@@@@@@@=.=#@@@@@@%o- o@%X@@@+x%o, ;@@@@@@@@@@@@@@@@ +@@@@@@@@Xo%@@@@@@# :#@@@@X,-%@@@@@%*x@@@@@@@@@@%@*X@@@@@@Xo= .;=@@@@@@@@@@=. ;%@#@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@%#****@@@@x+X@@@@@@@@@@@@@@@@%=%@%@X#%@@@@%= +@@@@@@@@+--:,:-+%@@@@@@@@@@@@@@@ +@@@@%@@%-%@@@@%#@%%@@@%@@@@@@@@%o:@@@@@@@@@@@@@.;: #@o;; .*-+@@@@@%X= :=x@x%@X%@@@@@@@@@@@@@ +@@@@==; ,@@@@@@#@@@@@@@@@#@%.--.,,,o%Xx@@@@@@@x-%+ ,o##@#X-.X#; ;X@@@#+xo@@@@@@@@@@@@ +@@@X:,,,*@@@@@@@@@@@@%@@#xo@; :;x- ;#x%@@@#%@@%@+ .*@@@@@* -*; ,-+@#o=*@@@@@@@@@@@@@ +@@@@@@:;@@@@@@@@@@@@@@@@@@@@#+ .:. ::=;=o%:#@@@@o:.X%: X@@@@@@* ,, -*++-. ::+-=%@@@@@@@@@@@@ +@@@@@@X%@@@@@@@@@@@@@@@@@@%@X; :+,:: X%%@@@#@@%@@*+, :@@@@@@@@@%**: -o%%= .;**-@@@@@@%X@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@x..;*@%oo::;++*%@@@@@@@@@@#X; ,o@@@@@@@@@++* :=; ;+;:+o@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@%#@@@@@@@@X@@@@@@%x#@@@@@@@##@@@@@@@@;,.,. .oX;#@@@@@@@@o ,=*@o@+ ;=.+X@@@@@@@@ +@@@@@@@@@@@@@@@@@#@oX#@@@@@@@@@@@@@@@XX@@@@@@X%%%%@@@@@@@@@@@@@%. ..:o;=@%X#, .%%@@%; xXo@@@@@@@@@ +*%@@@@@@@@@@@@@@ :@@@@@@@@@@@@@@@@@#-o@@@@@@@:=@@x@@@@@@@@@@@@o:. ,, -, #x+X*X@@@o; %#@@@@@@@@@@@@ +:x%@@@@@@@@@@@@x. ;X@@@@@@@@@@@@@@@@@@@@@@@@@%%X@@@@@@@@@@@@@@@%#+ .: .X#%@@@@%%@@@#.*@@@@@@@@@@@#@@ +#@#@@@@@@@#@%*oX;.**@@@@@@@@@@@@@@@@@@@@@@@@@%:#@@@@@@@@@@@@%@@*%x ; .:;@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@%@%%@%X#@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Xo@@@@o*@@@@@@@o +@o#* .*@@@@@@@@@@@@@@#+%@@@@@@@ +@@@@@@@@@@@%xx@@@@@@@@@@@@@@@@@@@@@@@@@@ox@@%%@@@@@o,.;x#@@@@o x@@@@@@;:.-;,,,;,+-o+-x%@@@@@@@%@@@@@@@@@ +#@@@@@@@@@%#x+*::X@X#@@@@@@@@@@@@@%#@@@%; ;xx%@@@@@X ,#%+o,,:@#%@@@@x@%*= ;@@@@@@@#XX#%@@@@@@@ +-;:--@@@#x@X::-;;Xo;=%@@@@@@@@@@@@@@#= ,@%:;- ,:=#+ :, :@@@@@@@@@* =X@@@@@@* +#Xo@%X*: +++=--=*%@@@*-;=*;;::x@@@@@@@@@@@@@@x. -X=,::;:-o@@%@#;,x@@@@@@@@+. -=X+@@@@%X@* ,==+::- +@oo, ,@@@@@@@x,-=; ;*%@@@@@@@@@@@@@@o#o X@%@@X=:, :%@@@@@X##@@@@@@@@%X= ;: .*@@@@@@xx. ;=- . +x@@@+;*@@@@@@#x%@@@@@@%@@@@@@%X@@@@@@%=;,:;;:::+%@@@@@@# -@@@@@*X%@@%@%@@%#;=#*,,- x%@@@@@@@@XX ,+-. +@@@@@@@@@@@@@@@@@@@@@@@@@@%X x%@@%%@o.,;-:,%xx@@@@@@%#o:.xX%@#%oXx+@%*x*##=x#@@@@: +@o@@@@@@@@= ;=- +@@@@@@@@@@@@@@@@@@@@@@@@@@@@+ .:,;*.-+--::,X@@@@@@@@@@%X*,o* *x, . .:*@@@@* .,o+=*X%;-; .+: +++@@@@@@@@@@@@@@@@@@@@@@@@@*. *oox :-;,::=*@@@@@@@@@@#*x#@@@@=:%o+; ,X#o=- ,+ +%=..@X#@%@@@@@@@*o%o@@@@%-+: =#@@@%Xx:=@@X@@@@@@@@@@@+:@@@@@@+#%@%, ,:%#@%+-@X;. :x=. . +X, -%@@@@@@@@;. ,:-,+- , o@@@@%x==%@@@@@@@@@@@@@@@%@@@@@@@X:=. -*@@@@@@%@@@#+ .*: + .Xo+#*%@@@@@=: =o+@X., ,@@%@%@@X%@@@@@@@@@@@@@@@@@@@@@@@%; .=#@@@@@@@@@@%; ,, + :X@@@@*. ,o%@@@@%. ,x@@@%+ -@@@@@@@@@@#@%;@@@@@@@@@+ o#o@@@@@@@@@@= -%x +* + ;; .@@@@@@@@=x@%@@@@%@x XX;#@o,#@%%@@@@@@%*#o*%%@@%@#=#o ;o@@@@@@@@@@@X=- . ;*@@ + **. ,::@@@@@@@@@XX%X+:o=+-o#%@@@@@@@@%#@@@@@x+*x#@o+*,::, =o#@@@@@@@@@x=+ ;o@@ + x@@@%@@@@@o*@@#%@X%@X@@@@@@@@@x,=@@@@@@@%@%@@%= ,;;=X%@@@@@@@@@@@%:@xx* +%- ,o= + :- ,X@@@@@%@@@@@@@@@@@@@@o,+@@@@@@%@@x@@@@@@%@%%@= ;#@@@@@@@@@@@@X%%@@* ::. + :; :x*X@@@@@@@@@@@@@@@@-*X=*@x*-x%@@@@@@%@%@@@%@X= +@@@@@@@@@@@@X- #*-- .;. + .x%@@@@@@@@@@@@@%;. +@@@@@:oX@@@@@@@@@@@@@@#= -@o#@#@#+X@@@@@@%=;@x-@Xo- **. *@@ + ,#@@%o.-%@@@* . +@%@%o-#@@@@@@@@@@@@@@@@=,,#@@@@@%@x;x@@@@#==@@@@@@@@;..;=+@@x%%;o%% + .=;*+ .*=+= x@%@@@@@@@@@%@@@@@@@@%%+ +@@@@@@@;:@@@@@X@X@@x@o;=. x@@@@@@=,++* + :%@@@@@@@@@@@@@@@@@@@@@;** o%+@@@@@@@@@@@@@@@@%X= ,,,;#@@@@x@X + ,+o@@@@@@X%@@@@@%@@@@X;#@@@@@@@@x%@@@@@@@@@@@@@@%;#+.. ,;*%@@X, o + ,#@@@@@@@@==%@@@@@@@@::ox@X@@@@@*-#@@@@@@@@@@@@@@%@@@o ,;@@@@@- ;x + ,#@@@@=@@@@%- .x@@%@%o ;#%X@@@@@@@@@@@@#xX;X@%@@%@%%@, :%@@@@#- -* + ##+X:=@X@+ :..+- .. ,=@@@@@@@@@@@@@@@*@@%@x%@; x@X%@- -. + .. . ;X@@@@@@@@@@@@@@@@@@##%@@@%%- ,; :--%= + ., .:X@@@@@@@@@@@@@@%@%@xx#@@%@x: ++. + -@%. ,: o@@@@@@@@@@@@@@@%x--x; .-,:x= . + , ;##: X@@@#x@@@@@@@@@@#*; :%x, \ No newline at end of file diff --git a/inc/art/right.html b/inc/art/right.html new file mode 100644 index 0000000..87dfe8c --- /dev/null +++ b/inc/art/right.html @@ -0,0 +1,88 @@ +o%%@@@@@@@@%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@%@@@@@@@@@#, : :=+===:.+- +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@%@@@@@@*o*o@@@@@@@@X. .**. ,-===-+, +@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@#X@#@X@@@@@@x=xx%@@@%#%@@@@###%@@@@@@@o , .=**= +@#%@@@@@@@@@@@@@@@@@@@%@@@@*%#%@, .-. :-X@@@%o+#-@@x@=+X%@@@@@@@@@@@@@@#%- :%- ,+*+:,, +=x+x@@@@@@@@@@@@@x%@%@@@x;*, . =%@%@oX==;@@*Xx:,#@@@@@@@@@@@@@@@#: ,;;----=***+== + ,+@@@#@@%@@%@xx@@@@#*,=; :x%@@@@%@@@@@@@@@ox%@@@@@@@@@@@@+Xx+; .:-=******+++***=-- + :=-#:X@@@@@@X@@@@@@@@@@+*: .--%@@@@@@@@@@@@@@@#@@@@@@@@@@@o*=:.*x*,,;Xx:;=++++++=-;;::,,. + *- :+%@@@@@@@@@@@@@@@o-;;;;::+@X@@@@@@@@@@@@@@@@@@@@@@@@@@@xX*=+++**++***+==**+;,. + ,,,@@@@@@@@@@@o#@@@@@o*= ..,;Xx@%Xo@@@@@@@@@@@@@@@@@@@@@@#o=:... :=+===;, + ,#@@@@@@@@o=:,+X@@@@@; .;:;*o-=;. .xX#@@@@@@@@@@@@@@@@x@x*,.=; .;=*+*+:. ,*. + .*o@#@@o--+@%%@@@@@@@%=x@@@@@x;, o#--: *@@@@@@@@@@+o*, -:,-+***+; . ., + :*x@##@@@@@@@@@@@@o:@@@@@@@#: ;: ,#@@@@@@@@@@=*x:.;=**+-++: =* ;, + ;o@@@@@@@@@@@@@@@+oo@@@@@@@.*%#@@@+;;, .;.,-%@@@@@@@@@@#=o++=: :++, -: -: + -#*+@@@@@@@%@x#; +o*@@*:;.:@@@@@@@@@@@@%@*=o:*#xX@@@@@@%*; .==, ,*o. + -##@@@@@@@@X,-. :;;#o*@##%#@@@@@@@@@@@%#-%@@@#@@@@@@@@o -++: + .;oX##@@@@@@@@@; .%%#@@@@%%%X@@@@@@@@@@@@#@@@@@@@@@@@@#x ,x#++o, ;: + , . =%@@@@@@@* =%@@@@@@@@#@@#@%@@@@@@@@@@@@@@@@@@@@@, , ,++- -- .+. , + ,#x=+. .:; :=x@@@@@=,,,x%%@@@@@@@@%@%@@@@@@@@@@@@@@@@@@@@%@@Xx#@: ;++. :x- , + :+*, .X+ *%@@@@@@x- ,::X@*=X;+#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%X; =*- -Xo. .,, + . -X@@@@@@@o. .oxX@@*+@@o%@@@@@@@@@@@@@@@@@@@@@@X:+x -*- ;-+ ,:;;;::, + .+#; ;+#@@@@o+, ;%@@@@@@@+.*##@@@@@@@@@@@@@@@@@@@+o, :=-,.;=+;---:,. . + ; ,*X*X: o@@@@@@@%@+ ;+x#%x@@@@@@@@@@@@@@@+ .;===o+. , + . .X#%@@x#X.:;++::.,+@@@@@@@@@@@@@@#, .;+=: :%# +*%@@@. ;X: ;=-:..=o+o@@@@@@@@@-=+o= :=+: .= +%@@@@@% . -=,+x==x@X*+:=-..-;-x@@@@@@@@@%:. .==+; ,=-. +-#@@@x,;;:.,-@%,, o@@@@@@@@@@%;. ,+@X@@@@@@@@@@@@; -+==;, . ;=: +@@*:#%#*#=o@@@@@@-. -@@@@@@@@@@@@%#+@#%@@#@@@@@@@@@o, .++=++=: .+%; .--, .. +@@@@@@@@@#-o@@@@-,,:::::. :X@@@@@@@@@@@@@@@@@@@@@@@@@@*%++* o#x#++-::::. : :+;#x=:%@, +=XX@Xxx@;: ;=.:=:;--;;-;::-=:*#xo-;;@@@@@@@@@@@@@@@@@@@@@%x@@@@@@+o%@@@o==-;,,;-;, -%@@@@@@@@# + +: ,:-=#@%@@@@*:,,-%%@@@@@@@@@@@@@@@@@@@@@@@@@@@=x%;X*=-=;;;:.,:;,. :x++o#@%@@@@@@ +x ,,:+;,xx.,:; ,=#%@@@@#=.:X*:::-;X@@@@@@@@@@@@@@@@@@@@@@o .o#==++=;;-;;:,:::*Xx@@@%#@@@@@@@@ +#xX@%@@@@%%@@@-;,,,,,.;-:,+*=@@; *%#@%o=:-=X@@@@@@@@@@@@@@@@@@%X=-; ;#@@@o,=;.,::;-;::;x@@@@@@@#%@@@%* +oo%#@@@@@@@@@@@%+:::==--====-+=-;=@@@@x=:o%@@@@@@@@X#@@@@@@@@@#o====-;xX@@@@:.;=. .,:;o@#@@@@@@@%@@%x ++:,+xo%@@@@@@@@#;,,-==-;-;::,,,,:X@@@@x :x@@@@@@@@@@@@@@@@@@@@@@-,.,,;;;%#X@xXo*==@#;,...o@@@@@@@@@%XX+= +X=;-X@@%@@@@@@@@x-=,. .:: .=-@@=;=@@@@@@@@@#@@@X#%@@@@@@@@%x ,- -%@@@@@@#@%@@@@@@@@@@@@@@@@@@-=*o +@%#X@@%@%X@@@@@@@x.,:,;, :o%@@%@@@@@@@@@@@@@@@@@@@,-%x@@##@* o@-=@@@@@@@@@@@@@@@%%o#@@@@@@@@@@@@@@ +@@@%%@@@@@%@@@@@@%*,.-: X@@@@@@@@@@@@@@@@@@@@@@@@@@#@%;.o@@@x+X%@@@@@@@@@@@Xx@@#@@-x@@@@%x@@@@@@@@@@ +@@@@@@@@@@@@@@@@X@@%%@@%=ox:*@@@@@@@@@@@@@@@@@@@@@@X@@@@@@#*##@%x**X@%@@@#@@%X#=:@@@@@@@@@@@=,=X@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@%-;-**@@@@@@#%@@@@@@@@@@@%@@@@@#@@*X@*,X@X%*.=: .+;+,.,+@@@@%@@@@@@@#@@@@@@@@@ +%#@@@@@@@@@@@@@@@@@@@@%@@@@@@@: :X%@@@@@@@@@@@@@@@@@@@@@@@@@@#%@%@@%= .*, :+++@%*=@@@@@#oX@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@%xXX%%@@#+,:#@@@@@@%o=@@@@@@@@@@@@@@@@@@%X#x@@@@= ,=,:=;x%@@@@@@@@@@x*o#@@@@@@ +@@@@@@@@@@@@@@@@@@%@Xo; x%:=%@@@@@@@@@#==@@@@@@@X:oX%@@@#@%*=:*%@@@* :oX,+, #%X@@@@@@%%@@@@@@@@%@ +@@@@@@@@@@@@@@@@o*.-, .;+*x%@@@@@%,: :X@@@@@@@*; o@@@@@@%#* *X+*%x, .,-+; + +@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@; ,o%x+@@@X%@o -o%@@@@@@#=.=@@@@@@@@x; ;ox%@%@x, ,@@+X- ,*#@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@#@%; .=@@@@@@@@@@=;. =oX@@@@@@X*@%@@@@@@@@@@x*%@@@@@%-,X@@@@#: #@@@@@@%oX@@@@@@@@ +@@@@@@@@@@@@@@@%+-:,:--+@@@@@@@@+ =%@@@@%#X@%@%=%@@@@@@@@@@@@@@@@X+x@@@@****#%@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@%X@%x@x=: =X%@@@@@+-*. ;;o@# :;.@@@@@@@@@@@@@:o%@@@@@@@@%@@@%%@#%@@@@%-%@@%@@@@ +@@@@@@@@@@@@ox+#@@@X; ;#X.-X#@##o, +%-x@@@@@@@xX%o,,,.--.%@#@@@@@@@@@#@@@@@@, ;==@@@@ +@@@@@@@@@@@@@*=o#@+-, ;*- *@@@@@*. +@%@@%#@@@%x#; -x;: ;@ox#@@%@@@@@@@@@@@@*,,,:X@@@ +@@@@@@@@@@@@%=-+:: .-++*- ,, *@@@@@@X :%X.:o@@@@#:%o=;=:: .:. +#@@@@@@@@@@@@@@@@@@@@;:@@@@@@ +@@@X%@@@@@@-**;. =%%o- :**%@@@@@@@@@: ,+*@@%@@#@@@%%X ::,+: ;X@%@@@@@@@@@@@@@@@@@@%X@@@@@@ +@@@@@@@@o+:;+; ;=: *++@@@@@@@@@o, ;X#@@@@@@@@@@%*++;::oo%@*;..x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@X+.=; +@o@*=, o@@@@@@@@#;Xo. .,.,;@@@@@@@@##@@@@@@@#x%@@@@@@X@@@@@@@@#%@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@oXx ;%@@%%. ,#X%@=;o:.. .%@@@@@@@@@@@@@%%%%X@@@@@@XX@@@@@@@@@@@@@@@#Xo@#@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@#% ;o@@@X*X+x# ,- ,, .:o@@@@@@@@@@@@x@@=:@@@@@@@o-#@@@@@@@@@@@@@@@@@: @@@@@@@@@@@@@@%* +@@#@@@@@@@@@@@*.#@@@%%@@@@%#X. :. +#%@@@@@@@@@@@@@@@X%%@@@@@@@@@@@@@@@@@@@@@@@@@X; .x@@@@@@@@@@@@%x: +@@@@@@@@@@@@@@@@@@@@@@@@@@;:. ; x%*@@%@@@@@@@@@@@@#:%@@@@@@@@@@@@@@@@@@@@@@@@@**.;Xo*%@#@@@@@@@#@# +@@@@@@@%+#@@@@@@@@@@@@@@*. *#o@+ o@@@@@@@*o@@@@oX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@#X%@%%@%@@@@@@@ +@@@@@@@@@%@@@@@@@%x-+o-+,;,,,;-.:;@@@@@@x o@@@@#x;.,o@@@@@%%@@xo@@@@@@@@@@@@@@@@@@@@@@@@@@xx%@@@@@@@@@@@ +@@@@@@@%#XX#@@@@@@@; =*%@x@@@@%#@:,,o+%#, X@@@@@%xx; ;%@@@#%@@@@@@@@@@@@@#X@X::*+x#%@@@@@@@@@# +:*X%@oX#+ *@@@@@@X= *@@@@@@@@@: ,: +#=:, -;:%@, =#@@@@@@@@@@@@@@%=;oX;;-::X@x#@@@--:;- +-::+==, *@X%@@@@+X=- .+@@@@@@@@x,;#@%@@o-:;::,=X- .x@@@@@@@@@@@@@@x::;;*=;-*@@@%*=--=++ +. -=; .xx@@@@@@*. :; =X%@@@@@@@@##X@@@@@%: ,:=X@@%@X o#o@@@@@@@@@@@@@@%*; ;=-,x@@@@@@@, ,oo@ +.-+, XX@@@@@@@@%x -,,*#=;#%@@%@%@@%X*@@@@@- #@@@@@@%+:::;;:,;=%@@@@@@X%@@@@@@%@@@@@@%x#@@@@@@*;+@@@x +-=; =@@@@@@@@o@+ :@@@@#x=##*x*%@+xXo%#@%Xx.:o#%@@@@@@xx%,:-;,.o@%%@@%x X%@@@@@@@@@@@@@@@@@@@@@@@@@@ +:+. ;-;%X*=+o,. *@@@@*:. . ,x* *o,*X%@@@@@@@@@@X,::--+-.*;,:. +@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ++, -=o#X, ;+o%:=@@@@#x*#@@@@@@@@@@*=::,;-: xoo* .*@@@@@@@@@@@@@@@@@@@@@@@@@++ +. .=x: .;X@-+%@#%:, ,%@%#+@@@@@@:+@@@@@@@@@@@X@@=:xX%@@@#= :+-%@@@@o%o*@@@@@@@%@#X@..=% + :*. +#@@@%@@@@@@*- .=:X@@@@@@@%@@@@@@@@@@@@@@@%==x%@@@@o , -+,-:, .;@@@@@@@@%- ,X + ,, ;%@@@@@@@@@@#=. ;%@@@@@@@@@@@@@@@@@@@@@@@%X@@%@%@@, ,.X@+o= :=@@@@@%*#+oX. +*+ x%- =@@@@@@@@@@o#o +@@@@@@@@@;%@#@@@@@@@@@@- +%@@@x, .%@@@@%o, .*@@@@X: +@@*; . -=X@@@@@@@@@@@o; o#=#@%@@%%*o#*%@@@@@@%%@#,o@#;XX x@%@@@@%@x=@@@@@@@@. ;; +@@o; +=x@@@@@@@@@#o= ,::,*+o@#x*+x@@@@@#%@@@@@@@@%#o-+=o:+X%XX@@@@@@@@@::, .** +=o, -%+ *xx@:%@@@@@@@@@@@%X=;;, =%@@%@%@@@@@@@=,x@@@@@@@@@X@%X@%#@@*o@@@@@%@@@x + .:: *@@%%X@@@@@@@@@@@@#; =@%%@%@@@@@@x@@%@@@@@@+,o@@@@@@@@@@@@@@%@@@@@X, -: +.;. --*# -X@@@@@@@@@@@@+ =X@%@@@%@%@@@@@@%x-*x@*=X*-@@@@@@@@@@@@@@@@X*x: ;: +@@* .** -oX@-x@;=%@@@@@@X+#@#@#o@- =#@@@@@@@@@@@@@@Xo:@@@@@+ .;%@@@@@@@@@@@@@%x. +%%o;%%x@@+=;..;@@@@@@@@==#@@@@x;x@%@@@@@#,,=@@@@@@@@@@@@@@@@#-o%@%@+ . *@@@%-.o%@@#, +*++,=@@@@@@x .=;o@x@@X@X@@@@@:;@@@@@@@+ +%%@@@@@@@@%@@@@@@@@@%@x =+=*. +*;=. + X@x@@@@#;,,, =X%@@@@@@@@@@@@@@@@+%o **;@@@@@@@@@@@@@@@@@@@@@%: +o ,X@@%*;, ..+#;%@@@@@@@@@@@@@@%x@@@@@@@@#;X@@@@%@@@@@%X@@@@@@o+, +x; -@@@@@;, o@@@%@@@@@@@@@@@@@@#-*@@@@@X@xo::@@@@@@@@%==@@@@@@@@#, +*- -#@@@@%: ,@%%@%@@%@X;Xx#@@@@@@@@@@@@X%#; o%@%@@x. -%@@@@=@@@@#, + .- -@%X@x ;@%x@%@@*@@@@@@@@@@@@@@@=, .. -+..: +@X@=:X+## + =%--: ;, -%%@@@%##@@@@@@@@@@@@@@@@@@X; . .. + .++ :x@%@@#xx@%@%@@@@@@@@@@@@@@X:. ,. + . =x:,-. ;x--x%@@@@@@@@@@@@@@@o :, .%@- + ,x%: ;*#@@@@@@@@@@x#@@@X :##; , \ No newline at end of file diff --git a/inc/backgrounds.php b/inc/backgrounds.php deleted file mode 100644 index f467ace..0000000 --- a/inc/backgrounds.php +++ /dev/null @@ -1,31 +0,0 @@ - pathinfo($f, PATHINFO_FILENAME), $files); - sort($names); - return $names; -} - -function bg_default(): string -{ - $all = bg_styles(); - return in_array('flow', $all, true) ? 'flow' : ($all[0] ?? ''); -} - -/** A different style on every page load. */ -function bg_pick(): string -{ - $all = bg_styles(); - return $all ? $all[random_int(0, count($all) - 1)] : ''; -} diff --git a/inc/footer.php b/inc/footer.php index d6d7f11..7b4742a 100644 --- a/inc/footer.php +++ b/inc/footer.php @@ -10,21 +10,7 @@ $build = preg_match('/[0-9a-f]{7,40}/i', $build, $m) ? $m[0] : ($build ?: 'dev') © = date('Y') ?> · build: = htmlspecialchars($build) ?> - - 1): ?> - - +
+