As the day waned, the students honed their magical prowess until their mana reserves dwindled. "That's sufficient for today," declared Instructor Zenith. "Tomorrow, we'll delve into spearmanship and swordsmanship as well."
With those words, the students dispersed, heading towards their dormitories amidst laughter and conversation.
Aoto and Scarlett began their trek back to their dorm room, the day's magical exercises still fresh in their minds.
"Using magic is remarkably easy. I even mastered shaping magical constructs," Scarlett boasted as she manipulated her mana to form a fiery horse, a ring of flames, and arrows in his hands.
Impressed by Scarlett's control, Aoto remarked, "You've certainly learned a lot. Are you sure you don't have a talent for any specific element?"
As they strolled, someone approached them, interrupting their path.
"You're quite talented, Nova-san," Chiyoko Hiiro exclaimed as he joined their conversation. "Were you shaping mana? I can do that too."
Chiyoko then mimicked Scarlett's actions, conjuring a fire horse, a circle of flames, and arrows in his hands in the same sequence.
"Isn't it amazing?" Chiyoko's voice brimmed with excitement.
Observing Chiyoko replicate his magic, Scarlett remained indifferent, thinking, 'He created the fire horse first, followed by the circle and arrows, just like I did. Well, I don't care what he's up to.' ᴛʜɪs ᴄʜᴀᴘᴛᴇʀ ɪs ᴜᴘᴅᴀᴛᴇ ʙʏ novel•fire.net
"Haha... yeah, quite impressive, but we have some tasks to attend to. We should get going," Scarlett's responded, cutting their conversation short.
"If you say so, it must be important," Chiyoko's voice took on a tinge of disappointment as they departed.
While strolling, a thought struck Aoto's mind.
"Hey, Asta, that Chiyoko guy, isn't he a bit odd?" Aoto inquired.
"Yeah, I noticed too. He has a peculiar aura about him," Scarlett replied.
"Peculiar? Is he someone to be wary of?" Aoto asked, concern flickering in his eyes.
"Haha... no way. I think he's just a hardcore otaku, you know, the type who believes they're the protagonist of some anime or manga," Scarlett chuckled.
"Well, he does fit the bill of a typical protagonist. If he really is a hero, then I guess we'll have to play the role of villains," Aoto joked.
"Haha... enough with the jests, Aoto. Let's keep moving," Scarlett said, dismissing the topic as they continued on their way.
As Scarlett and Aoto made their way from the academy's grounds back to the main building, Chiyoko lingered nearby, silently observing their departure.
"It didn't work again," Chiyoko muttered with frustration, his anger palpable
"My name is Chiyoko hiiro, I am 18 year old. In my previous life, I had Agoraphobia becase in my school everyone bullies me because I was fat and nerd looking.
When I entered high school, I thought I can finally escape but high school was also no different.Even if I accidentally glanced at girls of my class, they starts thinking that I am an pervert and after that their boyfriends started beating me for no reason.
After enduring the years of bullying, I locked myself in my room for 2 years, just eating, sleeping, playing games and reading manga everyday. One day I decided to suicide but I couldn't do it because I was afraid of dying.
Consumed by guilt for squandering my parents' money on frivolous pursuits instead of education, I resolved to conquer my agoraphobia.
I took a deep breath, opend door in rush and run out of my apartment and rushed toward stairs but because of my heavy weight my balanced breaked and I fell down the stairs and I died."
As I felt the grip of death tightening around me, a profound realization dawned: the world's cruelty towards the vulnerable weighed heavily on my departing consciousness. In that fleeting moment, I yearned for a chance to reshape its harsh reality, to demonstrate my capabilities.
Just when I thought my journey had ended, my eyes fluttered open to an ethereal expanse, surrounded by billowing clouds that whispered of heavenly realms. Before me, a magnificent throne materialized, upon which sat a figure of unparalleled beauty.
An extremely beautiful women golden hair and eyes, wearing white and golden colour bastet ( bastet is an Egyptian clothe that umm thier cat goddess wears I think) revealing her thighs and chainlet on her hair with crystals and multiple gold rings and bracelets on her hands.
Flushed with embarrassment, I found myself utterly entranced by her exquisite presence as she began to speak.
"Oo!, you poor soul, burdened with such suffering in your mortal life," she lamented softly. "Your departure weighed heavily on my heart, That's why I, the goddess of love,offers you a second chance."
With bated breath, I listened as she unveiled my newfound destiny. "I shall send you to a realm of swords and sorcery, where your task shall be to rise as a hero and vanquish the dreaded Demon King.
"Are you ready for this divine journey?"
'The world of sword and magic? Means a fantasy world, It was my dream to become a protagonist.'
"O-of course,I am ready." I stammered, my voice trembling with anticipation.
She regarded me thoughtfully before commencing a mystical incantation, conjuring forth a magical circle beneath my feet. In an instant, I found myself whisked away from the ethereal realm, emerging amidst the grandeur of the royal capital of Almeida.
After summoned, I saw that goddess turned my body into my prime condition, I became a handsome and manly teenager, Then I met the king of Almeida and he said that kingdom of Darwitz also summoning a hero and this will take at leat a week and after that I have to attend the academy with the other hero.
After finding out about other hero, I was disappointed because I thought I'm the only hero who can save this world. It's like someone is stealing my role to become protagonist.
But when the king said that there's status window thing in this world and said me to check my status.And after checking my status, there was no doubt that I am the protagonist of this world.
Hero</p><p><Level>1</p><p><Strength> 35. <Endurance> 30</p><p><Agility>. 50. <Luck> 70</p><p><Intelligence> 40. <MP> 500</p><p><Skills> unique skill :???</p><p> Rare skill : Appraisal</p><p> Rare skill : Attraction </p><p>I got the 3 skills, and all three of them are the deadliest abilities that always every anime or manga protagonist receives.</p><p>First was my favourite unique skill : ##¢*#*#, Second one was appraisal that allows me to check others status, and the last one attraction.</p><p> After 4 days I found out that Attraction skills attracts opposite gender. Just by greeting someone, they becomes interested in me and starts flirting with me.But this ability have an weakness that I have to continue communicating with them everyday or else they starts to become less interested in me.</p><p>I think this ability the goddess gave me to build a harem of girls, but that's not enough it's been 6 days in this world but I haven't seen anyone as beautiful as goddess of love.</p><p>Determined to forge not only a harem of maidens but also to ensnare the goddess of love herself, I resolved to embark on this daring endeavor. With my decision firmly made, I set foot in the esteemed halls of the Hero Academy.</p><p>As I entered the academy grounds, I found myself surrounded by a bevy of breathtaking beauties, each vying for my attention. Engaged in the delightful task of selecting potential members for my harem, my gaze fell upon the entrance ceremony, where the radiant Princess of Darwitz, Ingrassia-san, stood out like a divine being amongst mortals. Without hesitation, I resolved to make her a cherished addition to my growing collection.</p><p>In the leisure of my dormitory, I pondered the day's events, only to overhear murmurs of a duel between Elminia Houseburge and the Hero of Darwitz. Eager to catch a glimpse of this esteemed hero, and perhaps to assess a potential rival, I made my way to the site of the duel.</p><p>Much to my surprise, amidst the clash of blades, I beheld a vision of unparalleled beauty—Scarlett Nova, the slave of the esteemed hero, Aoto Takahashi. Her allure surpassed even that of the goddess of love herself, leaving me captivated by her ethereal presence.</p><p>Everyone said that Nova-san is a succubus who can't stop herself from sleeping everyday with any men, but only I knew the one thing about Nova-san that others don't know about.</p><p>Despite attempting to employ my powerful Appraisal skill on Nova-san, its efficacy faltered in her presence, thwarted by her overwhelming strength. Yet, amidst this struggle, I gleaned a crucial revelation: Nova-san, despite her succubus nature, remained untouched—a virgin</p><p><Appraisal activated></p><p><Name> Scarlett Nova</p><p><Skills>???</p><p><Strength, agility...>???</p><p><Body state> Virgin</p><p>Upon seeing that Nova-san is virgin despite being a succubus, I knew that she is my main heroine in the story and I went to their dorm room and talked to her many times but I don't know why skill doesn't working on her.</p><p>I tried to use my skill on ingrassia too but she has a magical bracelet that protects her from this kind of skills, Yet, bafflingly, my attempts to use my skill on Nova-san proved futile. Despite her lack of protective artifacts like Ingrassia's magical bracelet, my abilities faltered in her presence. </p><p>"Just why, Why the fuck my skill don't work on her?"</p><p>As Aoto and Scarlett neared their dorm room, their conversation was interrupted by a sudden collision</p><p>A tall girl with pale skin and short dark blue hair which was covering her right eye. Her sky blue eyes with long eyelashes. </p><p>"Oops... I accidentally pushed you," Scarlett exclaimed, clearly flustered.</p><p>"Huh?... Introvert-chan,what are doing here."</p><p>" I-i-i-i w-was just p-passing by." responded with a mix of surprise and anxiety.</p><p>"You are still panicking while talking to me." Scarlett said trying to comfort her.</p><p>Meanwhile, Scarlett's face flushed slightly as she introduced the girl to Aoto. "Aoto, meet my new friend Irish Heartfilia."</p><p>Aoto offered a friendly greeting, "Yo! I'm Aoto Takahashi, nice to meet you."</p><p>After exchanging pleasantries and engaging in some small talk, they bid farewell to Irish, and their conversation continued as they made their way to their dorm room.</p><p>"Aoto, have you decided to become a good person?" Scarlett teased.</p><p>Aoto chuckled. "Nope! Why do you ask?"</p><p>"You met that girl and didn't even try to flirt with her," Scarlett pointed out.</p><p>Laughing, Aoto replied, "What kind of best friend flirts with his friend's girlfriend?"</p><p>"Girlfriend? Who's girlfriend?" Asta's cheeks turned red as he shifted uncomfortably.</p><p>"Don't even try lying to me. I saw your face when you introduced her to me. Your expression clearly said that you like her, and I think she's also a little interested in you," Aoto observed, Scarlett's cheeks flushed slightly as she instructed her to aoto and it was enough for aoto to understood.</p><p>Scarlett sighed. "You got me. But I don't think she likes me in a romantic way."</p><p>"You're just imagining things. All you have to do is give her a little push, and she'll be yours," Aoto reassured him.</p><p>As they entered the dorm room, Scarlett a asked eagerly, "What kind of push, Aoto?"</p><p>Aoto smirked. "Ara... Ara, aren't you being too hasty? I've taught you a 1000 techniques to satisfy a woman in bed, but I haven't taught you how to get a girlfriend."</p><p>"Then I'll start a 12-hour lesson on how to make girls fall in love with you," Aoto declared playfully.</p>
</article>
<nav class="chapter-nav">
<div class="keyboard-hint" x-show="showKeyboardHint" x-transition.opacity>
<svg class="hint-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/>
</svg>
<span class="hint-text">
Use <span class="kbd">←</span> and <span class="kbd">→</span> arrow keys to navigate between chapters
</span>
<button @click="dismissKeyboardHint()" class="dismiss-hint" title="Close">×</button>
</div>
<div class="nav-row">
<a href="https://novelhub.net/novel/that-time-i-got-turned-into-a-dragonoid/chapter-18" class="nav-link">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/>
</svg>
<div class="text">
<div class="label">Previous</div>
<div class="title">Chapter 18</div>
</div>
</a>
<a href="https://novelhub.net/novel/that-time-i-got-turned-into-a-dragonoid/chapter-20" class="nav-link next">
<div class="text">
<div class="label">Next</div>
<div class="title">Chapter 20</div>
</div>
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
</svg>
</a>
</div>
<a href="https://novelhub.net/novel/that-time-i-got-turned-into-a-dragonoid" class="novel-link">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 19l-7-7m0 0l7-7m-7 7h18"/>
</svg>
Back to That Time I Got Turned In...
</a>
</nav>
<section class="comments-section">
<div x-data="commentSystem(4769, 2646159, [], 'false')">
<h2 class="py-2 mb-4 text-lg font-bold text-blue-600 dark:text-blue-400">Comments</h2>
<div class="mb-6">
<div class="p-4 text-center text-gray-500 dark:text-dark-600 bg-gray-50 dark:bg-dark-50 rounded-lg border border-gray-200 dark:border-dark-300">
<svg class="mx-auto mb-3 w-12 h-12 text-gray-300 dark:text-dark-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path>
</svg>
<p class="mb-3 text-sm dark:text-dark-700">Join the discussion! Login to share your thoughts and connect with other readers.</p>
<div class="flex gap-3 justify-center">
<button @click="$dispatch('open-modal', { type: 'auth', mode: 'login' })" class="px-4 py-2 text-sm font-medium text-white bg-blue-600 rounded-md transition-colors hover:bg-blue-700">
Login
</button>
<button @click="$dispatch('open-modal', { type: 'auth', mode: 'register' })" class="px-4 py-2 text-sm font-medium text-gray-700 dark:text-dark-800 bg-gray-200 dark:bg-dark-200 rounded-md transition-colors hover:bg-gray-300 dark:hover:bg-dark-300">
Register
</button>
</div>
</div>
</div>
<div id="comments-list" class="space-y-4" x-show="replyingTo === null && !hasInteractions">
<div class="p-6 text-center text-gray-500 dark:text-dark-600 bg-white dark:bg-dark-50 rounded-lg border border-gray-200 dark:border-dark-300">
<svg class="mx-auto mb-3 w-12 h-12 text-gray-300 dark:text-dark-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path>
</svg>
<p class="text-sm dark:text-dark-700">No comments yet. Be the first to comment!</p>
</div>
</div>
<div x-show="hasInteractions" x-cloak class="space-y-4">
<template x-for="comment in comments" :key="comment.id">
<div :data-comment-id="comment.id" class="p-2 bg-white dark:bg-dark-50 rounded-lg border border-gray-200 dark:border-dark-300 transition-all duration-200">
<div class="flex gap-3">
<div class="flex-shrink-0">
<div class="inline-block relative">
<img :src="comment.user.avatar && comment.user.avatar !== 'images/default-avatar.svg' ? `/storage/${comment.user.avatar}` : '/images/default-avatar.svg'"
alt=""
class="object-cover w-12 h-12 rounded-full"
loading="lazy">
</div>
</div>
<div class="flex-1">
<div class="flex justify-between items-center mb-2">
<div class="flex gap-2 items-center">
<span class="font-semibold text-gray-800 dark:text-dark-900" x-text="comment.user.name"></span>
<span class="username-level-badge"
:class="`lv_${comment.user.level || 1}`">
<span x-text="`Lv${comment.user.level || 1}`"></span>
</span>
<template x-if="comment.chapter_id">
<span class="inline-flex items-center px-2 py-1 text-xs font-medium text-blue-700 dark:text-blue-300 bg-blue-100 dark:bg-blue-900/30 rounded-full">
Chapter <span x-text="comment.chapter_number"></span>
</span>
</template>
</div>
<span class="text-xs text-gray-500 dark:text-dark-600" x-text="formatDate(comment.created_at)"></span>
</div>
<div class="leading-relaxed text-gray-700 dark:text-dark-800" x-html="parseCommentBody(comment.content)"></div>
<div class="flex gap-4 items-center mt-3 text-xs text-gray-600 dark:text-dark-600">
<button x-on:click="toggleLike(comment.id)"
class="flex gap-1 items-center px-2 py-1 rounded transition-colors duration-200 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/30">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path d="M7.493 18.75c-.425 0-.82-.236-.975-.632A7.48 7.48 0 016 15.375c0-1.75.599-3.358 1.602-4.634.151-.192.373-.309.6-.397.473-.183.89-.514 1.212-.924a9.042 9.042 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75 2.25 2.25 0 012.25 2.25c0 1.152-.26 2.243-.723 3.218-.266.558-.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H14.23c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23h-.777zM2.331 10.977a11.969 11.969 0 00-.831 4.398 12 12 0 00.52 3.507c.26.85 1.084 1.368 1.973 1.368H4.9c.445 0 .72-.498.523-.898a8.963 8.963 0 01-.924-3.977c0-1.708.476-3.305 1.302-4.666.245-.403-.028-.959-.5-.959H4.25c-.832 0-1.612.453-1.918 1.227z" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/>
</svg>
<span x-text="comment.likes_count > 0 ? comment.likes_count : ''"></span>
</button>
<button x-on:click="toggleReply(comment.id)"
class="flex gap-1 items-center px-2 py-1 rounded transition-colors duration-200 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/30">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path d="M4.5 12L9.5 17M4.5 12L9.5 7M4.5 12L14.5 12C16.1667 12 19.5 11 19.5 7" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/>
</svg>
<span>Reply</span>
</button>
</div>
</div>
</div>
<div x-show="replyingTo === comment.id" x-transition class="mt-4 ml-0 md:ml-4">
<div :id="`replyPlaceholder${comment.id}`" class="reply-placeholder"></div>
</div>
<div x-show="comment.replies && comment.replies.length > 0" class="mt-4 ml-4 space-y-4">
<template x-for="reply in comment.replies" :key="reply.id">
<div class="flex gap-3">
<div class="flex-shrink-0">
<div class="inline-block relative">
<img :src="reply.user.avatar && reply.user.avatar !== 'images/default-avatar.svg' ? `/storage/${reply.user.avatar}` : '/images/default-avatar.svg'"
alt=""
class="object-cover w-8 h-8 rounded-full"
loading="lazy">
</div>
</div>
<div class="flex-1">
<div class="flex justify-between items-center mb-2">
<div class="flex gap-2 items-center">
<span class="font-semibold text-gray-800 dark:text-dark-900" x-text="reply.user.name"></span>
<span class="username-level-badge"
:class="`lv_${reply.user.level || 1}`">
<span x-text="`Lv${reply.user.level || 1}`"></span>
</span>
</div>
<span class="text-xs text-gray-500 dark:text-dark-600" x-text="formatDate(reply.created_at)"></span>
</div>
<div class="leading-relaxed text-gray-700 dark:text-dark-800" x-html="parseCommentBody(reply.content)"></div>
<div class="flex gap-4 items-center mt-3 text-xs text-gray-600 dark:text-dark-600">
<button x-on:click="toggleLike(reply.id)"
class="flex gap-1 items-center px-2 py-1 rounded transition-colors duration-200 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/30">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path d="M7.493 18.75c-.425 0-.82-.236-.975-.632A7.48 7.48 0 016 15.375c0-1.75.599-3.358 1.602-4.634.151-.192.373-.309.6-.397.473-.183.89-.514 1.212-.924a9.042 9.042 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75 2.25 2.25 0 012.25 2.25c0 1.152-.26 2.243-.723 3.218-.266.558-.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H14.23c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23h-.777zM2.331 10.977a11.969 11.969 0 00-.831 4.398 12 12 0 00.52 3.507c.26.85 1.084 1.368 1.973 1.368H4.9c.445 0 .72-.498.523-.898a8.963 8.963 0 01-.924-3.977c0-1.708.476-3.305 1.302-4.666.245-.403-.028-.959-.5-.959H4.25c-.832 0-1.612.453-1.918 1.227z" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/>
</svg>
<span x-text="reply.likes_count > 0 ? reply.likes_count : ''"></span>
</button>
<button x-on:click="toggleReply(reply.id)"
class="flex gap-1 items-center px-2 py-1 rounded transition-colors duration-200 hover:text-blue-600 dark:hover:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/30">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path d="M4.5 12L9.5 17M4.5 12L9.5 7M4.5 12L14.5 12C16.1667 12 19.5 11 19.5 7" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/>
</svg>
<span>Reply</span>
</button>
</div>
<div x-show="replyingTo === reply.id" x-transition class="mt-4 -ml-4 md:ml-0">
<div :id="`replyPlaceholder${reply.id}`" class="reply-placeholder"></div>
</div>
</div>
</div>
</template>
</div>
</div>
</template>
</div>
<div x-show="hasMorePages" x-cloak class="mt-6 text-center">
<button x-on:click="loadMoreComments" :disabled="loadingMore"
class="px-6 py-3 text-sm font-medium text-white bg-gray-600 rounded-lg transition-colors duration-200 hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed">
<span x-show="!loadingMore">Load More Comments</span>
<span x-show="loadingMore" class="flex justify-center items-center">
<svg class="mr-2 w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24">
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
</svg>
Loading...
</span>
</button>
</div>
<div id="mobileReplyForm" x-show="replyingTo !== null" x-cloak class="hidden">
<form x-on:submit.prevent="postReply()" class="ml-0 space-y-4 md:ml-0">
<div class="bg-white dark:bg-dark-50 rounded-lg border border-gray-200 dark:border-dark-300 focus-within:ring-2 focus-within:ring-blue-500 focus-within:border-blue-500">
<div class="px-2 py-2 border-b border-gray-200 dark:border-dark-300">
<div class="flex justify-end items-center mb-1">
<button type="button" x-on:click="activeReplyStickerSet = null" x-show="activeReplyStickerSet"
class="text-xs text-gray-500 dark:text-dark-600 hover:text-gray-700 dark:hover:text-dark-800">
Close
</button>
</div>
<nav class="flex overflow-x-auto pb-1 space-x-3" aria-label="Reply Sticker Sets">
<template x-for="(set, setName) in stickerSets" :key="setName">
<button type="button"
x-on:click="activeReplyStickerSet = (activeReplyStickerSet === setName ? null : setName)"
:class="activeReplyStickerSet === setName ? 'ring-2 ring-blue-500 bg-blue-50 dark:bg-blue-900/30' : 'hover:bg-gray-200 dark:hover:bg-dark-200'"
class="flex-shrink-0 p-2 rounded-md transition-all duration-200 focus:outline-none">
<img :src="getRepresentative(setName)" :alt="set.name"
class="object-contain w-8 h-8" :title="set.name">
</button>
</template>
</nav>
<div x-show="activeReplyStickerSet" x-transition class="pt-2 mt-2 border-t border-gray-200 dark:border-dark-300">
<div class="grid overflow-y-auto grid-cols-6 gap-3 max-h-48 md:grid-cols-8 lg:grid-cols-10">
<template x-for="file in stickerSets[activeReplyStickerSet]?.files || []" :key="file">
<button type="button"
x-on:click="insertReplySticker(activeReplyStickerSet, file, replyingTo)"
class="p-2 rounded-md transition-transform sticker-button hover:bg-gray-200 dark:hover:bg-dark-200 focus:outline-none focus:ring-2 focus:ring-blue-500">
<img :src="stickerSets[activeReplyStickerSet].path + file"
:alt="file" class="object-contain w-12 h-12 md:w-16 md:h-16">
</button>
</template>
</div>
</div>
</div>
<div class="relative px-2 py-2">
<input type="hidden" name="reply_content" x-model="newReply">
<div id="mobileReplyEditor"
x-on:input="syncMobileReplyEditorState()"
contenteditable="true"
role="textbox"
class="block p-3 pr-20 w-full border-0 resize-none reply-editor focus:ring-0"
style="word-break: break-word; min-height: 60px;"
data-placeholder="Write your reply...">
</div>
<div class="absolute right-2 bottom-2">
<button type="submit" :disabled="loading"
class="inline-flex items-center px-3 py-1.5 text-sm font-medium text-white bg-blue-600 rounded-md border border-transparent shadow-sm transition-all duration-200 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:cursor-not-allowed">
<svg x-show="!loading" class="mr-1 w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path d="M4.5 12L9.5 17M4.5 12L9.5 7M4.5 12L14.5 12C16.1667 12 19.5 11 19.5 7" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/>
</svg>
<svg x-show="loading" class="mr-1 w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24">
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
</svg>
<span x-text="loading ? 'Replying...' : 'Reply'"></span>
</button>
</div>
</div>
</div>
</form>
</div>
</div>
</section>
</main>
<div class="side-panel" @click.stop>
<button class="side-btn" :class="{ 'active': showSettings }" @click="toggleSettings()" title="Settings">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"/>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/>
</svg>
</button>
<a href="https://novelhub.net/novel/that-time-i-got-turned-into-a-dragonoid/chapters" class="side-btn" title="Chapters">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h16M4 18h16"/>
</svg>
</a>
<button class="side-btn" @click="$dispatch('open-report')" title="Report">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
</svg>
</button>
</div>
<div class="swipe-hint" :class="{ 'show': showHint }">↑ Swipe up for menu</div>
<nav class="mobile-bar" :class="{ 'show': toolbarVisible }" @click.stop>
<div class="mobile-bar-inner">
<a href="https://novelhub.net/novel/that-time-i-got-turned-into-a-dragonoid/chapter-18" class="mobile-btn">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/></svg>
<span>Prev</span>
</a>
<a href="https://novelhub.net/novel/that-time-i-got-turned-into-a-dragonoid/chapters" class="mobile-btn">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h16M4 18h16"/></svg>
<span>List</span>
</a>
<button class="mobile-btn" :class="{ 'active': showSettings }" @click="toggleSettings()">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"/><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/></svg>
<span>Settings</span>
</button>
<a href="https://novelhub.net/novel/that-time-i-got-turned-into-a-dragonoid/chapter-20" class="mobile-btn">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg>
<span>Next</span>
</a>
</div>
</nav>
<div class="overlay" :class="{ 'show': showSettings }" @click="closeAll()"></div>
<div class="settings" :class="{ 'show': showSettings }" @click.stop>
<div class="settings-header">
<span class="settings-title">Reading Settings</span>
<button class="settings-close" @click="closeAll()">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/></svg>
</button>
</div>
<div class="settings-body">
<div class="theme-row">
<button class="theme-box white" :class="{ 'active': theme === 'auto' }" @click="setTheme('auto')"></button>
<button class="theme-box gray" :class="{ 'active': theme === 'gray' }" @click="setTheme('gray')"></button>
<button class="theme-box cream" :class="{ 'active': theme === 'sepia' }" @click="setTheme('sepia')"></button>
<button class="theme-box pink" :class="{ 'active': theme === 'pink' }" @click="setTheme('pink')"></button>
<button class="theme-box green" :class="{ 'active': theme === 'green' }" @click="setTheme('green')"></button>
<button class="theme-box dark" :class="{ 'active': theme === 'dark' }" @click="setTheme('dark')">
<svg fill="currentColor" viewBox="0 0 24 24"><path d="M21.752 15.002A9.718 9.718 0 0118 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 003 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 009.002-5.998z"/></svg>
</button>
</div>
<div class="control-row">
<button class="control-btn" @click="decreaseFontSize()" :disabled="fontSize <= 14">-</button>
<span class="control-value" x-text="fontSize + 'px'"></span>
<button class="control-btn" @click="increaseFontSize()" :disabled="fontSize >= 28">+</button>
<span class="control-divider"></span>
<button class="control-btn" @click="decreaseLineHeight()" :disabled="lineHeight <= 1.4">-</button>
<span class="control-value" x-text="lineHeight.toFixed(1) + 'x'"></span>
<button class="control-btn" @click="increaseLineHeight()" :disabled="lineHeight >= 2.4">+</button>
</div>
<div class="settings-actions">
<button class="report-btn" @click="$dispatch('open-report'); closeAll();">
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/></svg>
Report Issue
</button>
</div>
</div>
</div>
</div>
<div x-data="{ show: false }" @open-report.window="show = true" @close-report.window="show = false" x-show="show" x-cloak class="modal">
<div class="modal-bg" @click="show = false"></div>
<div class="modal-box" @click.stop x-show="show" x-transition>
<div class="modal-head">
<h3>Report Issue</h3>
<button class="modal-close" @click="show = false">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/></svg>
</button>
</div>
<div class="modal-body">
<form action="https://novelhub.net/novel/that-time-i-got-turned-into-a-dragonoid/chapter-19/report" method="POST" x-data="reportForm()" @submit.prevent="submit($event)">
<input type="hidden" name="chapter_id" value="2646159">
<input type="hidden" name="novel_id" value="4769">
<div x-show="success" class="mb-4 p-3 bg-green-100 text-green-700 rounded-lg text-sm">Report submitted!</div>
<div x-show="error" x-text="error" class="mb-4 p-3 bg-red-100 text-red-700 rounded-lg text-sm"></div>
<div class="mb-4" x-show="!success">
<label class="block text-sm font-medium mb-2">Issue Type</label>
<select name="report_type" required class="w-full px-4 py-3 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800">
<option value="">Select...</option>
<option value="missing_content">Missing Content</option>
<option value="wrong_chapter">Wrong Chapter</option>
<option value="formatting_issue">Formatting Issue</option>
<option value="duplicate_content">Duplicate Content</option>
<option value="other">Other</option>
</select>
</div>
<div class="mb-4" x-show="!success">
<label class="block text-sm font-medium mb-2">Description</label>
<textarea name="description" required rows="3" maxlength="500" placeholder="Describe the issue..." class="w-full px-4 py-3 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 resize-none"></textarea>
</div>
<div class="flex gap-3" x-show="!success">
<button type="button" @click="show = false" class="flex-1 py-3 px-4 rounded-lg bg-gray-100 dark:bg-gray-800 font-medium">Cancel</button>
<button type="submit" :disabled="submitting" class="flex-1 py-3 px-4 rounded-lg bg-blue-600 text-white font-medium disabled:opacity-50">
<span x-show="!submitting">Submit</span>
<span x-show="submitting">Sending...</span>
</button>
</div>
</form>
</div>
</div>
</div>
<link rel="modulepreload" href="https://novelhub.net/build/assets/reader-3ZEI6_A9.js" /><link rel="modulepreload" href="https://novelhub.net/build/assets/comments-LdW9pvaX.js" /><script type="module" src="https://novelhub.net/build/assets/reader-3ZEI6_A9.js" data-navigate-track="reload"></script>
<link rel="modulepreload" href="https://novelhub.net/build/assets/common-4CfY8fbP.js" /><script type="module" src="https://novelhub.net/build/assets/common-4CfY8fbP.js" data-navigate-track="reload"></script></body>
</html>
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9c76b206e9705fa8',t:'MTc3MDAwMzkyMw=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>