🚚 Same Day Delivery Available in Chennai! 🎉
Home
Asuran Tale of the Vanquished - Tamil | Mythology Story Book / Ravanan Story/ By Anand Neelakandan/ Translated by Nagalakshmi Shanmugam
Asuran Tale of the Vanquished - Tamil | Mythology Story Book / Ravanan Story/ By Anand Neelakandan/ Translated by Nagalakshmi Shanmugam
Availability:
Only 4 left!
Original price
Rs. 599.00
-
Original price
Rs. 599.00
Original price
Rs. 599.00
Rs. 599.00
-
Rs. 599.00
Current price
Rs. 599.00
| /
Tags
About the Book: "Asuran – Tale of the Vanquished" (Tamil)
• "Asuran – Tale of the Vanquished" by Anand Neelakandan, translated by Nagalakshmi Shanmugam, is a powerful Mythology Story Book that retells the Ramayana from Ravana’s perspective. This gripping story book presents a fresh and thought-provoking narrative, making it a compelling Hindu Story book and an emotionally rich katha book for readers seeking a different viewpoint.
• This unique Mythology Story Book explores the rise and fall of Ravana, revealing his struggles, ambitions, and humanity beyond traditional portrayals. As an engaging story book, it blends mythology with realism, standing strong as a meaningful Hindu Story book and a deeply reflective katha book.
• Written in expressive Tamil, the book offers a powerful narrative filled with emotion, philosophy, and moral complexity. This remarkable Mythology Story Book challenges conventional perspectives while remaining an immersive story book, a profound Hindu Story book, and an unforgettable katha book for modern readers.
• The narrative explores themes of power, identity, destiny, and the voice of the defeated.
• It presents mythology through a human lens, creating deep emotional connection.
• A compelling and thought-provoking read for lovers of mythology and epic storytelling.
Key Highlights
• A unique Mythology Story Book retelling Ramayana from Ravana’s perspective.
• A gripping and emotionally rich story book with powerful narration.
• A thought-provoking Hindu Story book exploring mythological depth.
• A reflective katha book with philosophical and emotional themes.
• Strong characters, intense storytelling, and fresh perspective.
• Ideal for readers who enjoy mythology with modern interpretation.
Added to your cart:
** total_quantity ** | ** unit_price ** / ** unit_measure **
(function () {
function blockQeTextInstant() {
const styleId = 'qetext-kill-style';
if (!document.getElementById(styleId)) {
const style = document.createElement('style');
style.id = styleId;
style.innerHTML = `
#qetext{
display:none !important;
visibility:hidden !important;
opacity:0 !important;
pointer-events:none !important;
position:absolute !important;
left:-9999px !important;
top:-9999px !important;
z-index:-9999 !important;
}
.audio-btn-row button {
transition: opacity 0.2s ease;
}
/* State: Stopped - Only Play allowed */
.audio-btn-row.st-stopped #pause,
.audio-btn-row.st-stopped #stop,
.audio-btn-row.st-stopped #resume,
/* State: Playing - Only Pause and Stop allowed */
.audio-btn-row.st-playing #play,
.audio-btn-row.st-playing #resume,
/* State: Paused - Only Resume allowed */
.audio-btn-row.st-paused #play,
.audio-btn-row.st-paused #pause,
.audio-btn-row.st-paused #stop {
opacity: 0.3 !important;
filter: grayscale(1);
cursor: not-allowed !important;
pointer-events: none !important;
}
`;
document.head.appendChild(style);
}
if (!window.qeObserver) {
window.qeObserver = new MutationObserver(() => {
const qe = document.querySelector('#qetext');
if (qe) {
qe.style.setProperty('display', 'none', 'important');
qe.style.visibility = "hidden";
qe.style.opacity = "0";
}
});
window.qeObserver.observe(document.body, {
childList: true,
subtree: true
});
}
}
function applyFix() {
if (!document.body.classList.contains('template-product')) return;
const container = document.querySelector('.buttons');
const target = document.querySelector('.product-main .product-details .single-product-meta');
if (!container || !target) return;
blockQeTextInstant();
const hide = container.querySelector('.hide_text');
const show = container.querySelector('.showtext');
if (hide) hide.remove();
if (show) show.remove();
if (target.nextElementSibling !== container) {
target.parentNode.insertBefore(container, target.nextSibling);
}
container.style.cssText = `
display:flex !important;
flex-direction:column !important;
align-items:flex-start !important;
gap:8px !important;
margin-top:12px !important;
padding:10px 14px !important;
background:#2e7d32 !important;
border-radius:6px !important;
width:fit-content !important;
`;
if (!container.querySelector('.audio-instruction')) {
const text = document.createElement('div');
text.className = "audio-instruction";
text.textContent = "Please click to listen to the audio of the description.";
text.style.cssText = `
color:#fff;
font-size:14px;
font-weight:500;
`;
container.prepend(text);
}
let btnWrapper = container.querySelector('.audio-btn-row');
if (!btnWrapper) {
btnWrapper = document.createElement('div');
btnWrapper.className = "audio-btn-row st-stopped";
btnWrapper.style.cssText = `
display:flex;
align-items:center;
gap:10px;
`;
container.querySelectorAll('button').forEach(btn => {
btn.style.cssText = `
display:flex;
align-items:center;
justify-content:center;
background:transparent;
border:none;
cursor:pointer;
padding:5px;
color:#fff;
`;
btnWrapper.appendChild(btn);
});
container.appendChild(btnWrapper);
}
container.querySelectorAll('svg').forEach(svg => {
svg.style.width = "16px";
svg.style.height = "16px";
});
const close = container.querySelector('.close_sbutton');
if (close && !close.dataset.done) {
close.onclick = () => container.style.display = "none";
close.dataset.done = "1";
}
// --- Button State Management ---
const play = document.getElementById('play');
const pause = document.getElementById('pause');
const stop = document.getElementById('stop');
const resume = document.getElementById('resume');
if (play && pause && stop && resume && btnWrapper) {
const setPlaying = () => {
btnWrapper.classList.remove('st-stopped', 'st-paused');
btnWrapper.classList.add('st-playing');
};
const setPaused = () => {
btnWrapper.classList.remove('st-stopped', 'st-playing');
btnWrapper.classList.add('st-paused');
};
const setStopped = () => {
btnWrapper.classList.remove('st-playing', 'st-paused');
btnWrapper.classList.add('st-stopped');
};
if (!play.dataset.listenersDone) {
// We change classes synchronously to avoid flicker
play.addEventListener('click', setPlaying);
resume.addEventListener('click', setPlaying);
pause.addEventListener('click', setPaused);
stop.addEventListener('click', setStopped);
// Interval to detect when audio ends naturally
// Original script calls handleEnd() which enables Play.
// We should sync our class when that happens.
setInterval(() => {
if (!play.disabled && btnWrapper.classList.contains('st-playing')) {
setStopped();
}
}, 1000);
play.dataset.listenersDone = "1";
}
}
}
let count = 0;
const interval = setInterval(() => {
applyFix();
if (++count > 40) clearInterval(interval);
}, 250);
const observer = new MutationObserver(() => applyFix());
observer.observe(document.body, {
childList: true,
subtree: true
});
})();
.template-index #start_button,
.template-collection #start_button,
.template-product #start_button,
body.template-index .buttons {
display: none !important;
}
.template-collection .buttons,
.template-product .buttons {
display: none !important;
}