<div style="text-align:center; font-family:'Bradley Hand ITC'; font-weight:bold; background-color:#228B22; color:white; padding:10px; font-size:32px;">
REVISITING GADWAL – A SHORT HISTORY
</div>
(font:"Bradley Hand ITC")[The city has drowned but it's voices took an interesting turn to manifest. The voices are haunting and fierce. Some submerged, Some dead and decayed, Some struggled and Some revived.
In the ruins of the flooded coastal city of Gadwal, you navigate from one submerged house to another, gathering letters that survived the flood. Each letter a living-dead echo of a life past catastrophe or a life long envisioned. The faces these letters evince can be anything, anyone. The tiny shoes of a toddler, the wind chimes, the fishermen, a ghost, a child, an archivist and the barren shore with its lifeless sovereign.]
(link: "Flood hits Gadwal")[
(transition: "pulse") +(transition-time: 5s)[
<img src="https://media.istockphoto.com/id/1327617934/photo/aerial-view-of-flooded-houses-with-dirty-water-of-dnister-river-in-halych-town-western-ukraine.jpg?s=1024x1024&w=is&k=20&c=h7MIcry_d_Ek_wpuj5OCS9tHBlvJzNGYZKIBJOv_brk="
style="width:50%; border-radius:5px;">
]
]
<audio id="floodAudio" controls loop>
<source src="https://www.dropbox.com/scl/fi/jm561fsu73ye139a3sys4/calming-rain-257596.mp3?rlkey=133mfclbaf47ed8gg98sdru1a&st=4t7ahzfg&dl=1" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
(font:"Bradley Hand ITC")[The tale of Gadwal through some damped letters. You reinvent and reconstruct what the city once was.
The longer you linger, longer the city remembers and revives. A dangerous revival. Your choices creates the city again- of what]
[[Letters Kept]]
[[Letters of Remains]]
[[Letters of the Erased]]
(font:"Bradley Hand ITC")[In a city swallowed by the sea, you read what the living and the dead left behind. Every letter you open changes the shape of what survives.]
[----------------------------------------------------]
<!-- Rain drops container -->
<div id="rainContainer"></div>
<style>
/* Full-screen container */
#rainContainer {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none; /* allows clicks through rain */
z-index: 999; /* on top of everything */
overflow: visible;
}
/* Raindrop style */
.raindrop {
position: absolute;
width: 2px;
height: 15px;
background: rgba(173, 216, 230, 0.7); /* light blue drops */
animation-name: fall;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
/* Falling animation */
@keyframes fall {
0% { transform: translateY(-20px); opacity: 0.5; }
100% { transform: translateY(100vh); opacity: 0; }
}
</style>
<script>
// Generate multiple raindrops
const numDrops = 150; // increase for heavier rain
const rainContainer = document.getElementById('rainContainer');
for(let i=0; i<numDrops; i++) {
const drop = document.createElement('div');
drop.classList.add('raindrop');
// Random horizontal position
drop.style.left = Math.random() * window.innerWidth + 'px';
// Random animation duration and delay
const duration = 0.5 + Math.random() * 1.5; // seconds
const delay = Math.random() * 5; // seconds
drop.style.animationDuration = duration + 's';
drop.style.animationDelay = delay + 's';
rainContainer.appendChild(drop);
}
</script>
<div id="title">LETTERS OF REMAINS</div><div class="floating-letters">
<span class="letter red">a</span>
<span class="letter white">b</span>
<span class="letter red">c</span>
<span class="letter white">d</span>
<span class="letter red">e</span>
<span class="letter white">f</span>
<span class="letter red">g</span>
<span class="letter white">h</span>
<span class="letter red">i</span>
<span class="letter white">j</span>
<span class="letter red">k</span>
</div><style>
body {background-color: black;overflow: visible;height: 100vh;margin: 0;
}/* Title styling */#title {font-family: 'Chiller', cursive;font-size: 60px;font-weight: bold;
color: #ffffff;text-align: center;margin-top: 40px;animation: glow 2s infinite alternate;text-shadow: 0 0 10px #ff4c4c, 0 0 20px #ff9999;
}
@keyframes glow {
0% { text-shadow: 0 0 5px #ff4c4c, 0 0 10px #ff9999; }
100% { text-shadow: 0 0 15px #ff6666, 0 0 25px #ff9999; }
}/* Floating letters container */
.floating-letters {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
overflow: hidden;
z-index: 999;}/* Each letter style */.letter {position: absolute;font-size: 26px;font-weight: 900;opacity: 0.95;animation: floatUp 8s linear infinite;font-family: 'Courier New', monospace;}/* Colors */.red {color: #ff3333;text-shadow: 0 0 8px rgba(255,50,50,0.8);}.white {color: #ffffff;text-shadow: 0 0 8px rgba(255,255,255,0.8);}/* Floating animation */@keyframes floatUp {0% {transform: translateY(100vh) translateX(0);opacity: 0;}10% {opacity: 1;}100% {transform: translateY(-10vh) translateX(calc(-50px + 100vw * var(--x)));opacity: 0;}}/* Random positions and speeds */
.letter:nth-child(1) { left: 10%; animation-duration: 9s; }
.letter:nth-child(2) { left: 20%; animation-duration: 7s; }
.letter:nth-child(3) { left: 30%; animation-duration: 10s; }
.letter:nth-child(4) { left: 40%; animation-duration: 8s; }
.letter:nth-child(5) { left: 50%; animation-duration: 6s; }
.letter:nth-child(6) { left: 60%; animation-duration: 11s; }
.letter:nth-child(7) { left: 70%; animation-duration: 9s; }
.letter:nth-child(8) { left: 80%; animation-duration: 7s; }
.letter:nth-child(9) { left: 90%; animation-duration: 10s; }
.letter:nth-child(10) { left: 25%; animation-duration: 12s; }
.letter:nth-child(11) { left: 75%; animation-duration: 8s; }
</style>
<img src="https://www.dropbox.com/scl/fi/tnir7hu0e6fxbyaufpylf/letters-dh.webp?rlkey=p3pekzoj3l80luwteejexniv9&st=132t1vgy&dl=1" class="shudderImage">
<span class="driftingText">
Weave the tale of Gadwal -choose your letters wisely.
</span>
[[The Child's Journal/]] [[Secret Gift/]]
{
(set: $stopCycle to 0)
(live: 1s)[
(if: $stopCycle is 3)[
ARE U READY!!!!!!(stop:)
]
(else: )[
(set: $stopCycle to it + 1)
(css: "position: absolute; left: " + (string: 10 * $stopCycle) + "px" )[<div class="redYellow"></div>]
]
]
}
GO BACK TO : [[Revisiting Gadwal- A short history]]
[---------------------------------------------------------------------------]
<div class="floating-letters">
<span class="letter red">a</span>
<span class="letter white">b</span>
<span class="letter red">c</span>
<span class="letter white">d</span>
<span class="letter red">e</span>
<span class="letter white">f</span>
<span class="letter red">g</span>
<span class="letter white">h</span>
<span class="letter red">i</span>
<span class="letter white">j</span>
<span class="letter red">k</span>
</div>
<style>
body {
background-color: black;
overflow: visible;
height: 100vh;
margin: 0;
}
/* Floating letters container */
.floating-letters {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
overflow: hidden;
z-index: 999;
}
/* Each letter style */
.letter {
position: absolute;
font-size: 26px; /* increased size */
font-weight: 900; /* bold */
opacity: 0.95;
animation: floatUp 8s linear infinite;
font-family: 'Courier New', monospace;
text-shadow: 0 0 5px rgba(255,255,255,0.4); /* soft glow */
}
/* Colors */
.red {
color: #ff3333;
text-shadow: 0 0 8px rgba(255,50,50,0.8);
}
.white {
color: #ffffff;
text-shadow: 0 0 8px rgba(255,255,255,0.8);
}
/* Floating animation */
@keyframes floatUp {
0% {
transform: translateY(100vh) translateX(0);
opacity: 0;
}
10% {
opacity: 1;
}
100% {
transform: translateY(-10vh) translateX(calc(-50px + 100vw * var(--x)));
opacity: 0;
}
}
/* Random positions and speeds */
.letter:nth-child(1) { left: 10%; animation-duration: 9s; }
.letter:nth-child(2) { left: 20%; animation-duration: 7s; }
.letter:nth-child(3) { left: 30%; animation-duration: 10s; }
.letter:nth-child(4) { left: 40%; animation-duration: 8s; }
.letter:nth-child(5) { left: 50%; animation-duration: 6s; }
.letter:nth-child(6) { left: 60%; animation-duration: 11s; }
.letter:nth-child(7) { left: 70%; animation-duration: 9s; }
.letter:nth-child(8) { left: 80%; animation-duration: 7s; }
.letter:nth-child(9) { left: 90%; animation-duration: 10s; }
.letter:nth-child(10) { left: 25%; animation-duration: 12s; }
.letter:nth-child(11) { left: 75%; animation-duration: 8s; }
</style>
<!-- Passage: Letters Kept -->
<style>
body {
background-color: #000; /* dark background for contrast */
font-family: 'Bradley Hand ITC', cursive;
color: #ADD8E6; /* light blue letters */
margin: 0;
padding: 20px;
overflow-y: auto; /* allow vertical scrolling */
}
/* Title styling */
#lettersTitle {
font-size: 40px;
font-weight: bold;
text-align: center;
color: #ADD8E6;
text-decoration: underline;
margin-bottom: 20px;
animation: titleGlow 2s infinite alternate;
}
@keyframes titleGlow {
0% { text-shadow: 0 0 5px #ADD8E6, 0 0 10px #87CEFA; }
50% { text-shadow: 0 0 20px #ADD8E6, 0 0 40px #87CEFA; }
100% { text-shadow: 0 0 5px #ADD8E6, 0 0 10px #87CEFA; }
}
/* Main text container */
#lettersText {
font-size: 22px;
line-height: 1.5em;
color: #ADD8E6;
}
/* Floating letters */
.floating-letter {
position: absolute;
font-size: 18px;
color: #ADD8E6;
opacity: 0.8;
user-select: none;
pointer-events: none;
animation: floatLetters linear infinite;
}
@keyframes floatLetters {
0% { transform: translate(0px, 0px) rotate(0deg); opacity: 0.8; }
25% { transform: translate(5px, -10px) rotate(5deg); opacity: 0.6; }
50% { transform: translate(-10px, 5px) rotate(-5deg); opacity: 0.9; }
75% { transform: translate(8px, -8px) rotate(3deg); opacity: 0.7; }
100% { transform: translate(0px, 0px) rotate(0deg); opacity: 0.8; }
}
</style>
<div id="lettersTitle">Letters Kept</div>
<div id="lettersText">
In the submerged alleys of Gadwal, some letters were not lost. They survived the flood, tucked away in broken drawers, under roof tiles, or in pockets of clothes. Each one carries a fragment of a life, a memory, a confession, a plea, a fleeting joy. As you open them, the voices of the city rise: the child who once played on the pier, the merchant who hid his ledgers, the lover whose words now drift on water. These are the <strong>letters kept</strong> echoes of lives that resist erasure, small beacons of the world that was, waiting for you to read, remember, and revive.
</div>
<script>
// Create floating letters randomly
const letters = ["✉", "✉", "✉", "✉", "✉", "✉", "✉", "✉"];
letters.forEach((l, idx) => {
const span = document.createElement('div');
span.className = 'floating-letter';
span.textContent = l;
span.style.left = Math.random() * window.innerWidth + 'px';
span.style.top = Math.random() * window.innerHeight + 'px';
span.style.animationDuration = (5 + Math.random()*5) + 's';
document.body.appendChild(span);
});
</script>[[Ghosts]]
---------------------------------------------------------------------------------------------
GO BACK TO: [[Revisiting Gadwal- A short history]]#Letters of the Erased
<style>
@keyframes floatFade {
0% { transform: translateY(0px); opacity: 1; }
50% { transform: translateY(-25px); opacity: 0.8; }
100% { transform: translateY(0px); opacity: 1; }
}
.floatingText {
font-family: 'Chiller', cursive;
font-size: 28px;
color: #50C878; /* emerald blue */
line-height: 1.5;
text-align: center;
margin: 50px auto;
width: 80%;
animation: floatFade 5s ease-in-out infinite;
}
</style>
<div class="floatingText">
The letters had begun to fade long before anyone noticed. Their ink, once thick and black, now shimmered faintly like ghosts of words refusing to be remembered. Some were half-erased, dissolving into the paper’s creases as though the sender’s voice was slowly being swallowed by time. Each page carried the texture of rain and the faint smell of rusted hinges, as if the messages themselves were breathing their last.<br><br>
The mailbox stood by the old gate, its rusted red peeling into flakes that drifted away in the wind. It no longer seemed to be rooted to the ground — each evening, when the mist rolled in, the box would rise a few inches, suspended just above the earth. Letters slipped through its mouth and floated within, untethered, like tiny paper boats in an invisible tide.
</div><style>
@keyframes mirrorFlip {
0% { transform: scaleX(1); }
50% { transform: scaleX(-1); }
100% { transform: scaleX(1); }
}
.mirrorImage {
display: block;
margin: 40px auto;
width: 50%;
animation: mirrorFlip 6s linear infinite;
}
</style>
<img src="https://www.dropbox.com/scl/fi/bomqkbwhwqun0q807099q/postman-delivering-letters-unknown-location-ER5A5N.jpg?rlkey=wudneojjqwx22rlp9696p0oq2&st=cwov1ofj&dl=1" alt="Mirror Animation" class="mirrorImage">
[[Floating Mail Box]]
[[Fisherman]]
------------------------------------------------------------------------
GO BACK TO: [[Revisiting Gadwal- A short history]]
#The Child's Journal
Doodles of rooftops, raindrops, and cats asleep on balconies.
[[Read the entry]]
<span style="font-family: 'Chiller', cursive; font-size: 60px; color: #50C878; text-align: center; display: block;">
The Secret Gift
</span>
(font:"Chiller")[It’s written by Ambili, a twelve year old girl, to her mother, who was away working in another city when the flood struck. The letter was never sent the storm arrived before she could deliver it.
Inside the letter, Ambili speaks about a “secret gift” she has been making something she planned to give her mother when she returned.
She never mentions what it is, only that “it would sing even when the world goes silent.”]
[[Open the Tin box]]
[------------------------------------------------------------]<style>
@keyframes pulse {
0% { transform: scale(1); color:#ADD8E6; }
50% { transform: scale(1.2); color:#87CEFA; }
100% { transform: scale(1); color:#ADD8E6; }
}
.animatedTitle {
font-family: 'Times New Roman', serif;
font-size: 60px; /* increased font size */
text-align: center;
animation: pulse 2s infinite;
margin-bottom: 20px;
}
</style>
<div class="animatedTitle">
The Watchman and the Lost Night
</div>
<style>
@keyframes fadeInUp {
0% { opacity: 0; transform: translateY(20px); }
100% { opacity: 1; transform: translateY(0); }
}
.sentence {
font-family: 'Chiller', cursive;
font-size: 28px;
color: #50C878; /* emerald blue */
opacity: 0;
animation: fadeInUp 1s forwards;
margin-bottom: 15px;
}
</style>
<style>
@keyframes fadeInUp {
0% { opacity: 0; transform: translateY(20px); }
100% { opacity: 1; transform: translateY(0); }
}
.sentence {
font-family: 'Chiller', cursive;
font-size: 28px;
color: #FFFF00; /* bright yellow */
opacity: 0;
animation: fadeInUp 1s forwards;
margin-bottom: 15px;
}
</style><div>
<p class="sentence" style="animation-delay: 0s;">The watchman left his post one evening — his daughter Mira was sick, and he could not leave her side. But the floods came swiftly, turning streets into rivers.</p>
<p class="sentence" style="animation-delay: 2s;">He never returned. Some say he drifts along the waters still, lantern in hand, rescuing letters and memories lost to the flood. Others whisper that he has become part of the flood itself, a guardian of promises swept away.</p>
<p class="sentence" style="animation-delay: 4s;">Mira dreams of him sometimes, seeing him in the mist, handing her small notes wrapped in waterproof paper, always ending with:</p>
<p class="sentence" style="animation-delay: 6s;">“Even when I cannot be there, the letters will watch over you.”</p>
<p class="sentence" style="animation-delay: 8s;">The town leaves letters in their mailboxes, hoping the watchman finds them — a silent reminder that even in absence, he still guards the fragile thread between memory and loss.------------------------------------------------------</p>
</div>
<div style="text-align:center; font-family:'Chiller'; font-size:40px; color:#2E8B57; animation: fadein 3s;">
#The Journal
</div>
<style>
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
</style>
<div style="text-align:center; font-family:'Chiller'; font-size:24px;">
This is the story of Pihu. Pihu's cat, Flow, has been the world to her — and now the flood has taken her little world away.
The tides have taken the cat away, and so her version of Gadwal.
<br><br>
Listen to the entire story here.
</div>
<div style="text-align:center;">
<!-- Autoplaying background audio -->
<audio autoplay loop>
<source src="C:\\Users\\arund\\Downloads\\DH 1 AUDIO (online-audio-converter.com).mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<!-- Secondary audio (for manual replay) -->
<audio id="dhAudio" loop>
<source src="C:\\Users\\arund\\Downloads\\DH 1 AUDIO (online-audio-converter.com).mp3" type="audio/mpeg">
</audio>
<!-- Play Button -->
<button style="font-size:18px; font-family:'Chiller'; background-color:#2E8B57; color:white; border:none; padding:10px 20px; border-radius:8px; cursor:pointer;"
onclick="document.getElementById('dhAudio').play()">
🔊 Play Audio
</button>
</div>
<div style="text-align:center;">
<iframe width="560" height="315"
src="https://www.youtube.com/embed/P6euVB5kZXE?autoplay=1"
frameborder="0"
allow="autoplay; encrypted-media"
allowfullscreen>
</iframe>
</div>
<span style="font-family: 'Times New Roman', cursive; color: darkgoldenrod; font-size: 2em;">
The Child's Journal
</span>
(font:"Bradley Hand ITC")[The journal has a very tragic note. The note of Departure. The note of Death]
[[Read the Entry]]<div style="text-align:center; font-family:'Chiller'; font-size:40px; color:#2E8B57; animation: fadein 3s;">
#The Journal
</div>
<style>
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}</style><div style="text-align:center; font-family:'Chiller'; font-size:24px;">
This is the story of Pihu. Pihu's cat, Flow, has been the world to her — and now the flood has taken her little world away.
The tides have taken the cat away, and so her version of Gadwal.
<br><br>Listen to the entire story here.
</div><div style="text-align:center;">
<!-- Autoplaying background audio -->
<audio autoplay loop>
<source src="C:\\Users\\arund\\Downloads\\DH 1 AUDIO (online-audio-converter.com).mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio><!-- Secondary audio (for manual replay) -->
<audio id="dhAudio" loop>
<source src="https://www.dropbox.com/scl/fi/wdws9cb7tw8tzo99dumzk/DH-1-AUDIO-online-audio-converter.com.mp3?rlkey=f52e3yl4wxkhytvtpw06tcqmg&st=3yiq8u6a&dl=1" type="audio/mpeg">
</audio>
<!-- Play Button -->
<button style="font-size:18px; font-family:'Chiller'; background-color:#2E8B57; color:white; border:none; padding:10px 20px; border-radius:8px; cursor:pointer;"
onclick="document.getElementById('dhAudio').play()">
🔊 Play Audio
</button>
</div>
<div style="text-align:center;">
<iframe width="560" height="315"
src="https://www.youtube.com/embed/P6euVB5kZXE?autoplay=1"
frameborder="0"
allow="autoplay; encrypted-media"
allowfullscreen>
</iframe>
</div>
<span style="font-family: 'Chiller', cursive; font-size: 60px; color: #50C878; text-align: center; display: block;">
Inside the Tin Box
</span>
<div style="text-align:center; font-family:'Chiller'; font-size:50px; color:#228B22;
animation: float 3s ease-in-out infinite;">
They find a tiny wooden music box, carved crudely, still intact but waterlogged.
When opened, it plays a distorted, trembling tune — a lullaby once sung across Gadwal’s riverbanks.
</div>
<style>
@keyframes float {
0% { transform: translateY(0px); }
50% { transform: translateY(-15px); }
100% { transform: translateY(0px); }
}
</style>
<audio src="https://www.dropbox.com/scl/fi/0vg03z3fhy4uz6s5g89e5/Chanchadi-Aadi-Urangu-Nee-Lyrics-video-Makalkku-Gayathri.mp3?rlkey=zzbpp4hcqshtworlu009l3mwb&st=rwzc235r&dl=1"controls loop></audio>
[[Read back of the Letter]]
[------------------------------------------------------------]#Back of the Letter
(font:"Bradley Hand ITC")[There’s a sketch of "flow" the cat and Pihu with the words “Flow will guard it until you come back.”]
<img src="https://www.dropbox.com/scl/fi/x018srckd48t351pdh13v/Screenshot-2025-10-18-151012.png?rlkey=7s35u5nx94604ns9k686vv3m7&st=v5wha8da&dl=1"
style="width:50%; animation: griefAnim 3s infinite alternate;">
<style>
@keyframes griefAnim {
0% {transform: translate(0px, 0px) rotate(0deg); opacity: 1;}
25% {transform: translate(-3px, 2px) rotate(-1deg); opacity: 0.9;}
50% {transform: translate(2px, -3px) rotate(1deg); opacity: 0.8;}
75% {transform: translate(-2px, 3px) rotate(-1deg); opacity: 0.9;}
100% {transform: translate(0px, 0px) rotate(0deg); opacity: 1;}
}
</style>
[-------------------------------------------------------------------------------------]<style>tw-story {
background-color: black;color: white;font-family: 'Chiller', cursive;text-align: center;overflow: hidden;
}/* Title styling */
.ghostTitle {font-size: 80px;color: darkred;text-shadow: 0 0 100px #300000, 0 0 40px #4d0000;animation: flicker 3s infinite alternate;margin-top: 50px;
}/* Creepy flicker animation */@keyframes flicker {0%, 18%, 22%, 25%, 53%, 57%, 100% {opacity: 1;text-shadow: 0 0 15px #400000, 0 0 30px #5c0000, 0 0 45px #7a0000;}20%, 24%, 55% {opacity: 0.4;text-shadow: none;}}
/* Round floating ghosts */.ghost {position: fixed;width: 60px;height: 60px;background: rgba(255,255,255,0.7);border-radius: 50%;box-shadow: 0 0 25px rgba(255,255,255,0.9);animation: floaty 4s ease-in-out infinite;
}@keyframes floaty {0%, 100% { transform: translateY(0); }50% { transform: translateY(-20px); }}.eye {position: absolute;width: 8px;height: 8px;background: black;
border-radius: 50%;top: 20px;}.eye.left { left: 18px; }.eye.right { right: 18px; }/* Story links */tw-link {display: block;margin-top: 40px;font-size: 24px;color: #ffffff;text-decoration: none;}tw-link:hover {color: #bbbbbb;text-shadow: 0 0 5px #666;}</style><!-- Title --><div class="ghostTitle">Letters Kept and the Ghosts</div><!-- Ghosts -->
<div class="ghost" id="ghost1">
<div class="eye left"></div>
<div class="eye right"></div>
</div><div class="ghost" id="ghost2">
<div class="eye left"></div>
<div class="eye right"></div>
</div><!-- Floating movement script -->
<script>
(function(){
const ghosts = [{ el: document.getElementById('ghost1'), x: 100, y: 200, vx: 60, vy: 50 },{ el: document.getElementById('ghost2'), x: 400, y: 300, vx: -70, vy: 40 }
];function moveGhosts() {const w = window.innerWidth;const h = window.innerHeight;const dt = 0.016;ghosts.forEach(g => {g.x += g.vx * dt;g.y += g.vy * dt;if (g.x < 0 || g.x > w - 60) g.vx *= -1;if (g.y < 0 || g.y > h - 60) g.vy *= -1;g.el.style.left = g.x + 'px';g.el.style.top = g.y + 'px';});requestAnimationFrame(moveGhosts);}moveGhosts();
})();</script><!-- Story links -->
[[The Watchman’s Lantern]]
[[The Bride Beneath the Banyan]]#If I could express the love I had for Isha...........
(font:"Bradley Hand ITC")[Kabir wrote it down finally.. He has been waiting for a day to relieve his heart, almost popping out. He waited for this day to call him by her name.What is it has he written down in the letter..]<style>
@keyframes fadeMove {
0% {
opacity: 1;
transform: translate(0px, 0px);
}
50% {
opacity: 0;
transform: translate(300px, 150px); /* image moves while fading */
}
100% {
opacity: 1;
transform: translate(0px, 0px); /* back to start */
}
}
.fadingImage {
position: absolute;
width: 200px; /* adjust size */
animation: fadeMove 8s ease-in-out infinite;
}
</style>
<img src="C:\ARUNDHATHI\cmbyn.jpg" class="fadingImage" alt="Fading Image">
<div style="text-align:center;">
<!-- Autoplaying background audio -->
<audio autoplay loop>
<source src="C:\Users\arund\Downloads\videoplayback.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<!-- Secondary audio (for manual replay) -->
<audio id="myAudio" loop>
<source src="C:\Users\arund\Downloads\videoplayback.mp3" type="audio/mpeg">
</audio>
<!-- Play Button -->
<button style="font-size:18px; font-family:'Times New Roman'; background-color:#2E8B57; color:white; border:none; padding:10px 20px; border-radius:8px; cursor:pointer;"
onclick="document.getElementById('myAudio').play()">
🔊 Play Audio
</button>
</div>
#If I could express the love I had for Isha...........
(font:"Bradley Hand ITC")[Kabir wrote it down finally.. He has been waiting for a day to relieve his heart, almost popping out. He waited for this day to call him by her name.What is it has he written down in the letter..]<style>
@keyframes fadeMove {
0% {
opacity: 1;
transform: translate(0px, 0px);
}
50% {
opacity: 0;
transform: translate(300px, 150px); /* image moves while fading */
}
100% {
opacity: 1;
transform: translate(0px, 0px); /* back to start */
}
}
.fadingImage {
position: absolute;
width: 200px; /* adjust size */
animation: fadeMove 8s ease-in-out infinite;
}
</style>
<img src="https://www.dropbox.com/scl/fi/lrzzcsnlpl4ahsng1ub4u/cmbyn.jpg?rlkey=yjhnj8fqqkj5xwkwsy0eaa44b&st=9kk3d6pz&dl=1" class="fadingImage" alt="Fading Image">
<div style="text-align:center;">
<!-- Autoplaying background audio -->
<audio autoplay loop>
<source src="C:\Users\arund\Downloads\videoplayback.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<!-- Secondary audio (for manual replay) -->
<audio id="myAudio" loop>
<source src="https://www.dropbox.com/scl/fi/0q25rnvn8srx50h4nykng/videoplayback.mp3?rlkey=z7aee09ep4svciw8q6h1qqti0&st=57w3f1dq&dl=1" type="audio/mpeg">
</audio>
<!-- Play Button -->
<button style="font-size:18px; font-family:'Times New Roman'; background-color:#2E8B57; color:white; border:none; padding:10px 20px; border-radius:8px; cursor:pointer;"
onclick="document.getElementById('myAudio').play()">
🔊 Play Audio
</button>
</div>
<style>
tw-story {
background: url("https://www.dropbox.com/scl/fi/t295htji59v7mn34m42d8/bride.png?rlkey=vr77ljkrnp7mq81jqytsby6oy&st=gy64viqp&dl=1") no-repeat center center fixed;
background-size: cover;
font-family: "Times New Roman", serif;
padding: 50px;
}.text-container {background-color: rgba(255, 255, 255, 0.95); /* white, slightly transparent */color: #000000; /* black text */padding: 40px;border-radius: 12px;line-height: 1.7;font-size: 50px;max-width: 800px;margin: 50px auto;box-shadow: 0 0 20px rgba(0,0,0,0.3);text-align: justify;
}</style><div class="text-container">
(font:"Chiller")[They said the banyan behind the ruined temple once sheltered a wedding that never reached its end. The flood washed away everyone gathered.
The bride, Nagavalli, dressed in vermilion and jasmine, waited under its shadow — her groom’s palanquin never arrived. At dusk, when the bells stopped and the wind began to hum, her veil turned crimson, not with sindoor, but with blood.
Every new moon, the banyan rustles though there is no wind, and the hanging roots sway like a bridal anklet’s rhythm. Those who pass by after midnight hear soft footfalls and the faint clinking of glass bangles. Some say she still waits, her white sari flowing like mist, eyes hollow yet burning, whispering, “Do you have a promise to keep?”
They say if you answer her, you’ll see her face and never again see the dawn.
Scroll Down!!!!!!]
</div><style>
/* Make Twine link bigger, colored, and animated */
.ghost-link {
font-size: 36px; /* bigger text */
color: #FF69B4; /* bright pink / visible */
font-weight: bold;
text-decoration: underline;
animation: glowPulse 1.5s infinite alternate;
text-align: center;
display: inline-block;
margin: 20px 0;
}/* Pulsing glow animation */
@keyframes glowPulse {
0% { text-shadow: 0 0 5px #FF69B4, 0 0 10px #FFB6C1; }
50% { text-shadow: 0 0 20px #FF69B4, 0 0 40px #FFB6C1; }
100% { text-shadow: 0 0 5px #FF69B4, 0 0 10px #FFB6C1; }
}</style>
<!-- Replace Twine link with span using class -->
<span class="ghost-link">[[To see her face]]</span>
---------------------------------------------------------------------------------------
GO BACK TO : [[Revisiting Gadwal- A short history]]
<style>
/* Body and page styling */
body {background-color: #0a0a0a;color: #FFD700;font-family: "Chiller", cursive;line-height: 1.5em;margin: 0;padding: 30px;overflow-y: auto; /* allow scrolling */}/* Lantern glow title */#lanternTitle {font-family: 'Chiller', cursive;font-size: 50px;color: #FFD700;
text-align: left;text-decoration: underline;animation: lanternGlow 2.5s infinite alternate;
margin-bottom: 20px;}@keyframes lanternGlow {0% { text-shadow: 0 0 5px #FFD700, 0 0 15px #FFB84D; }50% { text-shadow: 0 0 15px #FFD700, 0 0 35px #FFB84D; }100% { text-shadow: 0 0 5px #FFD700, 0 0 15px #FFB84D; }
}/* Typewriter effect */.typewriter {overflow: hidden;border-right: .15em solid #FFD700;white-space: pre-wrap;
animation: typing 5s steps(200, end), blink-caret 0.75s step-end infinite;}@keyframes typing {from { width: 0; }to { width: 100%; }}@keyframes blink-caret {0%, 100% { border-color: transparent; }50% { border-color: #FFD700; }}/* Audio button style */
#playAudio {margin-top: 20px;padding: 10px 20px;font-family: 'Times New Roman', cursive;font-size: 16px;background-color: #222;color: #FFD700;border: 2px solid #FFD700;border-radius: 8px;cursor: pointer;}#playAudio:hover {background-color: #FFD700;color: #222;}/* Fire animation elements */.fire {position: fixed; /* fixed so it stays over the page */font-size: 24px;color: orange;text-shadow: 0 0 5px #ff4500, 0 0 10px #ff6347, 0 0 15px #ffa500;pointer-events: none;user-select: none;animation: flicker 0.3s infinite alternate;z-index: 999;
}@keyframes flicker {
0% { transform: scale(1) rotate(0deg); opacity: 1; }
50% { transform: scale(1.2) rotate(5deg); opacity: 0.8; }
100% { transform: scale(0.9) rotate(-5deg); opacity: 1; }
}</style><!-- Title --><div id="lanternTitle">The Watchman with the Lantern</div><!-- Story --><div class="typewriter">
I am not him. I am the lantern he carried.
I have seen every street of Gadwal, every alley washed by the flood. I have watched him leave his post that evening, hurried by his daughter's cough and the smell of damp earth. The waters rose faster than hearts could beat, swallowing houses, boats, and memories. I remember the weight of his palms, the rhythm of his steps along cracked stones, the quiet prayers whispered to keep the town safe. I remember the letters he rescued from rooftops, clutched like fragile birds. Each one spoke of longing, grief, or joy—the small lives of people who did not survive the tide. Sometimes, I feel his warmth, a pulse in my glass, a reminder that even lost, he is not gone. I float past the empty streets, over the shattered bridges, through the shadows of the banyan trees where no one dares linger. I am the keeper now, and if you see me swaying in the water at midnight, know that I carry stories, promises, and the last light of a watchman who loved his town too much to leave entirely.
</div><!-- Audio --><audio id="floodAudio" loop>
<source src="https://www.dropbox.com/scl/fi/jm561fsu73ye139a3sys4/calming-rain-257596.mp3?rlkey=133mfclbaf47ed8gg98sdru1a&st=36zz6ib5&dl=1" type="audio/mpeg">
Your browser does not support the audio element.
</audio><button id="playAudio" onclick="document.getElementById('floodAudio').play()">▶ Play Flood Sound</button><!-- Fire Elements -->
<div class="fire" id="fire1">🔥</div>
<div class="fire" id="fire2">🔥</div>
<div class="fire" id="fire3">🔥</div>
<div class="fire" id="fire4">🔥</div>
<div class="fire" id="fire5">🔥</div>
<script>
// Fire random movement
const fires = [
{ el: document.getElementById('fire1'), x: 100, y: 100, vx: 60, vy: 50 },
{ el: document.getElementById('fire2'), x: 300, y: 200, vx: -50, vy: 40 },
{ el: document.getElementById('fire3'), x: 500, y: 150, vx: 70, vy: -60 },
{ el: document.getElementById('fire4'), x: 200, y: 400, vx: -40, vy: -50 },
{ el: document.getElementById('fire5'), x: 600, y: 300, vx: 50, vy: 60 }
];
function moveFires() {
const w = window.innerWidth;
const h = window.innerHeight;
const dt = 0.016; // ~60fps
fires.forEach(f => {
f.x += f.vx * dt;
f.y += f.vy * dt;
// bounce off edges
if (f.x < 0 || f.x > w - 24) f.vx *= -1;
if (f.y < 0 || f.y > h - 24) f.vy *= -1;
f.el.style.left = f.x + 'px';
f.el.style.top = f.y + 'px';
});
requestAnimationFrame(moveFires);
}
moveFires();
</script>
<div class="nagavalliTitle">Nagavalli- The Bride</div><style>.nagavalliTitle {font-family: 'Chiller', cursive;font-size: 74px; /* bigger title */color: white;text-align: left; /* left aligned */ /* underlined */margin-top: 40px;margin-left: 20px; /* small padding from left */animation: floatUpDown 4s ease-in-out infinite alternate,glow 3s ease-in-out infinite alternate;text-shadow: 0 0 5px #ffffff, 0 0 10px #cccccc; /* subtle glow */}/* gentle floating motion */
@keyframes floatUpDown {
0% { transform: translateY(0px); }
50% { transform: translateY(-8px); }
100% { transform: translateY(0px); }}/* subtle glow animation */
@keyframes glow {
0% { text-shadow: 0 0 5px #ffffff, 0 0 10px #cccccc; }
50% { text-shadow: 0 0 12px #ffffff, 0 0 25px #dddddd; }
100% { text-shadow: 0 0 5px #ffffff, 0 0 10px #cccccc; }
}
</style>
<audio src="https://www.dropbox.com/scl/fi/tmmh6hxzz3tdzjpc8p0e2/videoplayback-1.mp3?rlkey=d4wu1uepnbmlj5nrjo2kcdruu&st=tujya04f&dl=1" controls></audio>
<img src="https://www.dropbox.com/scl/fi/zs6mwhvbh1ajppy57t1zh/nagavalli.jpeg?rlkey=8dlhp1iy0y1ohxn34yk3rx0ct&st=vuuz6q4u&dl=1" style="width:150%; animation: griefAnim 3s infinite alternate;"><style>@keyframes griefAnim {0% {transform: translate(0px, 0px) rotate(0deg); opacity: 1;}25% {transform: translate(-3px, 2px) rotate(-1deg); opacity: 0.9;}50% {transform: translate(2px, -3px) rotate(1deg); opacity: 0.8;}75% {transform: translate(-2px, 3px) rotate(-1deg); opacity: 0.9;}100% {transform: translate(0px, 0px) rotate(0deg); opacity: 1;}}</style>
<style>
/* Body and page styling */
body {background-color: #0a0a0a;color: #FFD700;font-family: "Chiller", cursive;line-height: 1.5em;margin: 0;padding: 30px;overflow-y: auto; /* allow scrolling */}/* Lantern glow title */#lanternTitle {font-family: 'Chiller', cursive;font-size: 50px;color: #FFD700;
text-align: left;text-decoration: underline;animation: lanternGlow 2.5s infinite alternate;
margin-bottom: 20px;}@keyframes lanternGlow {0% { text-shadow: 0 0 5px #FFD700, 0 0 15px #FFB84D; }50% { text-shadow: 0 0 15px #FFD700, 0 0 35px #FFB84D; }100% { text-shadow: 0 0 5px #FFD700, 0 0 15px #FFB84D; }
}/* Typewriter effect */.typewriter {overflow: hidden;border-right: .15em solid #FFD700;white-space: pre-wrap;
animation: typing 5s steps(200, end), blink-caret 0.75s step-end infinite;}@keyframes typing {from { width: 0; }to { width: 100%; }}@keyframes blink-caret {0%, 100% { border-color: transparent; }50% { border-color: #FFD700; }}/* Audio button style */
#playAudio {margin-top: 20px;padding: 10px 20px;font-family: 'Times New Roman', cursive;font-size: 16px;background-color: #222;color: #FFD700;border: 2px solid #FFD700;border-radius: 8px;cursor: pointer;}#playAudio:hover {background-color: #FFD700;color: #222;}/* Fire animation elements */.fire {position: fixed; /* fixed so it stays over the page */font-size: 24px;color: orange;text-shadow: 0 0 5px #ff4500, 0 0 10px #ff6347, 0 0 15px #ffa500;pointer-events: none;user-select: none;animation: flicker 0.3s infinite alternate;z-index: 999;
}@keyframes flicker {
0% { transform: scale(1) rotate(0deg); opacity: 1; }
50% { transform: scale(1.2) rotate(5deg); opacity: 0.8; }
100% { transform: scale(0.9) rotate(-5deg); opacity: 1; }
}</style><!-- Title --><div id="lanternTitle">The Watchman with the Lantern</div><!-- Story --><div class="typewriter">
I am not him. I am the lantern he carried.
I have seen every street of Gadwal, every alley washed by the flood. I have watched him leave his post that evening, hurried by his daughter's cough and the smell of damp earth. The waters rose faster than hearts could beat, swallowing houses, boats, and memories. I remember the weight of his palms, the rhythm of his steps along cracked stones, the quiet prayers whispered to keep the town safe. I remember the letters he rescued from rooftops, clutched like fragile birds. Each one spoke of longing, grief, or joy—the small lives of people who did not survive the tide. Sometimes, I feel his warmth, a pulse in my glass, a reminder that even lost, he is not gone. I float past the empty streets, over the shattered bridges, through the shadows of the banyan trees where no one dares linger. I am the keeper now, and if you see me swaying in the water at midnight, know that I carry stories, promises, and the last light of a watchman who loved his town too much to leave entirely.
</div><!-- Audio --><audio id="floodAudio" loop>
<source src="C:\Users\arund\Downloads\calming-rain-257596.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio><button id="playAudio" onclick="document.getElementById('floodAudio').play()">▶ Play Flood Sound</button><!-- Fire Elements -->
<div class="fire" id="fire1">🔥</div>
<div class="fire" id="fire2">🔥</div>
<div class="fire" id="fire3">🔥</div>
<div class="fire" id="fire4">🔥</div>
<div class="fire" id="fire5">🔥</div>
<script>
// Fire random movement
const fires = [
{ el: document.getElementById('fire1'), x: 100, y: 100, vx: 60, vy: 50 },
{ el: document.getElementById('fire2'), x: 300, y: 200, vx: -50, vy: 40 },
{ el: document.getElementById('fire3'), x: 500, y: 150, vx: 70, vy: -60 },
{ el: document.getElementById('fire4'), x: 200, y: 400, vx: -40, vy: -50 },
{ el: document.getElementById('fire5'), x: 600, y: 300, vx: 50, vy: 60 }
];
function moveFires() {
const w = window.innerWidth;
const h = window.innerHeight;
const dt = 0.016; // ~60fps
fires.forEach(f => {
f.x += f.vx * dt;
f.y += f.vy * dt;
// bounce off edges
if (f.x < 0 || f.x > w - 24) f.vx *= -1;
if (f.y < 0 || f.y > h - 24) f.vy *= -1;
f.el.style.left = f.x + 'px';
f.el.style.top = f.y + 'px';
});
requestAnimationFrame(moveFires);
}
moveFires();
</script>
#The love decaying.<div style="font-family: 'Times New Roman', serif; color: #90EE90; font-size: 20px; line-height: 1.6; padding: 20px; text-align: justify; overflow-x: hidden;">
<p class="typewriter">
The fisherman rose before dawn, the river mist curling around his small boat. She waited on the shore, humming a tune he had taught her long ago, her hands busy with the nets. Each morning, they shared quiet smiles, the world reduced to the glint of sunlight on water, the laughter between them, and the promise of returning home together. Life was simple, beautiful, and full of the warmth of love that no tide could yet disturb.
Scroll down for a glimpse of Bobby and Vani.
-------------------------------------------------------------------------
</p>
<video controls style="width: 70%; margin-top: 20px;">
<source src="https://www.dropbox.com/scl/fi/phf6wvhe5oocml9ljmeds/Kumbalangi-nights-_-watsapp-status-_-Lovely-scene.mp4?rlkey=lsrrqepe6wsl6n50mksth7jc9&st=jubbhk1h&dl=1">
Your browser does not support the video tag.
</video>
</div><style>
.typewriter {
overflow: hidden; /* ensures text clips */
border-right: .15em solid #90EE90; /* cursor effect */
white-space: pre-wrap; /* allow line breaks */
animation: typing 8s steps(200, end), blink-caret 0.75s step-end infinite;
}
@keyframes typing {
from { width: 0 }
to { width: 100% }
}
@keyframes blink-caret {
0%, 100% { border-color: transparent }
50% { border-color: #90EE90; }
}
</style>
<div class="waveContainer">
<p class="waveTypewriter">
The river rose faster than the fisherman could row. Waves tore at the banks, swallowing huts and nets. She ran to him, calling his name, but the waters swept her away before his eyes. He reached for her hand, felt only the cold current, and knew she was gone. The river held her now, a silent grave of love and loss. All that remained was the echo of her laugh and the memory of mornings they spent together, before the flood claimed everything.
</p>
</div>
<style>
/* Typewriter effect */
.waveTypewriter {
color: white;
font-family: 'Times New Roman', serif;
font-size: 22px;
line-height: 1.6;
overflow: hidden;
border-right: .15em solid white;
white-space: pre-wrap;
animation: typing 12s steps(250, end), blink-caret 0.75s step-end infinite, waveMotion 6s ease-in-out infinite alternate;
position: relative;
display: inline-block;
}
/* Typing animation */
@keyframes typing {
from { width: 0 }
to { width: 100% }
}
/* Caret blink */
@keyframes blink-caret {
0%, 100% { border-color: transparent }
50% { border-color: white; }
}
/* Wave-like horizontal motion */
@keyframes waveMotion {
0% { transform: translateX(0px) translateY(0px); }
25% { transform: translateX(5px) translateY(-3px); }
50% { transform: translateX(-5px) translateY(3px); }
75% { transform: translateX(3px) translateY(-2px); }
100% { transform: translateX(-3px) translateY(2px); }
}.waveContainer {
width: 90%;
margin: 50px auto;
text-align: justify;
}</style>-----------------------------------------------------------------------