<script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
</script>
It’s late on a Saturday night, too late for you to be awake.
'Tell us a story from when you were younger', you say.
'There are no good stories from when I was young', she replies.
'We don’t want a good story Nonna, [[we want your story]]'.
'*Va Bene*', she says.
You and your sister sit up in bed.
<script>
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
</script>
<div class="image-text-container" style="display: flex !important; align-items: flex-start !important; gap: 2rem !important; flex-wrap: nowrap !important; margin: 0 !important; padding: 0 !important; margin-top: 100px !important;">
<img src="images/tank.jpg" alt="Old water tank" class="side-image" style="width: 350px !important; flex-shrink: 0 !important; margin: 0 !important; padding: 0 !important; vertical-align: top !important;" />
<div class="text-block" style="flex: 1 !important; margin: 0 !important; padding: 0 !important; margin-top: -8px !important;">
<p style="margin: 0 !important; padding: 0 !important; line-height: 1.4 !important; margin-top: 0 !important;">When your Nonna and Nonno first came to Australia they lived inside a water tank with your Mum and her older brother. Your Nonno worked on an orange farm picking fruit under the hot sun. The farmer had no accommodation for them. One day, they saw the farmer dragging an old water tank toward hard rubbish. <strong>[[They asked him if they could save it.]]</strong></p>
</div>
</div>
<script>
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
</script>
In your proper bedroom with the slated roof and the insulated walls, you could imagine many places better to live than a water tank.
The bedroom that could fit the water tank inside of it maybe,
(click-append: "maybe,")[ [[if you could measure the parameters.]] ]
<script>
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
</script>
<p>You walk the parameters of the story, graze your hand on the corrugated iron edges.</p>
|fade>[ ]
(after: 4s)[
(replace: ?fade)[<div class="slow-fade-screen"></div>]
]
(after: 10s)[
(goto: "arrive in calabria")
]
<script>
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
</script>
<div class="big-brackets">
<div class="dynamic-text">
<p class="line line-1">A ring-shaped mosquito bite on your finger greets you in the morning.</p>
<img src="images/cross.jpg" class="inter-text-image">
<p class="line line-2">She wears a scarf tight around her skull as she washes dishes.</p>
<p class="line line-3">The radio hums in the background, a voice talking about the weather. Another hot day transmitting through the static.</p>
<img src="images/procession1.jpg" class="inter-text-image">
<p class="line line-4">You collect clean laundry from the balcony rail, clothes dried into submission.</p>
<p class="line line-5">Is it the heat or the break from idling hands raised above keys in contemplation that makes folding the clothes feel euphoric?</p>
<img src="images/tapestry.jpg" class="inter-text-image">
<p class="line line-6">The sun reaches into the story through the splinters. The peeling paint. The half-laid kitchen tile causing depressions in the floor.</p>
<img src="images/mum.jpg" class="inter-text-image">
<p class="line line-7">The tile trailing off, [[somewhere we are supposed to walk.]]</p>
</div>
</div>
<script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
// Force override the persistent scroll blocking from previous passages
document.body.style.setProperty('overflow', 'auto', 'important');
document.documentElement.style.setProperty('overflow', 'auto', 'important');
</script><script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
</script>
<div class="image-text-container" style="display: flex !important; align-items: flex-start !important; gap: 2rem !important; flex-wrap: nowrap !important; margin: 0 !important; padding: 0 !important; margin-top: 100px !important;">
<img src="images/tankfire.jpg" alt="Old water tank" class="side-image" style="width: 350px !important; flex-shrink: 0 !important; margin: 0 !important; padding: 0 !important; vertical-align: top !important;" />
<div class="text-block" style="flex: 1 !important; margin: 0 !important; padding: 0 !important; margin-top: -8px !important;">
<p style="margin: 0 !important; padding: 0 !important; line-height: 1.4 !important; margin-top: 0 !important;">They flipped the water tank upside down. The old floor became the new roof. The new floor was bare earth. The farmer installed a wood-fired stove so they could cook, <strong>[[smoke rising from their metal home.]]</strong></p>
</div>
</div>
<script>
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
</script>
<div class="image-text-container" style="display: flex !important; align-items: flex-start !important; gap: 2rem !important; flex-wrap: nowrap !important; margin: 0 !important; padding: 0 !important; margin-top: 100px !important;">
<img src="images/tankclothes.jpg" alt="Old water tank" class="side-image" style="width: 350px !important; flex-shrink: 0 !important; margin: 0 !important; padding: 0 !important; vertical-align: top !important;" />
<div class="text-block" style="flex: 1 !important; margin: 0 !important; padding: 0 !important; margin-top: -8px !important;">
<p style="margin: 0 !important; padding: 0 !important; line-height: 1.4 !important; margin-top: 0 !important;"><strong>[[They slept on piles of clothes instead of a bed]]</strong>. Their luggage filled with blankets from home was still crossing the dark waters of the pacific between Calabria and Victoria.</p>
</div>
</div>
<script>
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
</script>
<style>
@keyframes fadeOut {
0% { opacity: 1; }
100% { opacity: 0; }
}
</style>
|fadeOut>[
<div class="image-text-container fade-target" style="display: flex !important; align-items: flex-start !important; gap: 2rem !important; flex-wrap: nowrap !important; margin: 0 !important; padding: 0 !important;">
<img src="images/tankbottle.jpg" alt="Old water tank" class="side-image" style="width: 350px !important; flex-shrink: 0 !important; margin: 0 !important; padding: 0 !important; vertical-align: top !important;" />
<div class="text-block" style="flex: 1 !important; margin: 0 !important; padding: 0 !important; margin-top: -8px !important;">
<p style="margin: 0 !important; padding: 0 !important; line-height: 1.4 !important; margin-top: 0 !important;">With no fridge to store food, they only ate shelf-staple food. On the one day your Nonno splashed out and bought meat, your Nonna ruined the dish because she couldn't read English on the bottle labelled, 'sweet and sour sauce'.</p>
</div>
</div>
]
(after: 8s)[
(enchant: ?fadeOut, (css: "animation: fadeOut 3s ease forwards;"))
]
(after: 12s)[
(replace: ?fadeOut)[]
(goto: "bed")
]
<script>
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><!-- Fast Snowfall Passage with background and minimal formatting -->
<div id="content-container" style="position: relative; height: 100vh; overflow: hidden;">
<div id="buttery-smooth-paragraph" style="position: absolute; font-size: 20px; line-height: 1.8; color: #3C3633; padding: 20px; left: 10%; width: 80%; top: 20px; will-change: transform; transform: translateY(0); transform-style: preserve-3d; backface-visibility: hidden;">
<span style="display: block; margin-bottom: 15px;">On the first night in Calabria there is vomit. Before the vomit she talks at you in the language you have pretended to understand since the morning at the train station where they picked you up and tossed your bags into the back.</span>
<span style="display: block; margin-bottom: 15px;">The couch is made of wooden pellets, covered in thin foam. Foam bubbles up and coats your tongue.</span>
<span style="display: block; margin-bottom: 15px;">Before talk there is *sugo* and *melone* and *formaggio* sliced thinly and a bottle of homemade red wine.</span>
<span style="display: block; margin-bottom: 15px;">You decline. You retract. You are drunk.</span>
<span style="display: block; margin-bottom: 15px;">A woman working in the bar corrects your sentences. You repeat after her. Swirl the words around your mouth. Chew on them, swallow, but they come rising back up.</span>
<span style="display: block; margin-bottom: 15px; text-align: center;">[[Bile tainted with red underlines.]]</span>
</div>
</div>
<script>
// FORCE prevent scrolling with high specificity
document.body.style.setProperty('overflow', 'hidden', 'important');
document.documentElement.style.setProperty('overflow', 'hidden', 'important');
// Override passage-specific CSS that might interfere
var passage = document.querySelector('tw-passage');
passage.style.setProperty('overflow', 'hidden', 'important');
passage.style.setProperty('padding-bottom', '0', 'important');
passage.style.setProperty('height', '100vh', 'important');
// Simply set background just for this passage
document.querySelector('tw-story').style.backgroundImage = "url('images/sky2.jpg')";
document.querySelector('tw-story').style.backgroundSize = "cover";
document.querySelector('tw-story').style.backgroundPosition = "center";
document.querySelector('tw-story').style.backgroundAttachment = "fixed";
// Make sure passage has transparent background
passage.style.backgroundColor = "transparent";
// Animation code - Use CSS animation instead of JavaScript
var paragraph = document.getElementById('buttery-smooth-paragraph');
// Create CSS animation dynamically - much slower
var style = document.createElement('style');
style.textContent = `
@keyframes slowRiseUp {
0% {
transform: translateY(0px);
}
100% {
transform: translateY(-${window.innerHeight + 1500}px);
}
}
#buttery-smooth-paragraph {
animation: slowRiseUp 300s linear forwards !important;
}
`;
document.head.appendChild(style);
// Optional: Clean up scroll prevention when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// Force background image for this passage only
document.querySelector('tw-story').style.backgroundImage = "url('images/soccerborder.jpg')";
document.querySelector('tw-story').style.backgroundSize = "cover";
document.querySelector('tw-story').style.backgroundPosition = "center";
document.querySelector('tw-story').style.backgroundAttachment = "fixed";
document.querySelector('tw-story').style.backgroundRepeat = "no-repeat";
// LANDSCAPE text positioning with fixes
var passage = document.querySelector('tw-passage');
passage.style.width = "60%";
passage.style.height = "350px";
passage.style.position = "absolute";
passage.style.top = "50%";
passage.style.left = "50%";
passage.style.transform = "translate(-50%, -50%)";
passage.style.backgroundColor = "transparent";
passage.style.boxShadow = "none";
passage.style.border = "none";
passage.style.padding = "15px";
passage.style.fontSize = "0.75em";
passage.style.color = "#000000";
passage.style.textShadow = "none";
passage.style.lineHeight = "1.7";
passage.style.textAlign = "center";
passage.style.margin = "0";
passage.style.overflow = "auto";
passage.style.display = "flex";
passage.style.flexDirection = "column";
passage.style.justifyContent = "flex-start";
// Fix hyperlinks
var links = passage.querySelectorAll('a');
for (var i = 0; i < links.length; i++) {
links[i].style.color = "#3C3633";
links[i].style.fontWeight = "bold";
links[i].style.textDecoration = "none";
links[i].style.marginTop = "10px";
links[i].style.marginBottom = "10px";
links[i].style.display = "inline";
}
// Fix back button positioning
var sidebar = document.querySelector('tw-sidebar');
if (sidebar) {
sidebar.style.position = "fixed";
sidebar.style.top = "30px";
sidebar.style.left = "50px";
sidebar.style.zIndex = "9999";
sidebar.style.width = "auto";
sidebar.style.height = "auto";
sidebar.style.backgroundColor = "transparent";
}
// Ensure back button is visible and properly aligned
var backButton = document.querySelector('tw-sidebar [role=button]');
if (backButton) {
backButton.style.position = "relative";
backButton.style.left = "0";
backButton.style.top = "0";
backButton.style.margin = "5px";
backButton.style.padding = "5px";
backButton.style.visibility = "visible";
backButton.style.opacity = "1";
backButton.style.pointerEvents = "auto";
}
// Ensure passage is visible
passage.style.opacity = "1";
passage.style.visibility = "visible";
</script>
<style>
p {
margin-bottom: 1.2rem !important;
line-height: 1.7 !important;
}
p:last-child {
margin-bottom: 0 !important;
}
em {
white-space: nowrap !important;
}
</style>
<p>You sit on the wooden pellet couch that is covered in a red blanket. You try the acupuncture technique to stop nausea. You press down on your right wrist with your left thumb, searching for the pressure point.</p>
<p>You tell her you feel <em>mela</em> (apple) when you mean to say <em>male</em> (sick). She brings you a big plate of fruit and you force yourself to swallow.</p>
<p>Mid vomit she walks in and comforts you with words that feel– are familiar. Mid shower, the water runs out. You stand naked in front of the tiny sink rinsing shampoo from your dead ends.</p>
<p><strong>[[Outside the bathroom window, a soccer ball is tossed between small dirty soles.]]</strong></p><style>
tw-story {
background: url('images/broken.jpg') center center / cover no-repeat fixed !important;
background-color: #EEEDEB !important;
}
tw-passage {
background: transparent !important;
position: relative !important;
min-height: 100vh !important;
overflow: hidden !important;
}
body, html {
background-color: #EEEDEB !important;
}
/* Clear any previous background styles */
tw-story[tags] {
background-image: none;
}
tw-story[tags~="background8"] {
background: url('images/broken.jpg') center center / cover no-repeat fixed !important;
background-color: #EEEDEB !important;
}
</style>
<p style="position: absolute; top: 280px; left: 50%; transform: translateX(-50%); width: 90%; max-width: 800px; margin: 0; padding: 20px; line-height: 1.6; color: #000; z-index: 10;">Broken drawers, broken glasses, broken fridge. She searches to find the only plate without a chip. Everything is covered in a towel. Your bowl of half-eaten <em>insalata</em>, the table already set for dinner though it's still morning, the fruit bowl, the 3-story cart of tomatoes. You catch her one morning before she knows you're watching. Tearing squares of towel from the roll and covering the piles. A cloth concealing the body at the funeral. The red blanket on the couch. The lid of the tank covering the questions, hiding the story. You create the tank in your own image. Wondering requires too many senses. You sense it isn't appropriate. <strong>[[You sense that your questions do not have answers.]]</strong></p>
<script>
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// Clean up everything from the previous passage
document.querySelector('tw-story').style.backgroundImage = "none";
document.querySelector('tw-story').style.backgroundSize = "";
document.querySelector('tw-story').style.backgroundPosition = "";
document.querySelector('tw-story').style.backgroundAttachment = "";
// Remove all the scattered images
var images = document.querySelectorAll('.tablecloth-image');
images.forEach(function(img) {
img.remove();
});
// Restore scrolling
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
// Make sure passage background is back to normal
document.querySelector('tw-passage').style.backgroundColor = "";
</script>
You look out the back window while they drive away from the village. The mountain screams dry. *Fichi d'india* line the road. The sky fades blue into yellow, yellow into pink. Zio slams on the brakes and points. You roll down the window. The wild boar groans a loud goodbye. You all stare in silence. It groans again and you stare into its eyes.
It bows its head. You bow yours. [[The car continues driving.]]
<style>
tw-story {
background: url('images/sky.jpg') center center / cover no-repeat fixed !important;
background-color: transparent !important;
}
tw-passage {
background: transparent !important;
}
</style><script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
// Force override the persistent scroll blocking from previous passages
document.body.style.setProperty('overflow', 'auto', 'important');
document.documentElement.style.setProperty('overflow', 'auto', 'important');
// Force scroll to top of page
window.scrollTo(0, 0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
// Also force it after a small delay to ensure it takes effect
setTimeout(() => {
window.scrollTo(0, 0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}, 100);
</script>
<style>
/* Force zero spacing on everything */
* {
margin: 0 !important;
padding: 0 !important;
line-height: 1 !important;
font-size: 1em !important;
}
</style>
<!-- First row text - centered -->
<div style="width: 100%; text-align: center; padding-bottom: 0 !important; margin-bottom: 0 !important;">
<p>You call your mother; in Melbourne it rains all night long.</p>
</div>
<!-- First row of door images with zero space -->
<div style="display: flex; width: 100%; gap: 0;">
<div style="flex: 1; width: 25%;">
<img src="images/hands2.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands5.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands11.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands19.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
</div>
<!-- Second row text - centered -->
<div style="width: 100%; text-align: center;">
<p>Somewhere the tank sleeps badly in a scrap metal yard. It drinks up the rain, then it dries out.</p>
</div>
<!-- Second row of door images with zero space -->
<div style="display: flex; width: 100%; gap: 0;">
<div style="flex: 1; width: 25%;">
<img src="images/hands23.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands28.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands14.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands32.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
</div>
<!-- Third row text - centered -->
<div style="width: 100%; text-align: center;">
<p>It holds, it contains, it remembers for us, saves for the next rainy day. The sun sets and rises at the same time in different places.</p>
</div>
<!-- Third row of door images with zero space -->
<div style="display: flex; width: 100%; gap: 0;">
<div style="flex: 1; width: 25%;">
<img src="images/hands37.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands50.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands46.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands38.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
</div>
<!-- Fourth row text - centered -->
<div style="width: 100%; text-align: center;">
<p>You and her both exhale. There is no overflowing the water tank home. Only refilling as the mother and father return. The children pile in. The weeds are plucked and prepared.</p>
</div>
<!-- Fourth row of door images with zero space -->
<div style="display: flex; width: 100%; gap: 0;">
<div style="flex: 1; width: 25%;">
<img src="images/hands42.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands6.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands46.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/hands18.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
</div>
<!-- Hyperlinked line separated -->
<div style="width: 100%; text-align: center; margin-top: 20px;">
<p><strong>[[By morning, the field will have grown new leaves again.]]</strong></p>
</div><style>
tw-story {
background: url('images/timelines.jpg') center center / cover no-repeat fixed !important;
background-color: transparent !important;
}
tw-passage {
background: transparent !important;
font-size: 0.7em !important;
line-height: 1.4 !important;
max-width: 50% !important;
margin: 15% auto 0 !important;
padding: 10px !important;
}
</style>
Your nonna tells you your uncle nearly died of dehydration as a child. You carry a two-litre water bottle to every outing. You know how to say 'hot' and 'Australian' in dialect. String a sentence together.
[[Everyone smiles.]] <script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
document.querySelector('tw-story').style.background = "none";
// Small delay to ensure clearing takes effect
setTimeout(() => {
document.querySelector('tw-story').style.setProperty('background', 'url("images/smoke.jpg") center center / cover no-repeat fixed', 'important');
document.querySelector('tw-story').style.setProperty('background-color', 'transparent', 'important');
}, 50);
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script>
<style>
tw-story {
background: url('images/smoke.jpg') center center / cover no-repeat fixed !important;
background-color: transparent !important;
}
tw-passage {
background: transparent !important;
padding: 20px !important;
margin: 0 auto !important;
max-width: 800px !important;
min-height: 100vh !important;
display: flex !important;
flex-direction: column !important;
justify-content: center !important;
}
/* Force override any previous background styling */
body, html {
background: none !important;
overflow: hidden !important;
}
.passage-content {
position: relative !important;
z-index: 1 !important;
padding: 20px !important;
margin-top: -200px !important;
margin-bottom: 100px !important;
}
.passage-content p {
margin-bottom: 1.5rem !important;
line-height: 1.6 !important;
}
.passage-content p:last-child {
margin-bottom: 0 !important;
}
</style>
<div class="passage-content">
<p>In the tank they ate pigeon your Nonno shot and Nonna stewed, bitter greens harvested from the field surrounding.</p>
<p>You write the <em>peperonata</em> into the play. The Milanese scriptwriting teacher squints, tells you, <em>This is not breakfast food.</em></p>
<p>The smell of it nudges you awake on the second morning, or is it the third? Garlic crushed under palm, Pipi blackening in the pan.</p>
<p><strong>[[Oil spits and expands around her.]]</strong></p>
</div>
<script>
// Additional backup method - force reapply background after content loads
window.addEventListener('load', function() {
const story = document.querySelector('tw-story');
if (story) {
story.style.setProperty('background-image', 'url("images/smoke.jpg")', 'important');
story.style.setProperty('background-size', 'cover', 'important');
story.style.setProperty('background-position', 'center center', 'important');
story.style.setProperty('background-repeat', 'no-repeat', 'important');
story.style.setProperty('background-attachment', 'fixed', 'important');
}
});
</script><script>
// AGGRESSIVE background clearing with multiple attempts
function clearBackground() {
const story = document.querySelector('tw-story');
if (story) {
// Method 1: Remove all background properties
story.style.backgroundImage = "none";
story.style.background = "none";
story.style.removeProperty('background');
story.style.removeProperty('background-image');
story.style.removeProperty('background-size');
story.style.removeProperty('background-position');
story.style.removeProperty('background-repeat');
story.style.removeProperty('background-attachment');
// Method 2: Force override with your default color
story.style.setProperty('background', '#EEEDEB', 'important');
story.style.setProperty('background-color', '#EEEDEB', 'important');
story.style.setProperty('background-image', 'none', 'important');
}
}
// Try multiple times with delays
clearBackground();
setTimeout(clearBackground, 100);
setTimeout(clearBackground, 300);
setTimeout(clearBackground, 500);
// Multiple attempts to force scrolling back
document.body.style.setProperty('overflow', 'auto', 'important');
document.documentElement.style.setProperty('overflow', 'auto', 'important');
document.querySelector('tw-story').style.setProperty('overflow', 'auto', 'important');
document.querySelector('tw-passage').style.setProperty('overflow', 'auto', 'important');
// Also try removing the property entirely and re-adding
document.body.style.removeProperty('overflow');
document.documentElement.style.removeProperty('overflow');
document.body.style.overflow = 'auto';
document.documentElement.style.overflow = 'auto';
</script>
<style>
/* FORCE clear all backgrounds */
tw-story {
background: #EEEDEB !important;
background-image: none !important;
background-color: #EEEDEB !important;
}
body, html {
background: #EEEDEB !important;
background-image: none !important;
}
.article-embed {
background: #f9f7f4 !important;
padding: 20px !important;
margin: 0 0 20px 20px !important;
transform: rotate(-2deg) !important;
font-family: 'Times New Roman', serif !important;
font-size: 0.6em !important;
line-height: 1.3 !important;
color: #1a1a1a !important;
max-width: 350px !important;
float: right !important;
cursor: pointer !important;
transition: transform 0.2s ease !important;
box-shadow: 2px 2px 8px rgba(0,0,0,0.1) !important;
border: 1px solid #e0e0e0 !important;
position: relative !important;
z-index: 3 !important;
}
.article-embed::before {
content: '' !important;
position: absolute !important;
top: 3px !important;
left: 3px !important;
right: -3px !important;
bottom: -3px !important;
background: #f5f3f0 !important;
border: 1px solid #d0d0d0 !important;
transform: rotate(1deg) !important;
z-index: -1 !important;
}
.article-embed::after {
content: '' !important;
position: absolute !important;
top: 6px !important;
left: 6px !important;
right: -6px !important;
bottom: -6px !important;
background: #f0ede8 !important;
border: 1px solid #c5c5c5 !important;
transform: rotate(-0.5deg) !important;
z-index: -2 !important;
}
.article-embed:hover {
transform: rotate(-2deg) scale(1.02) !important;
}
.newspaper-header {
font-weight: bold !important;
font-size: 0.7em !important;
margin-bottom: 8px !important;
color: #1a1a1a !important;
letter-spacing: 1px !important;
text-transform: uppercase !important;
text-align: center !important;
border-bottom: 2px solid #1a1a1a !important;
padding-bottom: 5px !important;
}
.article-headline {
font-weight: bold !important;
font-size: 1.1em !important;
margin-bottom: 8px !important;
color: #1a1a1a !important;
text-align: center !important;
line-height: 1.2 !important;
}
.article-date {
font-size: 0.7em !important;
margin-bottom: 12px !important;
color: #666 !important;
text-align: center !important;
border-bottom: 1px solid #ccc !important;
padding-bottom: 8px !important;
}
.article-body {
text-align: justify !important;
columns: 2 !important;
column-gap: 15px !important;
column-rule: 1px solid #ddd !important;
}
.article-location {
font-weight: bold !important;
font-variant: small-caps !important;
}
.article-body p {
margin: 0 0 8px 0 !important;
text-indent: 8px !important;
}
</style>
<div class="article-embed" onclick="window.open('https://edgeofhumanity.com/2018/08/15/italy-14/', '_blank')">
<div class="newspaper-header">Edge of Humanity Magazine</div>
<div class="article-headline">Poverty, Isolation & Love For The Land</div>
<div class="article-date">August 15, 2018</div>
<div class="article-body">
<p><span class="article-location">Nardodipace, Italy</span> — Considered one of the poorest comune in Italy, Nardodipace has just more than 1,000 inhabitants distributed in 5 small cities: Cassari, Ragonà, Vecchio Abitato, Santo Todaro, and Ciano.</p>
<p>A place where one can still perceive an ancient simplicity in everyday gestures. Time is precious here, inhabited mostly by humble farmers who work a land that is often severe, sometimes cruel.</p>
<p>The love for the land is so strong that sometimes those who live there renounce their dreams of a different life, even cursing themselves for the isolation forced by difficult, unsavory and abandoned roads.</p>
<p>Shaking hands and the word given is more valuable than anything else: a place where the non-local is called "Forestieru" but where initial mistrust transforms, with human sincerity, into courtesy, welcome and familiarity, with a great desire to tell and be heard.</p>
</div>
</div>
<div style="overflow: hidden; min-height: 400px;">
<p>Tan-skinned kids swim in the sea. You float easily and dodge a soccer ball kicked overhead. They speak dialect, they squeal, they scream. More rock than sand. You cut your feet. She lies on a beach chair and tells you he has gone to find <strong>[[other villagers]]</strong> for you to meet. A parade of cousins and connections you fail to map.</p>
</div><script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
// Force override the persistent scroll blocking from previous passages
document.body.style.setProperty('overflow', 'auto', 'important');
document.documentElement.style.setProperty('overflow', 'auto', 'important');
// Force scroll to top of page
window.scrollTo(0, 0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
// Also force it after a small delay to ensure it takes effect
setTimeout(() => {
window.scrollTo(0, 0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}, 100);
</script>
<div class="big-brackets rotated-brackets">
<div class="dynamic-text">
<p class="line line-1">A cross-shaped price tag on the back of the crucifix. They drive you to the village through 2, 3, 5 pit stops. Gravel roads that remember earthquake, potholes like small mouths gasping.</p>
<img src="images/purple.jpg" class="inter-text-image rotated-image">
<p class="line line-2"><em>Fontana di Bella Donna</em>: cold mountain water runs from your wrist while you sway bottles from their necks. Hold steady, the water rises, you cap and repeat.</p>
<p class="line line-3">The car boot sloshing fountain water interferes with wind translation. Your ex-carabinieri Zio speeds down mountain curves; grey dust musters courage to lean in and kiss. You wind the window up.</p>
<img src="images/church1.jpg" class="inter-text-image rotated-image">
<p class="line line-4">The belongings in your bag become a fourth passenger, bouncing over rocks in the back. You hope something falls out so you'll have to turn around.</p>
<p class="line line-5">In the tank lived your mother and her mother and father, 3 brothers - one bigger, one younger, one baby clutching a fist toward the entrance into the world. You try imagining but the dimensions don't add up.</p>
<img src="images/zio.jpg" class="inter-text-image rotated-image">
<p class="line line-6">You can imagine a red apple spinning, a fig tree, a rosary. But no matter how deep you dive into visualisation, <strong>[[the mathematics of desperation refuse to stack up.]]</strong></p>
<img src="images/clothesline.jpg" class="inter-text-image rotated-image">
</div>
</div>
<style>
/* Add rotation to the brackets container */
.rotated-brackets::before {
content: "(";
position: absolute;
left: -2rem;
top: -1rem;
font-size: 8rem;
transform: rotate(-15deg);
color: #333;
}
.rotated-brackets::after {
content: ")";
position: absolute;
right: -2rem;
bottom: -1rem;
font-size: 8rem;
transform: rotate(15deg);
color: #333;
}
.rotated-brackets {
position: relative;
}
/* Add rotation to images */
.rotated-image {
transform: rotate(5deg);
transform-origin: center;
transition: transform 0.3s ease;
}
.rotated-image:hover {
transform: rotate(-3deg);
}
</style>
<script>
// Reset background ONLY - no text styling
document.querySelector('tw-story').style.backgroundImage = "none";
// Force override the persistent scroll blocking from previous passages
document.body.style.setProperty('overflow', 'auto', 'important');
document.documentElement.style.setProperty('overflow', 'auto', 'important');
</script><script>
// Force clear any previous background images
document.querySelector('tw-story').style.backgroundImage = "none";
document.querySelector('tw-story').style.background = "none";
// Small delay to ensure clearing takes effect
setTimeout(() => {
document.querySelector('tw-story').style.setProperty('background', 'url("images/abstract3.jpg") center center / cover no-repeat fixed', 'important');
document.querySelector('tw-story').style.setProperty('background-color', 'transparent', 'important');
}, 50);
// ENABLE scrolling instead of disabling it
document.body.style.overflow = 'auto';
document.documentElement.style.overflow = 'auto';
// Force scroll to top of page
window.scrollTo(0, 0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
// Also force it after a small delay to ensure it takes effect
setTimeout(() => {
window.scrollTo(0, 0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}, 100);
</script>
<style>
tw-story {
background: url('images/abstract3.jpg') center center / cover no-repeat fixed !important;
background-color: transparent !important;
}
tw-passage {
background: transparent !important;
padding: 20px !important;
margin: 0 auto !important;
max-width: 800px !important;
}
/* Force override any previous background styling but ALLOW scrolling */
body, html {
background: none !important;
overflow: auto !important;
}
.passage-content {
position: relative !important;
z-index: 1 !important;
padding: 20px !important;
min-height: 100vh !important;
}
.passage-content p {
margin-bottom: 1.5rem !important;
line-height: 1.6 !important;
}
</style>
<div class="passage-content">
<p>In the village where your mother was born, heat is not arid or tropical but something else - something to do with the Mediterranean, with belief, with time moving at the speed of stories. You sit on a rock alongside the river at the mountain's base while Zio pokes his pear tree with a stick, beckoning them to fall. You crawl on overgrown grass to collect pears in a <em>Carrefour</em> bag he holds open.</p>
<p>You eat. You press down on your wrist searching for the pressure point. <strong>[[Fuck it– you cry.]]</strong></p>
<p>Saltwater creates scales on your palms. Black stains on feet you're not sure will ever come out. You scale between <em>male</em> and <em>bene</em>. <strong>[[You pendulum back and forth ten times in an hour.]]</strong></p>
</div>
<script>
// Additional backup method - force reapply background after content loads
window.addEventListener('load', function() {
const story = document.querySelector('tw-story');
if (story) {
story.style.setProperty('background-image', 'url("images/abstract3.jpg")', 'important');
story.style.setProperty('background-size', 'cover', 'important');
story.style.setProperty('background-position', 'center center', 'important');
story.style.setProperty('background-repeat', 'no-repeat', 'important');
story.style.setProperty('background-attachment', 'fixed', 'important');
}
});
// Don't disable scrolling when leaving this passage
</script><script>
// Clear the persistent background from previous passage
document.querySelector('tw-story').style.backgroundImage = "none";
document.querySelector('tw-story').style.background = "none";
document.querySelector('tw-story').style.removeProperty('background');
document.querySelector('tw-story').style.removeProperty('background-image');
document.querySelector('tw-story').style.removeProperty('background-size');
document.querySelector('tw-story').style.removeProperty('background-position');
document.querySelector('tw-story').style.removeProperty('background-repeat');
document.querySelector('tw-story').style.removeProperty('background-attachment');
// Force override with default background color
document.querySelector('tw-story').style.setProperty('background', '#EEEDEB', 'important');
document.querySelector('tw-story').style.setProperty('background-color', '#EEEDEB', 'important');
// RESTORE SCROLLING - remove the persistent scroll blocking
document.body.style.removeProperty('overflow');
document.documentElement.style.removeProperty('overflow');
document.body.style.setProperty('overflow', 'auto', 'important');
document.documentElement.style.setProperty('overflow', 'auto', 'important');
// Force scroll to top of page
window.scrollTo(0, 0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
// Also force it after a small delay to ensure it takes effect
setTimeout(() => {
window.scrollTo(0, 0);
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}, 100);
</script>
<style>
/* Clear any persistent backgrounds but use default color */
tw-story {
background: #EEEDEB !important;
background-image: none !important;
background-color: #EEEDEB !important;
}
/* Restore scrolling */
body, html {
overflow: auto !important;
background-color: #EEEDEB !important;
}
/* Force zero spacing on everything */
* {
margin: 0 !important;
padding: 0 !important;
line-height: 1 !important;
font-size: 1em !important;
}
</style>
<!-- First row text - centered -->
<div style="width: 100%; text-align: center; padding-bottom: 0 !important; margin-bottom: 0 !important;">
<p>You open the door with the key looped on the Matryoshka doll keyring.</p>
</div>
<!-- First row of door images with zero space -->
<div style="display: flex; width: 100%; gap: 0;">
<div style="flex: 1; width: 25%;">
<img src="images/door1.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door2.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door3.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door4.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
</div>
<!-- Second row text - centered -->
<div style="width: 100%; text-align: center;">
<p>The key your cousin gave you. You promised not to lose it by keeping it in the wallet with the GPS tile tracker. When you check, there are no bars on your phone.</p>
</div>
<!-- Second row of door images with zero space -->
<div style="display: flex; width: 100%; gap: 0;">
<div style="flex: 1; width: 25%;">
<img src="images/door5.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door6.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door7.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door8.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
</div>
<!-- Third row text - centered -->
<div style="width: 100%; text-align: center;">
<p>Inside the bedroom-sized house, she points to a single mattress pushed against the corner and tells you, 'this is where your mother entered the world'.</p>
</div>
<!-- Third row of door images with zero space -->
<div style="display: flex; width: 100%; gap: 0;">
<div style="flex: 1; width: 25%;">
<img src="images/door9.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door10.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door11.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/stucco.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
</div>
<!-- Fourth row text - centered -->
<div style="width: 100%; text-align: center;">
<p><strong>[[The number 4 is painted in red on the outside stucco wall.]]</strong></p>
</div>
<!-- Fourth row of door images with zero space -->
<div style="display: flex; width: 100%; gap: 0;">
<div style="flex: 1; width: 25%;">
<img src="images/door13.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door14.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door15.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
<div style="flex: 1; width: 25%;">
<img src="images/door12.jpg" alt="" style="width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block;">
</div>
</div><script>
// Clear any persistent backgrounds
document.querySelector('tw-story').style.backgroundImage = "none";
document.querySelector('tw-story').style.background = "none";
// Force background image for this passage only
document.querySelector('tw-story').style.backgroundImage = "url('images/catholicborder.jpg')";
document.querySelector('tw-story').style.backgroundSize = "cover";
document.querySelector('tw-story').style.backgroundPosition = "center";
document.querySelector('tw-story').style.backgroundAttachment = "fixed";
document.querySelector('tw-story').style.backgroundRepeat = "no-repeat";
// LANDSCAPE text positioning with fixes
var passage = document.querySelector('tw-passage');
passage.style.width = "65%";
passage.style.height = "280px";
passage.style.position = "absolute";
passage.style.top = "50%";
passage.style.left = "50%";
passage.style.transform = "translate(-50%, -50%)";
passage.style.backgroundColor = "transparent";
passage.style.boxShadow = "none";
passage.style.border = "none";
passage.style.padding = "15px";
passage.style.fontSize = "0.8em";
passage.style.color = "#000000";
passage.style.textShadow = "none";
passage.style.lineHeight = "1.6";
passage.style.textAlign = "left";
passage.style.margin = "0";
passage.style.overflow = "auto";
passage.style.display = "flex";
passage.style.flexDirection = "column";
passage.style.justifyContent = "flex-start";
// Fix hyperlinks
var links = passage.querySelectorAll('a');
for (var i = 0; i < links.length; i++) {
links[i].style.color = "#2c2c2c";
links[i].style.fontWeight = "bold";
links[i].style.textDecoration = "none";
links[i].style.marginTop = "10px";
links[i].style.marginBottom = "10px";
links[i].style.display = "inline";
}
// Fix back button positioning
var sidebar = document.querySelector('tw-sidebar');
if (sidebar) {
sidebar.style.position = "fixed";
sidebar.style.top = "30px";
sidebar.style.left = "50px";
sidebar.style.zIndex = "9999";
sidebar.style.width = "auto";
sidebar.style.height = "auto";
sidebar.style.backgroundColor = "transparent";
}
// Ensure back button is visible and properly aligned
var backButton = document.querySelector('tw-sidebar [role=button]');
if (backButton) {
backButton.style.position = "relative";
backButton.style.left = "0";
backButton.style.top = "0";
backButton.style.margin = "5px";
backButton.style.padding = "5px";
backButton.style.visibility = "visible";
backButton.style.opacity = "1";
backButton.style.pointerEvents = "auto";
}
// Ensure passage is visible
passage.style.opacity = "1";
passage.style.visibility = "visible";
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script>
<style>
p {
margin-bottom: 1.2rem !important;
line-height: 1.6 !important;
}
p:last-child {
margin-bottom: 0 !important;
}
</style>
<p>They lead you up the sloped street. You wait outside another small house while Zia calls out a greeting in rapid-fire dialect– urgency easy to decode.</p>
<p>When you enter each wall is covered with framed pictures of saints and Madonna, no white paint saved from the weight of watching.</p>
<p>A small lady with brown wrinkled skin dressed in black sits on the couch, dress shoes on even though there is nowhere to go.</p>
<p>You don't know who she is, but she knows who you are.</p>
<p>She rips the oxygen tube from under her nose and leans in to hold you. She grabs your hands, rosary still in fist. The beads bite into your palm. They imprint a symbol, if only you could read it.</p>
<p>Snot meeting blood and bile in your gut. Her aged skin swallows your tears before they can reach you.</p>
<p>The local Catholic channel continues playing in the background; the rich can afford to be atheist. Breathless, gasping, snot seeping from the inside out.</p>
<p>When she asks you how your mother is you lean into her t-shirt, heaving. You exchange something with her to prove that it's more than just blood.</p>
<p><em>'Andiamo,'</em> and you follow footsteps away; she stays framed in the doorway, crying, shaking, steady hand waving as you hike up the sloped driveway choking on tears.</p>
<p>Too exhausted to find the translation that says you hope you will see her again. Your body stops you from making promises to people <strong>[[nothing but faith.]]</strong></p><script>
// Clear the persistent background from previous passage
document.querySelector('tw-story').style.backgroundImage = "none";
document.querySelector('tw-story').style.background = "none";
document.querySelector('tw-story').style.removeProperty('background');
document.querySelector('tw-story').style.removeProperty('background-image');
document.querySelector('tw-story').style.removeProperty('background-size');
document.querySelector('tw-story').style.removeProperty('background-position');
document.querySelector('tw-story').style.removeProperty('background-repeat');
document.querySelector('tw-story').style.removeProperty('background-attachment');
// Force override with transparent background first
document.querySelector('tw-story').style.setProperty('background', 'transparent', 'important');
document.querySelector('tw-story').style.setProperty('background-color', 'transparent', 'important');
// Small delay to ensure clearing takes effect, then apply new background
setTimeout(() => {
document.querySelector('tw-story').style.setProperty('background', 'url("images/abstract2.jpg") center center / cover no-repeat fixed', 'important');
document.querySelector('tw-story').style.setProperty('background-color', 'transparent', 'important');
}, 50);
// Disable scrolling
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
</script>
<style>
tw-story {
background: url('images/abstract2.jpg') center center / cover no-repeat fixed !important;
background-color: transparent !important;
}
tw-passage {
background: transparent !important;
}
/* Clear any persistent backgrounds */
body, html {
background: none !important;
overflow: hidden !important;
}
</style>
<p>When your Nonna said goodbye to her father for the last time in Reggio airport, he was crying so much that she left him behind with saltwater dripping from his leather shoes.</p>
<p><strong>[[She never saw him again.]]</strong></p>
<script>
// Additional backup method - force reapply background after content loads
window.addEventListener('load', function() {
const story = document.querySelector('tw-story');
if (story) {
story.style.setProperty('background-image', 'url("images/abstract2.jpg")', 'important');
story.style.setProperty('background-size', 'cover', 'important');
story.style.setProperty('background-position', 'center center', 'important');
story.style.setProperty('background-repeat', 'no-repeat', 'important');
story.style.setProperty('background-attachment', 'fixed', 'important');
}
});
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// AGGRESSIVE background clearing - try multiple methods
const story = document.querySelector('tw-story');
if (story) {
// Method 1: Remove all background properties
story.style.backgroundImage = "none";
story.style.background = "none";
story.style.removeProperty('background');
story.style.removeProperty('background-image');
story.style.removeProperty('background-size');
story.style.removeProperty('background-position');
story.style.removeProperty('background-repeat');
story.style.removeProperty('background-attachment');
// Method 2: Force transparent background to show default
story.style.setProperty('background', 'transparent', 'important');
story.style.setProperty('background-color', '#EEEDEB', 'important');
story.style.setProperty('background-image', 'none', 'important');
}
// AGGRESSIVE scroll restoration
document.body.style.removeProperty('overflow');
document.documentElement.style.removeProperty('overflow');
document.body.style.setProperty('overflow', 'auto', 'important');
document.documentElement.style.setProperty('overflow', 'auto', 'important');
// Force page scroll restoration
window.addEventListener('load', function() {
document.body.style.overflow = 'auto';
document.documentElement.style.overflow = 'auto';
});
</script>
<style>
/* FORCE clear all backgrounds but use your default color */
tw-story {
background: transparent !important;
background-image: none !important;
background-color: #EEEDEB !important;
}
tw-passage {
background: transparent !important;
background-image: none !important;
}
body, html {
background-color: #EEEDEB !important;
background-image: none !important;
overflow: auto !important;
}
.concrete-container {
position: relative;
width: 100%;
min-height: 100vh;
background: transparent !important;
padding: 40px;
font-family: inherit;
font-size: 1rem;
line-height: 1.6;
color: #000;
text-align: center;
}
.line {
margin-bottom: 1.5rem;
transition: all 0.3s ease;
}
/* Normal structured text at the top */
.line-1 { }
.line-2 { margin-left: 10px; }
.line-3 { margin-left: 20px; }
/* Text starts spreading out but stays readable */
.line-4 {
word-spacing: 5px;
margin-top: 2rem;
}
.line-5 {
word-spacing: 10px;
margin-top: 2.5rem;
}
.line-6 {
word-spacing: 15px;
letter-spacing: 1px;
margin-top: 3rem;
}
.line-7 {
word-spacing: 20px;
letter-spacing: 2px;
margin-top: 3.5rem;
}
.line-8 {
word-spacing: 30px;
letter-spacing: 3px;
margin-top: 4rem;
}
.line-9 {
word-spacing: 40px;
letter-spacing: 4px;
margin-top: 4.5rem;
}
.line-10 {
word-spacing: 50px;
letter-spacing: 5px;
margin-top: 5rem;
}
.final-line {
margin-top: 6rem;
font-weight: bold;
font-size: 1.1rem;
word-spacing: 20px;
letter-spacing: 2px;
}
/* Hover effects for interactivity */
.line:hover {
color: #666;
cursor: pointer;
}
</style>
<div class="concrete-container">
<div class="line line-1">They take you to the cemetery. You sign across your chests.</div>
<div class="line line-2">She kicks gravel stones with her toes, mutters prayers under her breath.</div>
<div class="line line-3">Plotting DNA across the dirt floor,</div>
<div class="line line-4">bones turned stone,</div>
<div class="line line-5">heat insisting in open-mouthed heavy heaps of exhale.</div>
<div class="line line-6">You pick dead petals from the flowers on the graves.</div>
<div class="line line-7">More buried on this mountain than living.</div>
<div class="line line-8">Another no-produce year for the olive fields.</div>
<div class="line line-9">She looks up to the sky,</div>
<div class="line line-10">looks up to ask</div>
<div class="final-line"><strong>[[for something...]]</strong></div>
</div><style>
tw-story {
background: url('images/ending.jpg') center center / cover no-repeat fixed !important;
background-color: transparent !important;
}
tw-passage {
background: transparent !important;
}
</style>(after: 5s)[(goto: "Intro")]
<style>
tw-passage {
background: transparent !important;
min-height: 100vh !important;
padding: 20px !important;
}
body, html {
overflow: hidden !important;
}
p {
margin-top: 100px !important;
margin-bottom: 0 !important;
margin-left: auto !important;
margin-right: auto !important;
width: 90% !important;
max-width: 800px !important;
padding: 20px !important;
line-height: 1.6 !important;
color: #000 !important;
}
</style>
<p>'Why would she ever leave?' you wonder. She sold her small house in the village for 1,000 Lire. The flights and visas to Australia cost the same amount. That's the problem with sacrifice. <strong>[[You realise she wonders the same thing.]]</strong></p>
<script>
// Remove page scroll
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Clean up when leaving passage
window.addEventListener('beforeunload', function() {
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
});
</script><script>
// Clear the persistent background from previous passage
document.querySelector('tw-story').style.backgroundImage = "none";
document.querySelector('tw-story').style.background = "none";
document.querySelector('tw-story').style.removeProperty('background');
document.querySelector('tw-story').style.removeProperty('background-image');
document.querySelector('tw-story').style.removeProperty('background-size');
document.querySelector('tw-story').style.removeProperty('background-position');
document.querySelector('tw-story').style.removeProperty('background-repeat');
document.querySelector('tw-story').style.removeProperty('background-attachment');
// Force override with default background color
document.querySelector('tw-story').style.setProperty('background', '#EEEDEB', 'important');
document.querySelector('tw-story').style.setProperty('background-color', '#EEEDEB', 'important');
</script>
<style>
/* Clear any persistent backgrounds but use default color */
tw-story {
background: #EEEDEB !important;
background-image: none !important;
background-color: #EEEDEB !important;
}
body, html {
background-color: #EEEDEB !important;
}
.image-text-container {
display: flex;
align-items: flex-start;
gap: 2rem;
margin: 2rem 0;
max-width: 100%;
}
.side-image {
flex: 0 0 40%; /* Takes up 40% width, doesn't grow or shrink */
max-width: 400px;
height: auto;
object-fit: cover;
transform: rotate(-2deg);
transform-origin: center;
transition: transform 0.3s ease;
}
.side-image:hover {
transform: rotate(1deg);
}
.text-block {
flex: 1; /* Takes remaining space */
padding: 1rem;
line-height: 1.6;
font-size: 1.1rem;
}
.text-block p {
margin-bottom: 1rem;
}
.text-block p:last-child {
margin-bottom: 0;
font-style: italic;
opacity: 0.8;
}
/* Responsive design for smaller screens */
@media (max-width: 768px) {
.image-text-container {
flex-direction: column;
gap: 1rem;
}
.side-image {
flex: none;
max-width: 100%;
align-self: center;
}
}
</style>
<div class="image-text-container">
<img src="images/stairs.jpg" alt="Old staircase" class="side-image" />
<div class="text-block">
<p>You climb the staircase that seems more like a question than an answer. The stones are uneven under your feet. The village stacks itself without logic. Buildings lean against each other like fed-up farmers, hungry yet without a yield. You reach the top and find only air and silence.</p>
<p><strong>Dead end, turn back.</strong></p>
</div>
</div><script>
// Only run this script if we're in the background3 passage
var passage = document.querySelector('tw-passage');
var story = document.querySelector('tw-story');
// Check if this is the correct passage by looking at unique content or tags
if (passage && passage.textContent.includes("letter.jpg") || story.getAttribute("tags").includes("background3")) {
console.log("Running background3 script");
// Disable scrolling ONLY for this passage
document.body.style.overflow = 'hidden';
document.documentElement.style.overflow = 'hidden';
// Store original scroll settings to restore later
var originalBodyOverflow = document.body.style.overflow;
var originalHtmlOverflow = document.documentElement.style.overflow;
// First, set the background image
document.querySelector('tw-story').style.backgroundImage = "url('images/tablecloth.jpg')";
document.querySelector('tw-story').style.backgroundSize = "cover";
document.querySelector('tw-story').style.backgroundPosition = "center";
document.querySelector('tw-story').style.backgroundAttachment = "fixed";
// Make sure passage has transparent background
document.querySelector('tw-passage').style.backgroundColor = "transparent";
// Array of images to display
var images = [
"letter.jpg", "family.jpg", "mum.jpg", "nonnocitizenship.jpg", "cousins.jpg", "farm.jpg",
"pomodoro.jpeg", "marriagecertificate.jpg", "cross.jpg", "mountains1.jpg", "jesus1.jpg", "kids.jpeg", "bottle.jpeg", "stairs.jpg", "mumbirthcertificate.jpg", "saucedaynonno.jpeg", "italy.jpg", "procession1.jpg", "nonni.jpg", "zio.jpg", "mountain2.jpg", "maria.jpg", "jesus2.jpg", "church1.jpg", "nonnomilitary.jpg", "tavolo.jpeg", "boys.jpg", "farm.jpg", "hands14.jpg", "hands50.jpg", "siblings.jpg", "procession5.jpg", "soccer70.jpg", "clothesline.jpg", "community.jpg", "communitykids.jpg", "mum9.jpg", "nonna3.jpg"
];
var currentIndex = 0;
// Function to show images one by one
function showImage() {
if (currentIndex < images.length) {
// Create a new image element
var img = document.createElement('img');
img.src = 'images/' + images[currentIndex];
img.className = "tablecloth-image"; // Add class for later cleanup
// Set random positions
var top = Math.random() * 600 + 'px';
var left = Math.random() * 800 + 'px';
var rotation = Math.random() * 180 - 90 + 'deg';
// Style the image
img.style.position = 'absolute';
img.style.top = top;
img.style.left = left;
img.style.transform = 'rotate(' + rotation + ')';
img.style.width = '250px';
img.style.height = 'auto';
img.style.opacity = '0';
img.style.transition = 'opacity 1s ease';
img.style.zIndex = '5';
// Add to page
document.body.appendChild(img);
// Fade in
setTimeout(function() {
img.style.opacity = '1';
}, 100);
// Next image
currentIndex++;
setTimeout(showImage, 500);
}
// Removed the else block - let Harlowe handle the navigation
}
// Start showing images
showImage();
// Add event listener to restore scrolling when leaving this passage
document.addEventListener('tw-passagestart', function restoreScrolling() {
// Check if we're leaving the passage
var currentPassage = document.querySelector('tw-passage');
if (!currentPassage || !currentPassage.textContent.includes("letter.jpg")) {
// Restore original scroll settings
document.body.style.overflow = '';
document.documentElement.style.overflow = '';
// Remove all added images
var images = document.querySelectorAll('.tablecloth-image');
images.forEach(function(img) {
img.remove();
});
// Remove this event listener once it's been used
document.removeEventListener('tw-passagestart', restoreScrolling);
}
});
}
</script>
{
(live: 21s)[
(goto: "ending")
(stop:)
]
}<script>
// AGGRESSIVE background clearing - clear the persistent Catholic border
document.querySelector('tw-story').style.backgroundImage = "none";
document.querySelector('tw-story').style.background = "none";
document.querySelector('tw-story').style.removeProperty('background');
document.querySelector('tw-story').style.removeProperty('background-image');
document.querySelector('tw-story').style.removeProperty('background-size');
document.querySelector('tw-story').style.removeProperty('background-position');
document.querySelector('tw-story').style.removeProperty('background-repeat');
document.querySelector('tw-story').style.removeProperty('background-attachment');
// Force override with default background
document.querySelector('tw-story').style.setProperty('background', '#EEEDEB', 'important');
document.querySelector('tw-story').style.setProperty('background-color', '#EEEDEB', 'important');
document.querySelector('tw-story').style.setProperty('background-image', 'none', 'important');
// Reset any special passage positioning from previous passage
var passage = document.querySelector('tw-passage');
if (passage) {
passage.style.width = "";
passage.style.height = "";
passage.style.position = "";
passage.style.top = "";
passage.style.left = "";
passage.style.transform = "";
passage.style.fontSize = "";
passage.style.lineHeight = "";
passage.style.textAlign = "";
passage.style.display = "";
passage.style.flexDirection = "";
passage.style.justifyContent = "";
passage.style.overflow = "";
passage.style.padding = "";
}
// Restore scrolling
document.body.style.removeProperty('overflow');
document.documentElement.style.removeProperty('overflow');
document.body.style.setProperty('overflow', 'auto', 'important');
document.documentElement.style.setProperty('overflow', 'auto', 'important');
</script>
<style>
/* Force clear all backgrounds */
tw-story {
background: #EEEDEB !important;
background-image: none !important;
background-color: #EEEDEB !important;
}
body, html {
background: #EEEDEB !important;
background-image: none !important;
overflow: auto !important;
}
</style>
<p>You sit open legged on a different balcony. Zio carries gallons of olive oil up and down the hill– gallons of liquid gold. You sit open legged with <strong>[[another last goodbye]]</strong> fighting its way out of your lap.</p>