Compare commits
11 Commits
af04f61821
...
main
Author | SHA1 | Date | |
---|---|---|---|
f9f6542597 | |||
e962fd1ebe | |||
23bee4569d | |||
087aa4ee5a | |||
85b4e2e994 | |||
65b68b3600 | |||
7e4c8fdebc | |||
e40d145225 | |||
bf3d60fdc2 | |||
b444b59533 | |||
2ac26f935a |
@ -540,6 +540,13 @@ export default {
|
||||
description:
|
||||
"Democracy faces an unprecedented threat from an authoritarian movement built on lies and contempt for the rule of law. The first and most critical defense of democracy—a robust, independent free press—has been missing in action. Corporate and billionaire media owners have shied away from confrontation, engaged in false equivalence, and sought to curry favor with Donald Trump. It is hardly surprising that readers and viewers are fleeing from these outlets. Americans need an alternative. The Contrarian is that alternative: unflinching, unapologetic, and unwavering in its commitment to truth-telling.",
|
||||
},
|
||||
{
|
||||
title: "The 74",
|
||||
feedUrl: "https://www.the74million.org/feed/",
|
||||
url: "https://www.the74million.org/",
|
||||
description:
|
||||
"The 74 is a nonprofit news organization covering America’s education system from early childhood through college and career.",
|
||||
},
|
||||
{
|
||||
title: "The Contrarian",
|
||||
feedUrl: "https://themarkup.org/feeds/rss.xml",
|
||||
|
@ -35,6 +35,11 @@ export default {
|
||||
linkDisplay: "Galleries",
|
||||
linkURL: "/galleries/",
|
||||
},
|
||||
{
|
||||
iconURL: "/img/icons/breeze/story-editor.svg",
|
||||
linkDisplay: "Guestbook",
|
||||
linkURL: "/guestbook/",
|
||||
},
|
||||
{
|
||||
iconURL: "/img/icons/breeze/news-subscribe.svg",
|
||||
linkDisplay: "Life Updates",
|
||||
|
@ -11,5 +11,6 @@
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
<a href="/sitemap/">Sitemap</a>
|
||||
<a href="/special/flying-toasters" style="color: var(--background-color); text-decoration: none;">Fly</a>
|
||||
</p>
|
||||
</footer>
|
||||
|
@ -3,6 +3,6 @@ layout: layouts/base.njk
|
||||
showPostListHeader: yep
|
||||
---
|
||||
<h1>I'm Nathan; welcome friend.</h1>
|
||||
<p class="nodropcap page-block">My name is Nathan Upchurch, and this is my personal website and blog, where I write about all sorts of <a href="/tags">things</a> that I find interesting. On this website, you can learn more <a href="about">about me</a>, see <a href="now">what I’ve been up to lately</a>, <a href="blog">read my blog</a>, look at some <a href="galleries">pictures</a>, or explore the <a href="sitemap">sitemap</a> to see what else you can do here.</p>
|
||||
<p class="nodropcap page-block">My name is Nathan Upchurch, and this is my personal website and blog, where I write about all sorts of <a href="/tags">things</a> that I find interesting. On this website, you can learn more <a href="about">about me</a>, sign my <a href="guestbook">guestbook</a>, see <a href="now">what I’ve been up to lately</a>, <a href="blog">read my blog</a>, look at some <a href="galleries">pictures</a>, or explore the <a href="sitemap">sitemap</a> to see what else you can do here.</p>
|
||||
|
||||
{{ content | safe }}
|
||||
|
@ -0,0 +1,70 @@
|
||||
---
|
||||
title: "An Evening with “America’s Best Incense:” Wild Berry"
|
||||
description: "I review $40 worth of Wild Berry incense in an evening."
|
||||
date: 2025-08-09
|
||||
tags:
|
||||
- Incense
|
||||
- Incense Review
|
||||
synopsis: "I review $40 worth of Wild Berry incense in an evening."
|
||||
imageURL: "/img/wildBerry/wild_berry_incense_sticks.webp"
|
||||
imageAlt: "Several packs of incense sticks with a ruler on top showing a stick length significantly below eleven inches, as well as some three plus inches of uncoated bamboo stick."
|
||||
mastodon_id: "115007567342939989"
|
||||
---
|
||||
In a [recent post](https://incenseinthewind.blogspot.com/2025/08/rasbihari-lal-absolute-oud.html?sc=1754495465540#c8441585320216937517), our friend Steve of Incense in The Wind described those with an aversion to perfume-dipped incense sticks as *prejudiced*. This has invited some self reflection. Dear reader, I think I may have been called out[^1].
|
||||
|
||||
It is true that I typically enjoy incense made out of, well, incense, but hell, maybe it's time to challenge this *blatant elitism*! After all, aren't incense sticks carefully constructed from sawdust, Elmer's glue, and various mysterious liquids named after [illicit substances](https://web.archive.org/web/20210910075942/https://www.stoutmonk.com/image/cache/data/Flute-Cannabish-250x250.jpg) and [public figures](https://web.archive.org/web/20250116044541/https://www.theculturalexchangeshop.com/details.php?id=4933) just as valid?! It's time to check my privilege, confront my prejudices, and find out. Yes, my friend, I've had the Ossetra caviar slapped out of my mouth, and no sooner than the blini landed on my Persian rug (crème fraîche down) have I set off to my nearest [Waffle House](https://knowyourmeme.com/memes/subcultures/waffle-house) for a real, honest, down-to-earth, working-man's meal. Folks, I am *excited* about this one. In this article we're putting down our highfalutin Japanese sticks and exploring “America’s Best Incense[^2]:” [Wild Berry](https://wild-berry.com/).
|
||||
|
||||
Wild Berry sells an *incredible* variety of fragrances, and I've chosen six of them: some fruits, some resins, and some fragrances that I'd expect to be more like compositions rather than single notes. When placing the order, I noticed that the website sold resealable bags for a dollar or two. Not wanting to waste money, and figuring they wouldn't mind parting with ten cents worth of plastic for a $40 order, I entered a note asking whether they could throw in a few, provided the bags the incense came in by default couldn't be resealed.
|
||||
|
||||
As I brought my laundry basket downstairs earlier today I checked the front porch for parcels. Jackpot. I've got the apartment to myself and nothing better to do, so I figure I'll order a takeaway, binge-watch some [Foundation](https://www.rottentomatoes.com/tv/foundation), and try some of "America's Best" incense sticks while my laundry thumps around in the drier. I open the box, plonk it on the coffee table and began to rifle through the selection. Not a resealable bag in sight. Great; now the smell of this stuff is going to be slowly leeching into my apartment for time immemorial. I do however get a sticker and five sample sticks of "Mango Passion."
|
||||
|
||||
[](/img/wildBerry/wild_berry_incense_sticks.webp)
|
||||
|
||||
The "eleven inch" sticks all come markedly short of eleven inches, and they each have some three-plus inches of bare bamboo stick. Some appear to be machine extruded while others show a coating gradient typical with powder-coated sticks. Strange. I start with a strawberry cone:
|
||||
|
||||
## Strawberry (Cones)
|
||||
I'm *sure* I had these before. I have a feeling they may have been among the incense I picked up from a gas station near my school that I used to frequent not only for [the drinks with the wee glass lizards on them](https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2Feaqi1o3yv2441.jpg)[^3], but for their gargantuan incense display. The cones have surprisingly little fragrance before they are burned. Upon lighting, they produce a large amount of smoke. There is a sweet, strikingly artificial, strawberry-like fragrance in the burn. It's reminds me of a strawberry juice-box or fruit snack that's 99% apple juice with a hint of strawberry essence. But mostly, I smell the charcoal and some accelerant. The smell is nostalgic, but not good by any stretch. My throat is already feeling slightly irritated; an inauspicious start. Moving on swiftly.
|
||||
|
||||
## Coconut
|
||||
These have a very strong fragrance on the stick. It's sweet and acidic, almost more like a piña colada that coconut. It smells quite delicious. This fragrance is also inducing some nostalgia for me. On lighting, an aggressively sooty flame leaps to cover the first centimeter or so of the stick; oil appears to emerge from the stick directly beneath the flame. The fragrance upon extinguishing the flame is shocking. It's *foul*: vaporized wax, burning plastic, and some odd fishy note with a hint of artificial coconut. It's the kind of smell that makes you feel that your lifespan is being reduced. I put the stick out in short order.
|
||||
|
||||
## Frankincense
|
||||
I was keen to try this one; I wanted to know how close it would be to its namesake. Not remotely, as it happens. You ever walk into a Joann or Michaels craft store around Christmas? That's what this stick smells like. Sickly sweet, artificially spicy—a bit like like rum-raisin ice-cream and men's spray-on deodorant with a hint of Play-Doh. Since that coconut stick put the fear of god into me, I've decided to start burning these sticks far, far away from where I'm sitting. The kitchen will do. I place the burner on wooden prep table in my kitchen. I hold my breath while lighting and quickly scuttle off back to the couch to watch Brother Day try to keep the empire afloat. I have no doubt the fragrance will find me there. To my surprise, this rather powerful fragrance actually comes through reasonably well in the burn; it's definitely not as abominable as the coconut. Still, I have to put it out before long.
|
||||
|
||||
Around this point my takeaway arrives, so I decide to take a break. I cast my eyes onto the open package as I eat. It smells like someone's eating a fruit salad in a perfume shop. I consider moving it.
|
||||
|
||||
## Dragon's Blood
|
||||
Like frankincense, my collection of something like 100 fragrant materials in various jars, bags, bottles, and tubes includes dragon's blood. That's the thing about resins: they're real substances that people own, and so if you name an incense stick after them, people are going to know when you're fibbing. This stick smells like baking spice and tart fruit, which is confusingly close to how I might describe actual dragon's blood resin, but it still somehow smells nothing like it. There is also a benzoin-like sweetness on the unlit stick. The fragrance in the burn is mercifully close to that of the unlit stick, but like the others, it comes along with a boat-load of off-notes. As with the Frankincense, this very strong fragrance quickly became too much.
|
||||
|
||||
I'm feeling a touch dejected. I knew this incense was going to be bad, but I had hoped it would be bad in a fun way, like a fast-food hamburger, or a toy from a cereal box. So far it's just been a bit depressing.
|
||||
|
||||
## Orange Creamsicle
|
||||
But, dear reader, hope springs eternal; the fragrance on this stick is fantastic. It's synthetic and too strong in a fun way, like candy. It's actually quite impressive—there's a sharp orange note, more orange oil than flesh, with a creamy, lactonic vanilla ice-cream note. As for the burn, well, if you buy these just stick them in a jar and pretend they're part of a reed diffuser. The off-notes are tremendous. Orange oil becomes bitter, burning pith. The experience is sickeningly underlined by an eerily unchanged vanilla ice-cream note like a music box playing sweetly amid artillery fire.
|
||||
|
||||
## Opium (Sticks)
|
||||
Wow; this is bringing me right back to my teenage bedroom. The fragrance on the unlit stick is powerful: a trepidatious sniff draws a cough from my battle-worn lungs. By now, I'm too tired to attempt to work out the constituent notes of this composition, but it's not bad. It actually comes through surprisingly cleanly, at least compared to the others I've tried so far[^4]. I wonder whether the sheer strength of this stick isn't just overpowering any lurking off-notes waiting to soak into the carpet. In any case, I might go so far as to burn this one again on purpose. Outdoors, of course, but still.
|
||||
|
||||
## Strawberry (Sticks)
|
||||
At this point, my nasal passages are beginning to feel as though I've [french-inhaled](https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExbTVyeWJ3ZTI3aWlnbG9nOHR0eGdyM29hOTRzeW5rbGUxdnIwZmFtciZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xTiTnlbIZkWZDrKqgo/giphy.gif) my way through a pack of [menthol Newports](https://en.wikipedia.org/wiki/Newport_(cigarette)#/media/File:Newport_cigarettes.jpg). I steel myself; I will press on. Although disappointed by the strawberry cones, I somehow still have hope for the sticks. The smell is markedly more complex. It's a combination of strawberry candy and a rather uncanny impression of the sad, cucumbery strawberries they grow here in the U.S. I swear I can even smell the little green leaf at the top. When lit, however, this stick offers major off-notes with a hint of strawberry candy, like a fire in a sweet-shop.
|
||||
|
||||
## Opium (Cones)
|
||||
Now so close to the end, my mind and body are crying out for rest. Like the sticks, this is a competent composition that has enough strength to overpower the stink that seems to be inherent in this brand. Beyond the smell, I find it interesting how wildly inconsistently these Wild Berry cones are shaped. From a company that puts out such volume, I expected production to be such an exercise in precision and efficiency that there would be no room for even the slightest deviation; I've seen more consistent output from even very small incense makers. I wonder why this is as I whisk away the censer containing the burning cone into another room.
|
||||
|
||||
[\" in case you thought you were **really** getting your money's worth.")](/img/wildBerry/wild_berry_opium_incense_cones.webp)
|
||||
|
||||
## Free Sample: Mango Passion
|
||||
As I reach my final task, my spirits are low; my nose a ragged wanderer on his sun-blistered belly, inching towards a verdant oasis after untold hours in the quivering heat, prostrate before the silent might of the dunes. I light a stick.
|
||||
|
||||
How dearly I wish these sticks had been a handful of resealable bags. The fragrance of the unlit stick is pleasant enough: bright passion fruit and mango, per the name. It actually manages to come through relatively intact in the burn too, but all of those unpleasant smells we've come to expect alongside it really ruin the experience. This time the fire is in a Garnier Fructis production facility. With this out of the way, I am free.
|
||||
|
||||
## Conclusion
|
||||
I don't expect you to believe me, but I *did not* intend this article to be a hit-piece. I had anticipated a [Review Brah](https://en.wikipedia.org/wiki/TheReportOfTheWeek) style affair, where I got to sample some inelegant but fine enough incense sticks in fun fragrances. I had hoped that together we could take a dip into what would turn out to be the murky but cool waters of American commodity incense and emerge refreshed, if a touch muddy. Instead, I feel that we've come away with [brain-eating amobea](https://www.cdc.gov/naegleria/about/index.html).
|
||||
|
||||
While Wild Berry's fragrances have left me distressed and unsatisfied, this experience has also left me with many questions. Beyond its products, I find that I've developed a lingering fascination surrounding the company itself. Wild Berry isn't just another big anonymous incense-maker, it has *lore*. From the company's [Duloc](https://youtu.be/p1zQHvvgXOs?si=CuLazpB9jRuXpNBW&t=31)-style [wooden puppet display](https://www.youtube.com/watch?v=F6Kf-ocYmBI), to zany antics such as [dragging employees around on pallet jacks](https://youtu.be/IJHtDyMV03o?si=pfMNMX6R6UYxrs_W&t=35), the more I learn the greater my curiosity. Why do precisely none of the [company vlogs](https://www.youtube.com/playlist?list=PLJEWn3HV8JpN4MDB_srqcB8LQitKtEcBX) show anyone burning incense in their offices? What are they hiding in those five unavailable videos? What on earth is [going on here](https://www.youtube.com/@123WIldberry/), and what is a "[Buxom Busam](https://www.youtube.com/watch?v=zStV6vwjQYk)?"
|
||||
|
||||
As for the incense itself, I'm flummoxed. How can something of such irredeemably poor quality be so ubiquitous? I admit I have come to deeply resent spending $40 on incense I've described in terms of war, but I also can't help but feel that this endeavor has made me party to one of the great mysteries of our time. Filled with a sense of both wonder and horror in the face of it, I've found myself staring at a [rotating](https://en.wikipedia.org/wiki/File:8-cell-orig.gif) [tesseract](https://en.wikipedia.org/wiki/Tesseract), beautiful in its incomprehensibility. And who knows? After a bout of therapy to overcome the trauma I've experienced tonight, I may eventually be able to put some of these sticks into service on the porch as bug-repellent.
|
||||
|
||||
[^1]: Obligatory disclaimer assuring you that I'm being tongue-in-cheek and I am in no way salty at anyone.
|
||||
[^2]: The scare quotes are, I kid you not, included in their official branding.
|
||||
[^3]: I typically try not to make too much of a show of my impeccable taste, but I fear that may be impossible in this instance.
|
||||
[^4]: A very, very low bar.
|
@ -4,6 +4,10 @@ title: Nathan Upchurch | Changelog
|
||||
structuredData: none
|
||||
---
|
||||
# Changelog
|
||||
* 2025-08-14
|
||||
* Implemented a [guestbook](/guestbook/).
|
||||
* 2025-07-29
|
||||
* Added [The 74](https://www.the74million.org/) to the [blogroll](/blogroll).
|
||||
* 2025-07-14
|
||||
* Added [Assigned](https://www.assignedmedia.org), [Prism](https://prismreports.org), [Rest of World](https://restofworld.org), and [The Appeal](https://theappeal.org/) to the [blogroll](/blogroll).
|
||||
* Updated the [blogroll](/blogroll), adding a "skip to category" section, and adding direct links to all section headers.
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
layout: layouts/403.njk
|
||||
permalink: 403.html
|
||||
permalink: error/403.html
|
||||
title: Nathan Upchurch | 403
|
||||
structuredData: none
|
||||
eleventyExcludeFromCollections: true
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
layout: layouts/404.njk
|
||||
permalink: 404.html
|
||||
permalink: error/404.html
|
||||
title: Nathan Upchurch | 404
|
||||
structuredData: none
|
||||
eleventyExcludeFromCollections: true
|
3
content/error/error.11tydata.js
Normal file
@ -0,0 +1,3 @@
|
||||
export default {
|
||||
layout: "layouts/post.njk",
|
||||
};
|
55
content/guestbook.njk
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
layout: layouts/base.njk
|
||||
title: Nathan Upchurch | Guestbook
|
||||
structuredData: none
|
||||
---
|
||||
<h1>Sign My Guestbook</h1>
|
||||
<!-- Guestbook Script -->
|
||||
<script async src="https://guestbooks.meadow.cafe/resources/js/embed_script/835/script.js"></script>
|
||||
|
||||
<!-- Guestbook Form -->
|
||||
<div id="guestbooks___guestbook-form-container">
|
||||
<form id="guestbooks___guestbook-form"
|
||||
action="https://guestbooks.meadow.cafe/guestbook/835/submit"
|
||||
method="post">
|
||||
|
||||
<label for="name">Your name:</label>
|
||||
<div class="guestbooks___input-container">
|
||||
<input type="text"
|
||||
id="name"
|
||||
name="name"
|
||||
required>
|
||||
</div>
|
||||
|
||||
<label for="website">Your website (optional):</label>
|
||||
<div class="guestbooks___input-container">
|
||||
<input type="url"
|
||||
id="website"
|
||||
name="website">
|
||||
</div>
|
||||
|
||||
<div id="guestbooks___challenge-answer-container"></div>
|
||||
|
||||
<label for="text">Your message:</label>
|
||||
<div class="guestbooks___input-container">
|
||||
<textarea id="text"
|
||||
name="text"
|
||||
rows="4"
|
||||
style="width: 100%; box-sizing: border-box; resize: vertical;"
|
||||
required></textarea>
|
||||
</div>
|
||||
|
||||
<button type="submit">Sign Guestbook</button>
|
||||
<div id="guestbooks___error-message"></div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<!-- Attribution (optional but appreciated!) -->
|
||||
<div id="guestbooks___guestbook-made-with" style="text-align: right; margin-top: 10px;">
|
||||
<small>Powered by <a href="https://guestbooks.meadow.cafe" target="_blank">Guestbooks</a></small>
|
||||
</div>
|
||||
|
||||
<!-- Messages Section -->
|
||||
<hr/>
|
||||
<h2 id="guestbooks___guestbook-messages-header">Messages</h2>
|
||||
<div id="guestbooks___guestbook-messages-container"></div>
|
@ -3,10 +3,5 @@ layout: layouts/home.njk
|
||||
eleventyNavigation:
|
||||
key: Home
|
||||
order: 1
|
||||
numberOfLatestPostsToShow: 3
|
||||
numberOfNowPostsToShow: 1
|
||||
numberOfGalleriesToShow: 1
|
||||
numberOfQuizzesToShow: 1
|
||||
hideGalleryDescriptions: 1
|
||||
---
|
||||
{% include "navigator.njk" %}
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Assam
|
||||
manufacturer: Yi-Xin Craft Incense
|
||||
date: 2025-07-17 14:22:00
|
||||
time: 2:22 PM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Christmas Tree
|
||||
manufacturer: The World Makes Scents
|
||||
date: 2025-08-07 11:06:00
|
||||
time: 11:06 AM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Compassion
|
||||
manufacturer: Espirit de la Nature
|
||||
date: 2025-07-17 11:21:00
|
||||
time: 11:21 AM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Floral Palo
|
||||
manufacturer: Myself
|
||||
date: 2025-07-21 10:10:00
|
||||
time: 10:10 AM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Floral Palo
|
||||
manufacturer: Myself
|
||||
date: 2025-8-8 10:29:00
|
||||
time: 10:29 AM
|
||||
---
|
||||
Not even ten o'clock and I'm already in need of some stress relief because the landlord is being a nightmare.
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Hidden Valley Orchid
|
||||
manufacturer: Yi-Xin Craft Incense
|
||||
date: 2025-07-17 14:58:00
|
||||
time: 2:58 PM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Hojari A
|
||||
manufacturer: Yi-Xin Craft Incense
|
||||
date: 2025-07-25 16:32:00
|
||||
time: 4:32 PM
|
||||
---
|
||||
Received as a sample alongside Hojari B.
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Hojari B
|
||||
manufacturer: Yi-Xin Craft Incense
|
||||
date: 2025-07-25 17:32:00
|
||||
time: 5:32 PM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Hojari
|
||||
manufacturer: Myself
|
||||
date: 2025-07-29 12:09:00
|
||||
time: 12:09 PM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Kheoun’s Blend
|
||||
manufacturer: The World Makes Scents
|
||||
date: 2025-07-29 14:30:00
|
||||
time: 2:30 PM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Matsu no Tomo (Friend of Pine)
|
||||
manufacturer: Shoyeido
|
||||
date: 2025-08-09 17:03:00
|
||||
time: 5:05 PM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Morning Star Vanilla
|
||||
manufacturer: Nippon Kodo
|
||||
date: 2025-07-31 10:55:00
|
||||
time: 10:55 AM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Morning Star Vanilla
|
||||
manufacturer: Nippon Kodo
|
||||
date: 2025-08-08 11:25:00
|
||||
time: 11:25 AM
|
||||
---
|
||||
Among the first Japanese incense sticks I ever tried, I've been using this stuff to calm down for twenty years.
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Moss Garden (Nokiba)
|
||||
manufacturer: Shoyeido
|
||||
date: 2025-08-14 13:05:00
|
||||
time: 1:05 PM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Suzaku
|
||||
manufacturer: Gyokushodo
|
||||
date: 2025-07-23 13:39:00
|
||||
time: 1:39 PM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Suzaku
|
||||
manufacturer: Gyokushodo
|
||||
date: 2025-08-06 11:53:00
|
||||
time: 11:53 AM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Tree of Life
|
||||
manufacturer: Yi-Xin Craft Incense
|
||||
date: 2025-07-27 12:24:00
|
||||
time: 12:25 PM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: Weeping Cypress
|
||||
manufacturer: Yi-Xin Craft Incense
|
||||
date: 2025-08-01 10:02:00
|
||||
time: 10:02 AM
|
||||
---
|
||||
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: White Cloud (Hakuun)
|
||||
manufacturer: Shoyeido
|
||||
date: 2025-08-04 12:16:00
|
||||
time: 12:16 PM
|
||||
---
|
||||
|
@ -22,7 +22,13 @@ structuredData: none
|
||||
<li><a href="/me">Contact</a></li>
|
||||
<li><a href="/feed/feed.xml">Feed</a></li>
|
||||
<li><a href="/galleries">Galleries</a></li>
|
||||
<li><a href="/guestbook">Guestbook</a></li>
|
||||
<li><a href="/now">Now</a></li>
|
||||
<li>Special
|
||||
<ul>
|
||||
<li><a href="/special/flying-toasters/">Flying Toasters</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="/tags">Tags</a></li>
|
||||
<li><a href="/wish">Wishes</a></li>
|
||||
<li><a href="/quizzes">Quizzes</a></li>
|
||||
|
BIN
content/special/flying-toasters/After Dark 3.0 - OMTW.mp3
Normal file
38
content/special/flying-toasters/base.css
Normal file
@ -0,0 +1,38 @@
|
||||
/* apply a natural box layout model to all elements */
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
html,
|
||||
body {
|
||||
background-color: #111;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Hide only visually, but have it available for screenreaders & for SEO purposes. See h5bp.com/v */
|
||||
.visuallyhidden {
|
||||
border: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.clearfix:before,
|
||||
.clearfix:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
clear: both;
|
||||
}
|
BIN
content/special/flying-toasters/img/favicon.png
Normal file
After Width: | Height: | Size: 464 B |
BIN
content/special/flying-toasters/img/toast0.gif
Normal file
After Width: | Height: | Size: 500 B |
BIN
content/special/flying-toasters/img/toast1.gif
Normal file
After Width: | Height: | Size: 500 B |
BIN
content/special/flying-toasters/img/toast2.gif
Normal file
After Width: | Height: | Size: 500 B |
BIN
content/special/flying-toasters/img/toast3.gif
Normal file
After Width: | Height: | Size: 500 B |
BIN
content/special/flying-toasters/img/toaster-sprite.gif
Normal file
After Width: | Height: | Size: 3.4 KiB |
541
content/special/flying-toasters/index.html
Normal file
@ -0,0 +1,541 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>Flying Toasters</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Experience Flying Toasters, After Dark's most popular Mac screensaver of the 1990s, reinterpreted using modern CSS."
|
||||
/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="shortcut icon" href="./img/favicon.png" />
|
||||
<link rel="stylesheet" href="./base.css" />
|
||||
<style>
|
||||
/* Thanks to Brian Braun: https://github.com/bryanbraun/after-dark-css/ */
|
||||
.audioContainer {
|
||||
align-items: flex-end;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
justify-content: center;
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
body {
|
||||
background-color: black;
|
||||
}
|
||||
.toaster {
|
||||
position: absolute;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
background-image: url("./img/toaster-sprite.gif");
|
||||
}
|
||||
.toast {
|
||||
position: absolute;
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
background-image: url("./img/toast1.gif");
|
||||
}
|
||||
|
||||
/**
|
||||
* Toaster Animations
|
||||
*
|
||||
* There are several kinds of toaster animations, marked as t1, t2, & t3.
|
||||
*
|
||||
* T1 is fastest speed
|
||||
* T2 is mid speed & flaps out of sequence with T1
|
||||
* T3 is the common speed
|
||||
* T4 is a delayed batch going at the fastest speed
|
||||
* T5, T6, T7, T8, & T9 are a delayed batch of toasters going at the common speed
|
||||
*/
|
||||
.t1 {
|
||||
-webkit-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s linear infinite;
|
||||
-moz-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s linear infinite;
|
||||
-ms-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s linear infinite;
|
||||
-o-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s linear infinite;
|
||||
animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s linear infinite;
|
||||
}
|
||||
.t2 {
|
||||
-webkit-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 16s linear infinite;
|
||||
-moz-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 16s linear infinite;
|
||||
-ms-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 16s linear infinite;
|
||||
-o-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 16s linear infinite;
|
||||
animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 16s linear infinite;
|
||||
}
|
||||
.t3 {
|
||||
-webkit-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s linear infinite;
|
||||
-moz-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s linear infinite;
|
||||
-ms-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s linear infinite;
|
||||
-o-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s linear infinite;
|
||||
animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s linear infinite;
|
||||
}
|
||||
.t4 {
|
||||
-webkit-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s 5s linear infinite;
|
||||
-moz-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s 5s linear infinite;
|
||||
-ms-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s 5s linear infinite;
|
||||
-o-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s 5s linear infinite;
|
||||
animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 10s 5s linear infinite;
|
||||
}
|
||||
.t5 {
|
||||
-webkit-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 4s linear infinite;
|
||||
-moz-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 4s linear infinite;
|
||||
-ms-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 4s linear infinite;
|
||||
-o-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 4s linear infinite;
|
||||
animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 4s linear infinite;
|
||||
}
|
||||
.t6 {
|
||||
-webkit-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 8s linear infinite;
|
||||
-moz-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 8s linear infinite;
|
||||
-ms-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 8s linear infinite;
|
||||
-o-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 8s linear infinite;
|
||||
animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 8s linear infinite;
|
||||
}
|
||||
.t7 {
|
||||
-webkit-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 12s linear infinite;
|
||||
-moz-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 12s linear infinite;
|
||||
-ms-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 12s linear infinite;
|
||||
-o-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 12s linear infinite;
|
||||
animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 12s linear infinite;
|
||||
}
|
||||
.t8 {
|
||||
-webkit-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 16s linear infinite;
|
||||
-moz-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 16s linear infinite;
|
||||
-ms-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 16s linear infinite;
|
||||
-o-animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 16s linear infinite;
|
||||
animation:
|
||||
flap 0.2s steps(4) infinite alternate,
|
||||
fly 24s 16s linear infinite;
|
||||
}
|
||||
.t9 {
|
||||
-webkit-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 20s linear infinite;
|
||||
-moz-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 20s linear infinite;
|
||||
-ms-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 20s linear infinite;
|
||||
-o-animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 20s linear infinite;
|
||||
animation:
|
||||
flap 0.2s steps(4) infinite alternate-reverse,
|
||||
fly 24s 20s linear infinite;
|
||||
}
|
||||
/**
|
||||
* Toast Animations
|
||||
*
|
||||
* There are several kinds of toaster animations, marked as ts1, ts2, & ts3.
|
||||
*
|
||||
* Tst1 is fast
|
||||
* Tst2 is mid speed
|
||||
* Tst3 is the common speed
|
||||
* Tst4 is a delayed batch of toast going at the common speed
|
||||
*/
|
||||
.tst1 {
|
||||
-webkit-animation: fly 10s linear infinite;
|
||||
-moz-animation: fly 10s linear infinite;
|
||||
-ms-animation: fly 10s linear infinite;
|
||||
-o-animation: fly 10s linear infinite;
|
||||
animation: fly 10s linear infinite;
|
||||
}
|
||||
.tst2 {
|
||||
-webkit-animation: fly 16s linear infinite;
|
||||
-moz-animation: fly 16s linear infinite;
|
||||
-ms-animation: fly 16s linear infinite;
|
||||
-o-animation: fly 16s linear infinite;
|
||||
animation: fly 16s linear infinite;
|
||||
}
|
||||
.tst3 {
|
||||
-webkit-animation: fly 24s linear infinite;
|
||||
-moz-animation: fly 24s linear infinite;
|
||||
-ms-animation: fly 24s linear infinite;
|
||||
-o-animation: fly 24s linear infinite;
|
||||
animation: fly 24s linear infinite;
|
||||
}
|
||||
.tst4 {
|
||||
-webkit-animation: fly 24s 12s linear infinite;
|
||||
-moz-animation: fly 24s 12s linear infinite;
|
||||
-ms-animation: fly 24s 12s linear infinite;
|
||||
-o-animation: fly 24s 12s linear infinite;
|
||||
animation: fly 24s 12s linear infinite;
|
||||
}
|
||||
|
||||
/**
|
||||
* Starting positions of objects (both toast & toasters).
|
||||
* - There is a different position for each object to prevent overlapping.
|
||||
* - We use percentages in order to accommodate for all window dimensions.
|
||||
* - Use -6% as the smallest amount for remaining off-screen.
|
||||
* - Organized into reverse "L" shaped batches to keep a constant flow.
|
||||
*/
|
||||
/* Batch 1 (-10% to -20%) */
|
||||
/* Top edge, from right to left */
|
||||
.p6 {
|
||||
right: -2%;
|
||||
top: -17%;
|
||||
}
|
||||
.p7 {
|
||||
right: 10%;
|
||||
top: -19%;
|
||||
}
|
||||
.p8 {
|
||||
right: 20%;
|
||||
top: -18%;
|
||||
}
|
||||
.p9 {
|
||||
right: 30%;
|
||||
top: -20%;
|
||||
}
|
||||
.p10 {
|
||||
right: 40%;
|
||||
top: -21%;
|
||||
}
|
||||
.p11 {
|
||||
right: 50%;
|
||||
top: -18%;
|
||||
}
|
||||
.p12 {
|
||||
right: 60%;
|
||||
top: -20%;
|
||||
}
|
||||
/* Right side, from top to bottom */
|
||||
.p13 {
|
||||
right: -17%;
|
||||
top: 10%;
|
||||
}
|
||||
.p14 {
|
||||
right: -19%;
|
||||
top: 20%;
|
||||
}
|
||||
.p15 {
|
||||
right: -21%;
|
||||
top: 30%;
|
||||
}
|
||||
.p16 {
|
||||
right: -23%;
|
||||
top: 50%;
|
||||
}
|
||||
.p17 {
|
||||
right: -25%;
|
||||
top: 70%;
|
||||
}
|
||||
|
||||
/* Batch 2 (-20% to -40%) */
|
||||
/* Top edge, from right to left */
|
||||
.p18 {
|
||||
right: 0%;
|
||||
top: -26%;
|
||||
}
|
||||
.p19 {
|
||||
right: 10%;
|
||||
top: -20%;
|
||||
}
|
||||
.p20 {
|
||||
right: 20%;
|
||||
top: -36%;
|
||||
}
|
||||
.p21 {
|
||||
right: 30%;
|
||||
top: -24%;
|
||||
}
|
||||
.p22 {
|
||||
right: 40%;
|
||||
top: -33%;
|
||||
}
|
||||
.p23 {
|
||||
right: 60%;
|
||||
top: -40%;
|
||||
}
|
||||
/* Right side, from top to bottom */
|
||||
.p24 {
|
||||
right: -26%;
|
||||
top: 10%;
|
||||
}
|
||||
.p25 {
|
||||
right: -36%;
|
||||
top: 30%;
|
||||
}
|
||||
.p26 {
|
||||
right: -29%;
|
||||
top: 50%;
|
||||
}
|
||||
|
||||
/* Batch 3 (-40% to -60%)*/
|
||||
/* Top edge, from right to left */
|
||||
.p27 {
|
||||
right: 0;
|
||||
top: -46%;
|
||||
}
|
||||
.p28 {
|
||||
right: 10%;
|
||||
top: -56%;
|
||||
}
|
||||
.p29 {
|
||||
right: 20%;
|
||||
top: -49%;
|
||||
}
|
||||
.p30 {
|
||||
right: 30%;
|
||||
top: -60%;
|
||||
}
|
||||
/* Right side, from top to bottom */
|
||||
.p31 {
|
||||
right: -46%;
|
||||
top: 10%;
|
||||
}
|
||||
.p32 {
|
||||
right: -56%;
|
||||
top: 20%;
|
||||
}
|
||||
.p33 {
|
||||
right: -49%;
|
||||
top: 30%;
|
||||
}
|
||||
|
||||
/* Flapping animation */
|
||||
@-webkit-keyframes flap {
|
||||
from {
|
||||
background-position: 0px;
|
||||
}
|
||||
to {
|
||||
background-position: -256px;
|
||||
}
|
||||
}
|
||||
@-moz-keyframes flap {
|
||||
from {
|
||||
background-position: 0px;
|
||||
}
|
||||
to {
|
||||
background-position: -256px;
|
||||
}
|
||||
}
|
||||
@-o-keyframes flap {
|
||||
from {
|
||||
background-position: 0px;
|
||||
}
|
||||
to {
|
||||
background-position: -256px;
|
||||
}
|
||||
}
|
||||
@keyframes flap {
|
||||
from {
|
||||
background-position: 0px;
|
||||
}
|
||||
to {
|
||||
background-position: -256px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Gliding animation using translate */
|
||||
/* Moving 1600px, to accomodate for large screens */
|
||||
@-webkit-keyframes fly {
|
||||
from {
|
||||
-webkit-transform: translate(0, 0);
|
||||
-moz-transform: translate(0, 0);
|
||||
-o-transform: translate(0, 0);
|
||||
-ms-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: translate(-1600px, 1600px);
|
||||
-moz-transform: translate(-1600px, 1600px);
|
||||
-o-transform: translate(-1600px, 1600px);
|
||||
-ms-transform: translate(-1600px, 1600px);
|
||||
transform: translate(-1600px, 1600px);
|
||||
}
|
||||
}
|
||||
@-moz-keyframes fly {
|
||||
from {
|
||||
-webkit-transform: translate(0, 0);
|
||||
-moz-transform: translate(0, 0);
|
||||
-o-transform: translate(0, 0);
|
||||
-ms-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: translate(-1600px, 1600px);
|
||||
-moz-transform: translate(-1600px, 1600px);
|
||||
-o-transform: translate(-1600px, 1600px);
|
||||
-ms-transform: translate(-1600px, 1600px);
|
||||
transform: translate(-1600px, 1600px);
|
||||
}
|
||||
}
|
||||
@-o-keyframes fly {
|
||||
from {
|
||||
-webkit-transform: translate(0, 0);
|
||||
-moz-transform: translate(0, 0);
|
||||
-o-transform: translate(0, 0);
|
||||
-ms-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: translate(-1600px, 1600px);
|
||||
-moz-transform: translate(-1600px, 1600px);
|
||||
-o-transform: translate(-1600px, 1600px);
|
||||
-ms-transform: translate(-1600px, 1600px);
|
||||
transform: translate(-1600px, 1600px);
|
||||
}
|
||||
}
|
||||
@keyframes fly {
|
||||
from {
|
||||
-webkit-transform: translate(0, 0);
|
||||
-moz-transform: translate(0, 0);
|
||||
-o-transform: translate(0, 0);
|
||||
-ms-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: translate(-1600px, 1600px);
|
||||
-moz-transform: translate(-1600px, 1600px);
|
||||
-o-transform: translate(-1600px, 1600px);
|
||||
-ms-transform: translate(-1600px, 1600px);
|
||||
transform: translate(-1600px, 1600px);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="audioContainer">
|
||||
<audio controls autoplay src="./After Dark 3.0 - OMTW.mp3"></audio>
|
||||
</div>
|
||||
<!-- First group of objects -->
|
||||
<div class="toaster t1 p6"></div>
|
||||
<div class="toaster t3 p7"></div>
|
||||
<div class="toast tst1 p8"></div>
|
||||
<div class="toaster t3 p9"></div>
|
||||
<div class="toaster t1 p11"></div>
|
||||
<div class="toaster t3 p12"></div>
|
||||
<div class="toaster t2 p13"></div>
|
||||
<div class="toast tst3 p14"></div>
|
||||
<div class="toast tst2 p16"></div>
|
||||
<div class="toaster t1 p17"></div>
|
||||
<div class="toast tst2 p19"></div>
|
||||
<div class="toast tst3 p20"></div>
|
||||
<div class="toaster t2 p21"></div>
|
||||
<div class="toast tst1 p24"></div>
|
||||
<div class="toaster t1 p22"></div>
|
||||
<div class="toast tst2 p26"></div>
|
||||
<div class="toaster t1 p28"></div>
|
||||
<div class="toast tst2 p30"></div>
|
||||
<div class="toaster t2 p31"></div>
|
||||
<div class="toaster t1 p32"></div>
|
||||
<div class="toast tst3 p33"></div>
|
||||
|
||||
<!-- wave 1 of (fast delayed) objects -->
|
||||
<div class="toaster t4 p27"></div>
|
||||
<div class="toaster t4 p10"></div>
|
||||
<div class="toaster t4 p25"></div>
|
||||
<div class="toaster t4 p29"></div>
|
||||
|
||||
<!-- wave 2 of (delayed) objects -->
|
||||
<div class="toaster t5 p15"></div>
|
||||
<div class="toaster t5 p18"></div>
|
||||
<div class="toaster t5 p22"></div>
|
||||
|
||||
<!-- wave 3 of (delayed) objects -->
|
||||
<div class="toaster t6 p6"></div>
|
||||
<div class="toaster t6 p11"></div>
|
||||
<div class="toaster t6 p15"></div>
|
||||
<div class="toaster t6 p19"></div>
|
||||
<div class="toaster t6 p23"></div>
|
||||
|
||||
<!-- wave 5 of (delayed) objects -->
|
||||
<div class="toast tst4 p10"></div>
|
||||
<div class="toast tst4 p23"></div>
|
||||
<div class="toast tst4 p15"></div>
|
||||
<div class="toaster t7 p7"></div>
|
||||
<div class="toaster t7 p12"></div>
|
||||
<div class="toaster t7 p16"></div>
|
||||
<div class="toaster t7 p20"></div>
|
||||
<div class="toaster t7 p24"></div>
|
||||
|
||||
<!-- wave 6 of (delayed) objects -->
|
||||
<div class="toaster t8 p8"></div>
|
||||
<div class="toaster t8 p13"></div>
|
||||
<div class="toaster t8 p17"></div>
|
||||
<div class="toaster t8 p25"></div>
|
||||
|
||||
<!-- wave 7 of (delayed) objects -->
|
||||
<div class="toaster t9 p14"></div>
|
||||
<div class="toaster t9 p18"></div>
|
||||
<div class="toaster t9 p21"></div>
|
||||
<div class="toaster t9 p26"></div>
|
||||
</body>
|
||||
</html>
|
@ -194,7 +194,9 @@ export default async function (eleventyConfig) {
|
||||
|
||||
// Passthrough
|
||||
|
||||
eleventyConfig.addPassthroughCopy({ "./public/": "/" });
|
||||
eleventyConfig
|
||||
.addPassthroughCopy({ "./public/": "/" })
|
||||
.addPassthroughCopy("./content/special/");
|
||||
|
||||
// Get the first `n` elements of a collection.
|
||||
eleventyConfig.addFilter("head", (array, n) => {
|
||||
|
@ -116,7 +116,7 @@
|
||||
--transition-normal: all 0.3s;
|
||||
|
||||
/* Links */
|
||||
--link-decoration-thickness: 0.1rem;
|
||||
--link-decoration-thickness: 0.06rem;
|
||||
|
||||
/* Borders */
|
||||
--border-details: 1px solid var(--color-gray-20);
|
||||
@ -180,6 +180,29 @@ html {
|
||||
font-size: 13px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
input,
|
||||
textarea {
|
||||
background-color: var(--background-color);
|
||||
border: var(--border-details);
|
||||
border-color: var(--contrast-color);
|
||||
border-radius: var(--border-radius);
|
||||
color: var(--text-color);
|
||||
font-family: var(--font-family);
|
||||
font-size: var(--step-0);
|
||||
font-variation-settings: var(--font-variation-default);
|
||||
margin-block: 0 1lh;
|
||||
min-height: var(--space-l);
|
||||
padding: 0 var(--space-3xs);
|
||||
width: 100%;
|
||||
&:focus {
|
||||
box-shadow: 0 0 0 2px var(--contrast-color);
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
label {
|
||||
display: block;
|
||||
margin-bottom: var(--space-3xs);
|
||||
}
|
||||
article:not(.postlist-item) h3 {
|
||||
margin-bottom: var(--space-s);
|
||||
margin-top: var(--space-m);
|
||||
@ -188,12 +211,14 @@ blockquote p {
|
||||
font-style: italic;
|
||||
}
|
||||
blockquote:before {
|
||||
color: var(--contrast-color);
|
||||
content: "“";
|
||||
font-size: 10rem;
|
||||
margin-left: -4rem;
|
||||
margin-top: -2rem;
|
||||
position: fixed;
|
||||
position: absolute;
|
||||
filter: opacity(0.15);
|
||||
z-index: 0;
|
||||
}
|
||||
.blogroll {
|
||||
h2:first-of-type {
|
||||
@ -294,7 +319,7 @@ ul {
|
||||
|
||||
a {
|
||||
text-decoration-color: var(--contrast-color);
|
||||
/*text-decoration-thickness: var(--link-decoration-thickness);*/
|
||||
text-decoration-thickness: var(--link-decoration-thickness);
|
||||
transition: var(--transition-normal);
|
||||
}
|
||||
/* https://www.a11yproject.com/posts/how-to-hide-content/ */
|
||||
@ -1043,6 +1068,27 @@ article.post {
|
||||
}
|
||||
}
|
||||
|
||||
/* Guestbook */
|
||||
.guestbook-message blockquote {
|
||||
margin-bottom: var(--space-m);
|
||||
margin-top: var(--space-3xs);
|
||||
}
|
||||
.guestbook-message p {
|
||||
margin-block: 0 0;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
.guestbook-message p b,
|
||||
.guestbook-message p small {
|
||||
font-family: var(--meta-font-family);
|
||||
font-size: var(--meta-font-size);
|
||||
font-variation-settings: var(--meta-font-variation-settings);
|
||||
}
|
||||
#guestbooks___challenge-answer-container br,
|
||||
.guestbooks___input-container br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Add fleuron after <p> in article when footnotes are present */
|
||||
p:has(+ hr.footnotes-sep):after {
|
||||
content: "\2766";
|
||||
|
BIN
public/img/wildBerry/wild_berry_incense_sticks.webp
Normal file
After Width: | Height: | Size: 856 KiB |
BIN
public/img/wildBerry/wild_berry_opium_incense_cones.webp
Normal file
After Width: | Height: | Size: 610 KiB |