The Prince of Tennis Takes Over Anan Magazine

Somen Halder Jul 07, 2026 0
The Prince of Tennis Takes Over Anan Magazine

The Prince of Tennis Takes Over Anan Magazine

The Prince of Tennis appears on the back cover of the magazine Anan. An exclusive special gravure of Anan will be published on July 30, 2026, for the romance adventure games School Festival Prince and Doki Doki Survival.

The manga The Prince of Tennis began serialization in Weekly Shonen Jump in 1999. It has captivated many readers by depicting the growth and passionate battles of the main character Ryoma Echizen and his friends who belong to Seishun Gakuen's middle school tennis club. After that, the sequel New Prince of Tennis began serialization in Jump SQ. in 2009. The series, which has been loved for 27 years, will conclude with the September issue of the serial magazine Jump SQ. released on August 4th.

The TV Anime Adaptation

The TV anime adaptation began broadcasting on the TV Tokyo network in October 2001. Since then, New Prince of Tennis has been made into a TV anime since 2012, and the story has expanded from the Kanto tournament to the national tournament, and then the world tournament, and the New Prince of Tennis U-17 WORLD CUP final member determination match is scheduled to be broadcast in the fall of 2026. In addition, various projects are planned to be developed as the 25th anniversary year until the end of December 2027.

Additionally, the 20th anniversary remastered version of the romance adventure games School Festival Prince and Doki Doki Survival will be released on July 30th.
To commemorate this, it has been decided that the magazine anan will feature a back cover and an exclusive special gravure photo.

The official magazine anan updated X on July 7th. '[Anan issue 2504 (released on 7/15) back cover released] Ryoma Echizen, Kunimitsu Tezuka, Shusuke Fuji, and Ryoga Echizen from KONAMI's Prince of Tennis romance adventure game Gakupuri Dokisaba are all stepping on it! Anan exclusive special gravure that captures a summer scene of the princes! In their casual clothes that can only be seen here In the back page, we will provide a detailed report on the game that will be released on July 30th. Please look forward to it!' and released the back cover image.

The back cover depicts the characters appearing in this game, Ryoma Echizen, Kunimitsu Tezuka, Shusuke Fuji, and Ryoga Echizen in their casual clothes.

Fans were delighted with the unexpected release of the back cover image. Comments such as 'It's too good', 'The Prince of Tennis!? Amazing!', '!!????', 'Anan's Tennis debut?! Should I buy it as a commemorative gift?', 'The Prince of Tennis for Anan...!?!?!! (joy)', 'Ah!!!!!!!!!!!!', 'Oh no, it's so cool!', 'Illusion...?', 'I'm excited, I'll buy it, please let me buy a lot.'

Anan No. 2504, whose back cover features characters from The Prince of Tennis, will be released on July 15, 2026.

(C) Magazine house


<br></p><img src='https://myanimethoughts.com/assets/images/blogs/myanimethoughts-97317.webp' class='inline-article-image' width='640' height='360'><p>The Prince of Tennis Motto The Prince of the School Festival -40 and more... (Gakupuri)<br>Prince of Tennis Gyu~tto! Dokidoki Survival Tie break game (Dokisaba)<br><Manufacturer> KONAMI<br><Release date> Both Gakupuri and Dokisaba: July 30, 2026<br><Genre> Love adventure<br><Number of players> 1 person<br><CERO Rating> B (for ages 12 and older)<br><Compatible models><br>■Nintendo Switch(TM)<br>■Nintendo Switch(TM) 2<br>■Steam(R)</p><p><Manufacturer's suggested retail price><br>'The Prince of Tennis Motto: The Prince of the School Festival -40 and more...' (Regular Edition): 7,700 yen (tax included)<br>'The Prince of Tennis Motto: The Prince of the School Festival -40 and more...' (Special Edition from the Joint School Festival Management Committee Chairman): 15,400 yen (tax included)<br>'The Prince of Tennis Gyu~tto! Doki Doki Survival Tie break game' (regular version): 7,700 yen (tax included)<br>'The Prince of Tennis Gyu~tto! Doki Doki Survival Tie Break Game' (Desert Island Enjoyment Edition): 15,400 yen (tax included)<br>*Both titles are available exclusively for download on Nintendo Switch (TM) 2 and Steam (R). <Supported languages> Japanese, English, Chinese (traditional and simplified characters)</p></div><p>(C) Tsuyoshi Konami/Shueisha/NAS/The Prince of Tennis Project (C) Tsuyoshi Konami/Shueisha/NAS/New Prince of Tennis Project (C) Konami Digital Entertainment</p><p>Nintendo Switch is a trademark of Nintendo.</p> </div> <div style="min-height:250px;text-align:center;overflow:hidden;"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4862075181072166" crossorigin="anonymous"></script> <!-- Vertical Ads (Next JS) --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4862075181072166" data-ad-slot="8363657474" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> <style> /* --- DARK THEME FAQ STYLES --- */ .faq-section { border-top: 1px solid #222; padding-top: 40px; margin-top: 40px; } .faq-dark .accordion-item { border: none; border-bottom: 1px solid #222; /* Dark Divider */ background: transparent; } /* Button Styling */ .faq-dark .accordion-button { background: transparent; box-shadow: none; /* Removes Bootstrap blue glow */ padding: 20px 0; font-weight: 700; color: #fff; /* White Text */ font-size: 1.1rem; transition: color 0.3s ease; } /* Hover & Active States */ .faq-dark .accordion-button:hover, .faq-dark .accordion-button:not(.collapsed) { color: #f2f2f2; /* Theme Yellow */ background-color: transparent !important; } /* Remove default arrow */ .faq-dark .accordion-button::after { display: none; } /* Custom Icon Styling */ .faq-dark .icon-toggle { margin-left: auto; width: 24px; height: 24px; position: relative; display: flex; align-items: center; justify-content: center; } /* The Lines */ .faq-dark .icon-toggle::before, .faq-dark .icon-toggle::after { content: ''; position: absolute; background-color: #666; /* Default Gray Icon */ transition: all 0.3s ease; } /* Horizontal Line */ .faq-dark .icon-toggle::before { width: 14px; height: 2px; } /* Vertical Line */ .faq-dark .icon-toggle::after { width: 2px; height: 14px; } /* Active State Icon Animations */ .faq-dark .accordion-button:not(.collapsed) .icon-toggle::before { background-color: #f2f2f2; /* Yellow */ transform: rotate(180deg); } .faq-dark .accordion-button:not(.collapsed) .icon-toggle::after { background-color: #f2f2f2; /* Yellow */ transform: rotate(90deg); opacity: 0; /* Makes it a minus sign */ } /* Body Styling */ .faq-dark .accordion-body { padding: 0 0 25px 0; color: #ccc; /* Light Gray text */ line-height: 1.7; font-size: 1rem; } /* Links inside answers */ .faq-dark .accordion-body a { color: #f2f2f2; text-decoration: underline; } </style> <div class="faq-section"> <h3 class="fw-bold text-uppercase text-white mb-4"> <span class=" me-2" style="color:#777;">//</span> FAQs </h3> <div class="accordion faq-dark" id="faqCompact"> <div class="accordion-item"> <h2 class="accordion-header" id="heading_faq_0"> <button class="accordion-button " type="button" data-bs-toggle="collapse" data-bs-target="#collapse_faq_0" aria-expanded="true"> What is the release date of the romance adventure games 'School Festival Prince' and 'Doki Doki Survival'? <div class="icon-toggle"></div> </button> </h2> <div id="collapse_faq_0" class="accordion-collapse collapse show" aria-labelledby="heading_faq_0" data-bs-parent="#faqCompact"> <div class="accordion-body"> The release date of the romance adventure games 'School Festival Prince' and 'Doki Doki Survival' is July 30, 2026. </div> </div> </div> <div class="accordion-item"> <h2 class="accordion-header" id="heading_faq_1"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse_faq_1" aria-expanded="false"> What is the price of the regular edition of 'The Prince of Tennis Motto: The Prince of the School Festival -40 and more...'? <div class="icon-toggle"></div> </button> </h2> <div id="collapse_faq_1" class="accordion-collapse collapse " aria-labelledby="heading_faq_1" data-bs-parent="#faqCompact"> <div class="accordion-body"> The price of the regular edition of 'The Prince of Tennis Motto: The Prince of the School Festival -40 and more...' is 7,700 yen (tax included). </div> </div> </div> <div class="accordion-item"> <h2 class="accordion-header" id="heading_faq_2"> <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse_faq_2" aria-expanded="false"> What platforms are the games 'The Prince of Tennis Motto: The Prince of the School Festival -40 and more...' and 'The Prince of Tennis Gyu~tto! Doki Doki Survival Tie break game' available on? <div class="icon-toggle"></div> </button> </h2> <div id="collapse_faq_2" class="accordion-collapse collapse " aria-labelledby="heading_faq_2" data-bs-parent="#faqCompact"> <div class="accordion-body"> The games 'The Prince of Tennis Motto: The Prince of the School Festival -40 and more...' and 'The Prince of Tennis Gyu~tto! Doki Doki Survival Tie break game' are available on Nintendo Switch and Steam. </div> </div> </div> </div> </div> <div class="border-top border-bottom border-secondary border-opacity-25 py-4 my-5"> <div class="row align-items-center g-3"> <div class="col-md-8"> <div class="d-flex flex-wrap align-items-center"> <span class="text-secondary me-3 fw-bold"><i class="bi bi-tags-fill"></i> Tags:</span> <span class="tag-pill">The Prince of Tennis</span> <span class="tag-pill">Anan Magazine</span> <span class="tag-pill">Ryoma Echizen</span> <span class="tag-pill">Kunimitsu Tezuka</span> <span class="tag-pill">Shusuke Fuji</span> <span class="tag-pill">Ryoga Echizen</span> </div> </div> <div class="col-md-4"> <div class="d-flex justify-content-md-end gap-2"> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fmyanimethoughts.com%2Fthe-prince-of-tennis-takes-over-anan-magazine-6463363" target="_blank" class="share-btn"><i class="bi bi-facebook"></i></a> <a href="https://twitter.com/intent/tweet?text=The+Prince+of+Tennis+Takes+Over+Anan+Magazine&url=https%3A%2F%2Fmyanimethoughts.com%2Fthe-prince-of-tennis-takes-over-anan-magazine-6463363" target="_blank" class="share-btn"><i class="bi bi-twitter-x"></i></a> <a href="https://wa.me/?text=The+Prince+of+Tennis+Takes+Over+Anan+Magazine+https%3A%2F%2Fmyanimethoughts.com%2Fthe-prince-of-tennis-takes-over-anan-magazine-6463363" target="_blank" class="share-btn"><i class="bi bi-whatsapp"></i></a> </div> </div> </div> </div> <div class="row g-3 mt-4 mb-5"> <div class="col-md-6"> <a href="https://myanimethoughts.com/tanabata-celebrations-in-anime-world-3000481" class="nav-card"> <span class="nav-label"><i class="bi bi-arrow-left"></i> Previous Article</span> <span class="nav-title text-truncate">Tanabata Celebrations in Anime World</span> </a> </div> </div> </article> </div> <style> /* --- SIDEBAR CSS --- */ /* Sticky Wrapper */ .mat-sidebar-sticky { border-radius: 12px; position: -webkit-sticky !important; position: sticky !important; top: 30px !important; z-index: 99 !important; max-height: calc(100vh - 120px); overflow-y: auto; padding-bottom: 20px; scrollbar-width: none; /* Hide scrollbar Firefox */ } .mat-sidebar-sticky::-webkit-scrollbar { display: none; /* Hide scrollbar Chrome */ } /* Widget Box */ .sidebar-widget { background-color: #111; border: 1px solid #222; border-radius: 12px; padding: 25px; margin-bottom: 30px; } /* Title */ .widget-title { color: #fff; font-size: 0.95rem; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 20px; border-left: 3px solid #f2f2f2; padding-left: 12px; line-height: 1; } /* --- POST LIST ITEM (The Fix) --- */ .side-post-item { display: flex; /* Forces side-by-side */ align-items: center; /* Vertically center */ margin-bottom: 15px; padding-bottom: 15px; border-bottom: 1px solid #222; text-decoration: none; /* Remove default underline */ transition: transform 0.2s; } .side-post-item:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; } .side-post-item:hover { transform: translateX(5px); } /* Thumbnail */ .side-thumb { width: 80px; /* Fixed Width */ height: 60px; /* Fixed Height */ border-radius: 6px; object-fit: cover; /* Prevents stretching */ background-color: #333; flex-shrink: 0; /* Prevents shrinking */ margin-right: 15px; /* Space between img and text */ } /* Content */ .side-content { flex-grow: 1; min-width: 0; /* Fixes text truncation issues in flex */ } .side-date { font-size: 0.7rem; color: #777; text-transform: uppercase; margin-bottom: 4px; display: block; font-weight: 600; } .side-title { font-size: 0.9rem; line-height: 1.3; font-weight: 700; color: #e0e0e0; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; transition: color 0.2s; } .side-post-item:hover .side-title { color: #f2f2f2; } /* Categories & Tags */ .cat-list-item { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #222; color: #aaa; text-decoration: none; font-size: 0.9rem; transition: 0.2s; } .cat-list-item:hover { color: #f2f2f2; padding-left: 5px; } .cat-count { background: #222; color: #fff; font-size: 0.7rem; padding: 2px 8px; border-radius: 10px; font-weight: bold; } .cat-list-item:hover .cat-count { background: #f2f2f2; color: #000; } .tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; } .tag-pill { background: #1a1a1a; color: #ccc; padding: 6px 12px; border-radius: 50px; font-size: 0.8rem; text-decoration: none; border: 1px solid #333; transition: 0.2s; } .tag-pill:hover { background: #f2f2f2; color: #000; border-color: #f2f2f2; font-weight: 700; } </style> <div class="col-lg-4 col-12"> <div class="mat-sidebar-sticky"> <div class="sidebar-widget"> <h5 class="widget-title">Recent Updates</h5> <a href="https://myanimethoughts.com/tai-ari-deshita-anime-premieres-july-7th-2085964" class="side-post-item"> <img src="https://myanimethoughts.com/assets/images/blogs/img_6a4c698653f5b0.14620057.webp" class="side-thumb" alt="Tai Ari Deshita Anime Premieres July 7th" loading="lazy"> <div class="side-content"> <span class="side-date">Jul 07, 2026</span> <h6 class="side-title">Tai Ari Deshita Anime Premieres July 7th</h6> </div> </a> <a href="https://myanimethoughts.com/fairy-tails-wendy-marvell-14-scale-figure-1817132" class="side-post-item"> <img src="https://myanimethoughts.com/assets/images/blogs/img_6a4c313532c119.72188642.webp" class="side-thumb" alt="Fairy Tail's Wendy Marvell 1/4 Scale Figure" loading="lazy"> <div class="side-content"> <span class="side-date">Jul 07, 2026</span> <h6 class="side-title">Fairy Tail's Wendy Marvell 1/4 Scale Figure</h6> </div> </a> <a href="https://myanimethoughts.com/unveiling-the-apex-the-strongest-races-in-tensura-explained-" class="side-post-item"> <img src="https://myanimethoughts.com/assets/images/blogs/1783175342_8768.webp" class="side-thumb" alt="Unveiling the Apex: The Strongest Races in TenSura, Explained!" loading="lazy"> <div class="side-content"> <span class="side-date">Jul 06, 2026</span> <h6 class="side-title">Unveiling the Apex: The Strongest Races in TenSura, Explained!</h6> </div> </a> <a href="https://myanimethoughts.com/mobile-police-patlabor-shibashigeo-pia-releases-6368537" class="side-post-item"> <img src="https://myanimethoughts.com/assets/images/blogs/img_6a4b91d192f4f9.50339235.webp" class="side-thumb" alt="Mobile Police Patlabor Shibashigeo Pia Releases" loading="lazy"> <div class="side-content"> <span class="side-date">Jul 06, 2026</span> <h6 class="side-title">Mobile Police Patlabor Shibashigeo Pia Releases</h6> </div> </a> </div> <div style="min-height:250px;text-align:center;overflow:hidden;"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4862075181072166" crossorigin="anonymous"></script> <!-- Vertical Ads (Next JS) --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4862075181072166" data-ad-slot="8363657474" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> <div class="sidebar-widget"> <h5 class="widget-title">Most Popular</h5> <a href="https://myanimethoughts.com/the-ultimate-clash-naruto-versus-pain-episode-breakdown" class="side-post-item"> <img src="https://myanimethoughts.com/assets/images/blogs/1774092320_1110.webp" class="side-thumb" alt="Naruto vs Pain: Full Episode Breakdown & Attacks" loading="lazy"> <div class="side-content"> <span class="side-date" style="color:#777;"><i class="bi bi-fire me-1"></i> 4031 Views</span> <h6 class="side-title">Naruto vs Pain: Full Episode Breakdown & Attacks</h6> </div> </a> <a href="https://myanimethoughts.com/one-piece-chapter-1180-review-imus-omen-lands" class="side-post-item"> <img src="https://myanimethoughts.com/assets/images/blogs/1776624348_9625.webp" class="side-thumb" alt="One Piece Chapter 1180 Review: Imu's Omen Lands" loading="lazy"> <div class="side-content"> <span class="side-date" style="color:#777;"><i class="bi bi-fire me-1"></i> 3392 Views</span> <h6 class="side-title">One Piece Chapter 1180 Review: Imu's Omen Lands</h6> </div> </a> <a href="https://myanimethoughts.com/one-piece-chapter-1180-spoilers-release-date-predictions" class="side-post-item"> <img src="https://myanimethoughts.com/assets/images/blogs/1775674932_8079.webp" class="side-thumb" alt="One Piece Chapter 1180 Spoilers, Release Date & Predictions" loading="lazy"> <div class="side-content"> <span class="side-date" style="color:#777;"><i class="bi bi-fire me-1"></i> 3167 Views</span> <h6 class="side-title">One Piece Chapter 1180 Spoilers, Release Date & Predictions</h6> </div> </a> <a href="https://myanimethoughts.com/one-piece-chapter-1180-omen-spoilers-imus-god-like-power-destroys-zoro-sanji" class="side-post-item"> <img src="https://myanimethoughts.com/assets/images/blogs/1776327703_2521.webp" class="side-thumb" alt="One Piece Chapter 1180 "Omen" Spoilers: Imu's God-Like Power Destroys Zoro & Sanji" loading="lazy"> <div class="side-content"> <span class="side-date" style="color:#777;"><i class="bi bi-fire me-1"></i> 3061 Views</span> <h6 class="side-title">One Piece Chapter 1180 "Omen" Spoilers: Imu's God-Like Power Destroys Zoro & Sanji</h6> </div> </a> </div> <div class="sidebar-widget"> <h5 class="widget-title">Top Categories</h5> <div class="cat-list"> <a href="https://myanimethoughts.com/category/animation" class="cat-list-item"> <span>Animation</span> <span class="cat-count">554</span> </a> <a href="https://myanimethoughts.com/category/best-fights" class="cat-list-item"> <span>Best Fights</span> <span class="cat-count">113</span> </a> <a href="https://myanimethoughts.com/category/characters" class="cat-list-item"> <span>Characters</span> <span class="cat-count">1031</span> </a> <a href="https://myanimethoughts.com/category/guides" class="cat-list-item"> <span>Guides</span> <span class="cat-count">169</span> </a> <a href="https://myanimethoughts.com/category/manga" class="cat-list-item"> <span>Manga</span> <span class="cat-count">135</span> </a> <a href="https://myanimethoughts.com/category/news" class="cat-list-item"> <span>News</span> <span class="cat-count">3453</span> </a> <a href="https://myanimethoughts.com/category/power-levels" class="cat-list-item"> <span>Power Levels</span> <span class="cat-count">10</span> </a> <a href="https://myanimethoughts.com/category/rankings" class="cat-list-item"> <span>Rankings</span> <span class="cat-count">401</span> </a> <a href="https://myanimethoughts.com/category/recomendations" class="cat-list-item"> <span>Recomendations</span> <span class="cat-count">226</span> </a> <a href="https://myanimethoughts.com/category/reviews" class="cat-list-item"> <span>Reviews</span> <span class="cat-count">176</span> </a> <a href="https://myanimethoughts.com/category/sacrifices" class="cat-list-item"> <span>Sacrifices</span> <span class="cat-count">66</span> </a> <a href="https://myanimethoughts.com/category/special" class="cat-list-item"> <span>Special</span> <span class="cat-count">108</span> </a> <a href="https://myanimethoughts.com/category/theories" class="cat-list-item"> <span>Theories</span> <span class="cat-count">413</span> </a> <a href="https://myanimethoughts.com/category/voice-actors" class="cat-list-item"> <span>Voice Actors</span> <span class="cat-count">2</span> </a> </div> </div> <div class="sidebar-widget"> <h5 class="widget-title">Tags</h5> <div class="tag-cloud"> <a href="https://myanimethoughts.com/tag/koupen-chan" class="tag-pill"> #Koupen-chan </a> <a href="https://myanimethoughts.com/tag/you're-the-one-who-provoked-me,-right?-an-older-boyfriend's-true-love" class="tag-pill"> #You're the one who provoked me, right? An older boyfriend's true love </a> <a href="https://myanimethoughts.com/tag/spirited-away" class="tag-pill"> #Spirited Away </a> <a href="https://myanimethoughts.com/tag/killer♥twinkle-~~anti-cannot-go-on-stage♥~~" class="tag-pill"> #Killer♥Twinkle ~~Anti cannot go on stage♥~~ </a> <a href="https://myanimethoughts.com/tag/one-piece" class="tag-pill"> #One Piece </a> <a href="https://myanimethoughts.com/tag/nagi-asu-a-lull-in-the-sea" class="tag-pill"> #Nagi-Asu: A Lull in the Sea </a> <a href="https://myanimethoughts.com/tag/we-are-connected" class="tag-pill"> #We are connected </a> <a href="https://myanimethoughts.com/tag/ryoko's-psychic-case-files" class="tag-pill"> #Ryoko's Psychic Case Files </a> <a href="https://myanimethoughts.com/tag/pok-mon" class="tag-pill"> #Pokémon </a> <a href="https://myanimethoughts.com/tag/ashita-no-joe" class="tag-pill"> #Ashita no Joe </a> <a href="https://myanimethoughts.com/tag/emma-a-victorian-romance" class="tag-pill"> #Emma: A Victorian Romance </a> <a href="https://myanimethoughts.com/tag/arte" class="tag-pill"> #Arte </a> <a href="https://myanimethoughts.com/tag/screw-style" class="tag-pill"> #Screw Style </a> <a href="https://myanimethoughts.com/tag/the-silent-service" class="tag-pill"> #The Silent Service </a> <a href="https://myanimethoughts.com/tag/shiboyugi:-playing-death-games-to-put-food-on-the-table" class="tag-pill"> #Shiboyugi: Playing Death Games to Put Food on the Table </a> </div> </div> </div> </div> </div> </div> </section> <div style="min-height:250px;text-align:center;overflow:hidden;"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4862075181072166" crossorigin="anonymous"></script> <!-- Vertical Ads (Next JS) --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4862075181072166" data-ad-slot="8363657474" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> <style> /* --- WEB STORY CARD STYLES --- */ .story-card { position: relative; overflow: hidden; border-radius: 12px; aspect-ratio: 9/16; /* Standard Story Ratio */ transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); cursor: pointer; border: 1px solid #222; background: #111; } .story-card:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(0,0,0,0.5); border-color: #f2f2f2; } /* Image */ .story-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .story-card:hover .story-img { transform: scale(1.05); } /* Gradient Overlay */ .story-overlay { position: absolute; bottom: 0; left: 0; width: 100%; height: 70%; background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.6) 50%, rgba(0,0,0,0) 100%); display: flex; flex-direction: column; justify-content: flex-end; padding: 20px; z-index: 2; } /* Content */ .story-cat-badge { display: inline-block; background: #f2f2f2; color: #000; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; padding: 4px 8px; border-radius: 4px; margin-bottom: 10px; align-self: flex-start; } .story-title { color: #fff; font-size: 1.1rem; font-weight: 700; line-height: 1.3; margin-bottom: 8px; text-shadow: 0 2px 4px rgba(0,0,0,0.8); } .story-meta { font-size: 0.75rem; color: #ccc; display: flex; align-items: center; gap: 5px; } /* Icon Overlay */ .story-icon { position: absolute; top: 15px; right: 15px; background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; border: 1px solid rgba(255,255,255,0.2); z-index: 3; } </style> <section class="bg-black text-light py-5 border-top border-secondary border-opacity-25"> <div class="container"> <div class="d-flex align-items-center mb-4 pb-2 border-bottom border-secondary border-opacity-25"> <h2 class="fw-bold text-uppercase m-0 text-white mat-section-title" style="letter-spacing: -1px;"> Web Stories </h2> <a href="https://myanimethoughts.com/web-stories" class="ms-auto text-decoration-none text-secondary small fw-bold hover-warning text-uppercase" style="font-size: 0.8rem; letter-spacing: 1px;"> View All <i class="bi bi-arrow-right"></i> </a> </div> <div class="row g-4"> <div class="col-xl-3 col-lg-4 col-sm-6 col-12"> <a href="https://myanimethoughts.com/web-story/ben-10s-hero-handbook-7-lessons-from-the-omnitrix" class="text-decoration-none"> <div class="story-card"> <div class="story-icon"> <i class="bi bi-collection-play-fill"></i> </div> <img src="https://tvservice.mymovies.dk/Backdrops/be586859-b0fe-4791-a8fb-ab134d5561c9.jpg" alt="Ben 10's Hero Handbook: 7 Lessons from the Omnitrix!" class="story-img" loading="lazy"> <div class="story-overlay"> <span class="story-cat-badge">Animation</span> <h3 class="story-title">Ben 10's Hero Handbook: 7 Lessons from the Omnitrix!</h3> <div class="story-meta"> <i class="bi bi-clock"></i> May 25, 2026 </div> </div> </div> </a> </div> <div class="col-xl-3 col-lg-4 col-sm-6 col-12"> <a href="https://myanimethoughts.com/web-story/these-webtoons-are-even-darker-than-the-dark-shonen-trio" class="text-decoration-none"> <div class="story-card"> <div class="story-icon"> <i class="bi bi-collection-play-fill"></i> </div> <img src="https://i.pinimg.com/736x/2e/87/76/2e8776889e12a32c37e5f9e0f1d033d9.jpg" alt="These Webtoons Are Even Darker Than the Dark Shonen Trio" class="story-img" loading="lazy"> <div class="story-overlay"> <span class="story-cat-badge">Rankings</span> <h3 class="story-title">These Webtoons Are Even Darker Than the Dark Shonen Trio</h3> <div class="story-meta"> <i class="bi bi-clock"></i> May 18, 2026 </div> </div> </div> </a> </div> <div class="col-xl-3 col-lg-4 col-sm-6 col-12"> <a href="https://myanimethoughts.com/web-story/10-shonen-protagonists-who-are-actually-well-written" class="text-decoration-none"> <div class="story-card"> <div class="story-icon"> <i class="bi bi-collection-play-fill"></i> </div> <img src="https://i.pinimg.com/1200x/28/3d/4d/283d4d9eb64b84007071b8451987b71a.jpg" alt="10 Shonen Protagonists Who Are Actually Well-Written" class="story-img" loading="lazy"> <div class="story-overlay"> <span class="story-cat-badge">Rankings</span> <h3 class="story-title">10 Shonen Protagonists Who Are Actually Well-Written</h3> <div class="story-meta"> <i class="bi bi-clock"></i> May 18, 2026 </div> </div> </div> </a> </div> <div class="col-xl-3 col-lg-4 col-sm-6 col-12"> <a href="https://myanimethoughts.com/web-story/10-hunter-x-hunter-characters-most-likely-to-die-when-the-manga-returns" class="text-decoration-none"> <div class="story-card"> <div class="story-icon"> <i class="bi bi-collection-play-fill"></i> </div> <img src="https://i.pinimg.com/736x/c0/bf/ae/c0bfaeaaa8755162a020ff65614de0b2.jpg" alt="10 Hunter X Hunter Characters Most Likely To Die When The Manga Returns" class="story-img" loading="lazy"> <div class="story-overlay"> <span class="story-cat-badge">Guides</span> <h3 class="story-title">10 Hunter X Hunter Characters Most Likely To Die When The Manga Returns</h3> <div class="story-meta"> <i class="bi bi-clock"></i> May 16, 2026 </div> </div> </div> </a> </div> </div> </div> </section> <style> .mat-scroll-container { display:flex; gap:14px; overflow-x:auto; scroll-behavior:smooth; padding-bottom:10px; scrollbar-width:none; -ms-overflow-style:none; } .mat-scroll-container::-webkit-scrollbar { display:none; } .nav-btn { background:#222; border:1px solid #333; color:#fff; width:35px; height:35px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:0.2s; flex-shrink:0; } .nav-btn:hover { background:#f2f2f2; color:#000; border-color:#f2f2f2; } .shophl-card { min-width:190px; max-width:190px; flex-shrink:0; background:#111; border:1px solid #222; border-radius:12px; overflow:hidden; transition:0.25s; text-decoration:none; display:block; } .shophl-card:hover { border-color:#f97316; transform:translateY(-3px); } .shophl-thumb { width:100%; aspect-ratio:1/1; overflow:hidden; background:#161616; } .shophl-thumb img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; display:block; } .shophl-card:hover .shophl-thumb img { transform:scale(1.07); } .shophl-body { padding:10px 12px 12px; } .shophl-title { color:#e0e0e0; font-size:0.83rem; font-weight:600; line-height:1.4; margin-bottom:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; } .shophl-cta { color:#f97316; font-size:0.7rem; font-weight:700; } </style> <section style="background:#000; padding:44px 0; border-top:1px solid #1a1a1a;"> <div class="container"> <div class="d-flex justify-content-between align-items-center mb-4"> <h2 class="fw-bold text-uppercase m-0 text-white h4" style="letter-spacing:-0.5px;"> <i class="bi bi-bag-heart-fill me-2" style="color:#f97316;"></i>Anime Merch Store </h2> <div class="d-flex align-items-center gap-2"> <a href="https://myanimethoughts.com/shop" class="btn btn-sm btn-outline-light rounded-pill px-3 me-2">Shop All <i class="bi bi-arrow-right ms-1"></i></a> <button class="nav-btn" onclick="scrollSection('shopHlScroll',-1)" aria-label="Previous"><i class="bi bi-chevron-left"></i></button> <button class="nav-btn" onclick="scrollSection('shopHlScroll', 1)" aria-label="Next"><i class="bi bi-chevron-right"></i></button> </div> </div> <div class="mat-scroll-container" id="shopHlScroll"> <a href="https://myanimethoughts.com/product/tamashii-nations-blue-lock-yoichi-isagi-mini-action-figure" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783316907_5032.webp" alt="Tamashii Nations Blue Lock Yoichi Isagi Mini Action Figure" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">Tamashii Nations Blue Lock Yoichi Isagi Mini Action Figure</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> <a href="https://myanimethoughts.com/product/jujutsu-kaisen-nobara-kugisaki-cosplay-school-uniform-outfit" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783141479_7204.webp" alt="Jujutsu Kaisen Nobara Kugisaki Cosplay School Uniform Outfit" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">Jujutsu Kaisen Nobara Kugisaki Cosplay School Uniform Outfit</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> <a href="https://myanimethoughts.com/product/vintagecos-kurosaki-ichigo-cosplay-authentic-men-s-black-soul-reaper-kimono-outfit" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783068200_9261.webp" alt="VintageCos Kurosaki Ichigo Cosplay: Authentic Men's Black Soul Reaper Kimono Outfit" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">VintageCos Kurosaki Ichigo Cosplay: Authentic Men's Black Soul Reaper Kimono Outfit</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> <a href="https://myanimethoughts.com/product/funko-pop-animation-one-piece-roronoa-zoro-collectible-vinyl-figure-with-1-6-chase-variant-chance-official-anime-merchandise" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783105084_6339.webp" alt="Funko Pop! Animation: One Piece – Roronoa Zoro Collectible Vinyl Figure with 1/6 Chase Variant Chance – Official Anime Merchandise" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">Funko Pop! Animation: One Piece – Roronoa Zoro Collectible Vinyl Figure with 1/6 Chase Variant Chance – Official Anime Merchandise</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> <a href="https://myanimethoughts.com/product/roommates-one-piece-straw-hat-crew-peel-stick-wall-decals" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783108161_6022.webp" alt="RoomMates One Piece Straw Hat Crew Peel & Stick Wall Decals" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">RoomMates One Piece Straw Hat Crew Peel & Stick Wall Decals</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> <a href="https://myanimethoughts.com/product/gabimaru-hell-s-paradise-oversized-anime-t-shirt-denim-blue" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783143612_3308.webp" alt="Gabimaru Hell's Paradise Oversized Anime T-Shirt Denim Blue" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">Gabimaru Hell's Paradise Oversized Anime T-Shirt Denim Blue</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> <a href="https://myanimethoughts.com/product/dr-stone-senku-plush-8-h-official-anime-collectible-toy" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783138510_2371.webp" alt="Dr. Stone Senku Plush 8" H - Official Anime Collectible Toy" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">Dr. Stone Senku Plush 8" H - Official Anime Collectible Toy</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> <a href="https://myanimethoughts.com/product/anime-woven-keychain-for-bike-car-double-sided-accessories" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783228400_4673.webp" alt="Anime Woven Keychain for Bike & Car - Double Sided Accessories" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">Anime Woven Keychain for Bike & Car - Double Sided Accessories</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> <a href="https://myanimethoughts.com/product/bleach-augen-6-pack-10cm-action-figures-limited-edition-decor" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783142368_2327.webp" alt="Bleach Augen 6-Pack 10cm Action Figures | Limited Edition Decor" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">Bleach Augen 6-Pack 10cm Action Figures | Limited Edition Decor</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> <a href="https://myanimethoughts.com/product/funko-pop-rezero-subaru-natsuki-vinyl-figure-anime" class="shophl-card"> <div class="shophl-thumb"><img src="https://myanimethoughts.com/assets/images/products/1783140606_7114.webp" alt="Funko POP! Re:ZERO Subaru Natsuki Vinyl Figure Anime" loading="lazy"></div> <div class="shophl-body"> <div class="shophl-title">Funko POP! Re:ZERO Subaru Natsuki Vinyl Figure Anime</div> <span class="shophl-cta">View Product <i class="bi bi-arrow-right"></i></span> </div> </a> </div> </div> </section> <script> if (typeof scrollSection !== 'function') { function scrollSection(id, dir) { const c = document.getElementById(id); if (c) c.scrollLeft += dir * 280; } } </script> <section class="bg-black py-5 border-top border-bottom border-secondary border-opacity-25"> <div class="container"> <div class="row align-items-center g-4"> <div class="col-lg-6 col-md-12"> <div class="d-flex flex-column"> <h3 class="fw-bold text-white text-uppercase mb-2 ls-1 mat-section-title"> Never Miss an Update! </h3> <p class="text-secondary mb-0" style="font-size: 1.05rem;"> Get the freshest headlines, theories, and anime updates sent uninterrupted to your inbox. </p> </div> </div> <div class="col-lg-6 col-md-12"> <form method="post" action="" class="position-relative"> <div class="input-group input-group-lg"> <input type="email" name="subscribe_email" class="form-control bg-dark border-secondary text-white fs-6" placeholder="Enter your email address..." aria-label="Email" required style="border-right: none;" > <button class="btn fw-bold text-uppercase px-4 text-dark fs-6" type="submit" style="letter-spacing: 1px; background-color: #fff; color:#111;"> Subscribe </button> </div> </form> </div> </div> </div> </section> <style> .form-control:focus { background-color: #222 !important; color: #fff !important; border-color: #444 !important; box-shadow: none !important; } /* Placeholder color fix */ .form-control::placeholder { color: #6c757d !important; opacity: 1; } </style> <style> /* --- FOOTER THEME (Otaku Dark) - KEPT EXACTLY AS REQUESTED --- */ .mat-footer-section { background-color: #050505; /* Deep Black */ color: #b0b3b8; font-family: 'Segoe UI', system-ui, sans-serif; border-top: 1px solid #222; margin-top: 80px; position: relative; overflow: hidden; } .mat-footer-section::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 5px; } .mat-footer-title { color: #fff; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 1.5rem; border-left: 4px solid #f2f2f2; padding-left: 12px; line-height: 1; } .mat-footer-link { color: #888; text-decoration: none; transition: all 0.3s ease; display: block; padding: 6px 0; font-size: 0.95rem; } .mat-footer-link:hover { color: #f2f2f2; padding-left: 8px; } .mat-social-btn { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; background-color: rgba(255,255,255,0.08); border-radius: 50%; transition: 0.3s; border: 1px solid rgba(255,255,255,0.1); } .mat-social-btn img { width: 18px; height: 18px; object-fit: contain; filter: invert(0.8); transition: 0.3s; } .mat-social-btn:hover { background-color: #f2f2f2; border-color: #f2f2f2; transform: translateY(-3px); } .mat-social-btn:hover img { filter: invert(0); /* Black icon on yellow bg */ } .mat-cat-pill { display: inline-block; background: #111; color: #999; padding: 5px 12px; border-radius: 4px; font-size: 0.8rem; margin: 0 5px 8px 0; text-decoration: none; border: 1px solid #333; transition: 0.2s; } .mat-cat-pill:hover { border-color: #f2f2f2; color: #f2f2f2; } .mat-lower-footer { background-color: #000; border-top: 1px solid #1a1a1a; padding: 25px 0; font-size: 0.85rem; } </style> <footer class="mat-footer-section pt-5"> <div class="container pb-5"> <div class="row g-5"> <div class="col-lg-4 col-md-6 col-12"> <div class="mb-4"> <a href="https://myanimethoughts.com/"> <img src="https://myanimethoughts.com/assets/images/footer/logo_1770522735.png" alt="Logo" class="img-fluid mb-3" style="max-width: 180px;" loading="lazy"> </a> <p style="line-height: 1.7; opacity: 0.8; font-size: 0.95rem;"> MyAnimeThoughts is your ultimate destination for anime news, reviews, and theories. Join our community of otakus today! </p> </div> <div class="d-flex gap-3"> <a href="https://www.facebook.com/myanimethought/" class="mat-social-btn" title="Facebook"> <img src="https://myanimethoughts.com/assets/images/footer/1.png" alt="FB" loading="lazy"> </a> <a href="https://www.youtube.com/@myanimethoughts_" class="mat-social-btn" title="YouTube"> <img src="https://myanimethoughts.com/assets/images/footer/4.png" alt="YT" loading="lazy"> </a> <a href="https://www.instagram.com/myanimethoughts_" class="mat-social-btn" title="Instagram"> <img src="https://myanimethoughts.com/assets/images/footer/3.png" alt="IG" loading="lazy"> </a> <a href="https://in.pinterest.com/Myanimethoughts/" class="mat-social-btn" title="Pinterest"> <img src="https://myanimethoughts.com/assets/images/footer/5.png" alt="Pin" loading="lazy"> </a> </div> </div> <div class="col-lg-2 col-md-6 col-12"> <h5 class="mat-footer-title">Explore</h5> <ul class="list-unstyled"> <li> <a href="/tag/one-piece" class="mat-footer-link"> One Piece </a> </li> <li> <a href="/tag/jujutsu-kaisen" class="mat-footer-link"> Jujutsu Kaisen </a> </li> </ul> </div> <div class="col-lg-4 col-md-6 col-12"> <h5 class="mat-footer-title">Browse Topics</h5> <div class="d-flex flex-wrap"> <a href="https://myanimethoughts.com/category/animation" class="mat-cat-pill">Animation</a><a href="https://myanimethoughts.com/category/best-fights" class="mat-cat-pill">Best Fights</a><a href="https://myanimethoughts.com/category/characters" class="mat-cat-pill">Characters</a><a href="https://myanimethoughts.com/category/guides" class="mat-cat-pill">Guides</a><a href="https://myanimethoughts.com/category/manga" class="mat-cat-pill">Manga</a><a href="https://myanimethoughts.com/category/news" class="mat-cat-pill">News</a><a href="https://myanimethoughts.com/category/power-levels" class="mat-cat-pill">Power Levels</a><a href="https://myanimethoughts.com/category/rankings" class="mat-cat-pill">Rankings</a><a href="https://myanimethoughts.com/category/recomendations" class="mat-cat-pill">Recomendations</a><a href="https://myanimethoughts.com/category/reviews" class="mat-cat-pill">Reviews</a><a href="https://myanimethoughts.com/category/sacrifices" class="mat-cat-pill">Sacrifices</a><a href="https://myanimethoughts.com/category/special" class="mat-cat-pill">Special</a><a href="https://myanimethoughts.com/category/theories" class="mat-cat-pill">Theories</a><a href="https://myanimethoughts.com/category/voice-actors" class="mat-cat-pill">Voice Actors</a> </div> </div> <div class="col-lg-2 col-md-6 col-12"> <h5 class="mat-footer-title">Legal</h5> <ul class="list-unstyled"> <li> <a href="https://myanimethoughts.com/web-stories" class="mat-footer-link"> Web Stories </a> </li> <li> <a href="/llms.txt" class="mat-footer-link"> LLMS.txt </a> </li> <li> <a href="/sitemap-index.xml" class="mat-footer-link"> Sitemaps </a> </li> <li> <a href="/page/privacy-policy" class="mat-footer-link"> Privacy Policy </a> </li> <li> <a href="/page/terms-and-conditions" class="mat-footer-link"> Terms and Conditions </a> </li> <li> <a href="/page/contact-us" class="mat-footer-link"> Contact Us </a> </li> </ul> </div> </div> </div> <div class="mat-lower-footer"> <div class="container d-flex flex-wrap justify-content-between align-items-center"> <div class="text-secondary"> Copyright © 2026 MYANIMETHOUGHTS. All Rights Reserved. </div> <div class="d-none d-md-block "> Made with <i class="bi bi-heart-fill text-danger"></i> for Anime Fans </div> </div> </div> </footer> <style> /* Existing styles */ .hover-white:hover { color: #fff !important; padding-left: 5px; } .transition { transition: all 0.2s ease-in-out; } .ls-1 { letter-spacing: 1px; } /* Push Modal Styles - Black, Smoke White, & Minimal Red */ .push-toast-container { position: fixed; bottom: 30px; right: 30px; width: 360px; background: #0f0f0f; /* Deep black to match site */ border-radius: 16px; box-shadow: 0 15px 35px rgba(0,0,0,0.8); border: 1px solid #2a2a2a; /* Subtle dark border */ color: #f5f5f5; /* Smoke white */ z-index: 10000; font-family: system-ui, -apple-system, sans-serif; transform: translateX(150%); visibility: hidden; transition: transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275), visibility 0.5s; } .push-toast-container.show { transform: translateX(0); visibility: visible; } .push-toast-content { display: flex; align-items: flex-start; gap: 16px; padding: 24px; } .push-toast-icon { background: #1a1a1a; padding: 12px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1px solid #333; color: #f5f5f5; /* Smoke white icon */ } .push-toast-btn { flex: 1; padding: 10px 0; border-radius: 8px; cursor: pointer; font-weight: 600; font-size: 0.9rem; transition: background 0.2s, transform 0.1s, border 0.2s; } .push-toast-btn:active { transform: scale(0.97); } .btn-later { border: 1px solid #333; background: #141414; color: #aaa; } .btn-later:hover { background: #222; color: #f5f5f5; border-color: #555; } .btn-allow { border: none; background: #c61a1a; /* Subtle red accent for primary action */ color: white; } .btn-allow:hover { background: #a31515; } /* ========================================= Floating Bell Button Styles & Animation ========================================= */ #floating-bell-btn { position: fixed; bottom: 30px; left: 30px; width: 60px; height: 60px; background: #141414; /* Dark background instead of red */ border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 15px rgba(0,0,0,0.6); z-index: 9999; display: none; /* Hidden by default */ transition: transform 0.2s, background 0.2s; border: 1px solid #333; color: #f5f5f5; /* Smoke white icon */ } #floating-bell-btn:hover { background: #1f1f1f; transform: scale(1.05); } /* Tiny red notification dot */ .bell-dot { position: absolute; top: 14px; right: 16px; width: 8px; height: 8px; background: #c61a1a; /* The tiny bit of red */ border-radius: 50%; border: 2px solid #141414; } /* The Ringing Animation */ .bell-ring { animation: ringAnimation 2.5s infinite; display: flex; align-items: center; justify-content: center; } @keyframes ringAnimation { 0% { transform: rotate(0); } 5% { transform: rotate(15deg); } 10% { transform: rotate(-15deg); } 15% { transform: rotate(10deg); } 20% { transform: rotate(-10deg); } 25% { transform: rotate(5deg); } 30% { transform: rotate(-5deg); } 35% { transform: rotate(0); } 100% { transform: rotate(0); } } </style> <div id="floating-bell-btn" onclick="handleAllow()"> <div class="bell-dot"></div> <span class="bell-ring"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path> <path d="M13.73 21a2 2 0 0 1-3.46 0"></path> </svg> </span> </div> <div id="push-permission-modal" class="push-toast-container"> <div class="push-toast-content"> <div class="push-toast-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"></path> <path d="M13.73 21a2 2 0 0 1-3.46 0"></path> </svg> </div> <div> <h4 style="margin: 0 0 6px; color: #f5f5f5; font-weight: 700; font-size: 1.1rem;">Stay Updated!</h4> <p style="color: #aaa; font-size: 0.9rem; margin: 0 0 18px; line-height: 1.5;"> Get the latest updates, news, and anime thoughts delivered right to your device. </p> <div style="display: flex; gap: 12px;"> <button onclick="handleLater()" class="push-toast-btn btn-later">Later</button> <button onclick="handleAllow()" class="push-toast-btn btn-allow">Allow</button> </div> </div> </div> </div> <script> const publicKey = 'BIycaVwb1jDOCRYbsjNEYXjWTp5MeiBpiu5x7TNOTEe4D-f4OQxKJxcKp03FlgWVUCn3Lfuqf_waIi43OVJsn2Q'; // We store the timeout ID so we can clear it if needed let popupTimer; // Wait for full page load + 2s idle before starting push logic // Prevents push setup from competing with LCP/FID paint metrics window.addEventListener('load', function() { setTimeout(function() { if ('serviceWorker' in navigator && 'PushManager' in window) { navigator.serviceWorker.register('https://myanimethoughts.com/sw.js'); checkNotificationRules(); } }, 2000); }); function checkNotificationRules() { const bellBtn = document.getElementById('floating-bell-btn'); // If permanently granted or denied, keep everything hidden forever if (Notification.permission === 'granted' || Notification.permission === 'denied') { bellBtn.style.display = 'none'; return; } const lastPrompt = localStorage.getItem('push_prompt_cooldown'); if (lastPrompt) { // They clicked "Later" in the past, so the bell must be visible bellBtn.style.display = 'flex'; const now = new Date().getTime(); const timePassed = now - parseInt(lastPrompt, 10); const oneMinute = 60 * 1000; // 60 seconds if (timePassed < oneMinute) { // If less than a minute has passed, wait the remaining time popupTimer = setTimeout(showPushModal, oneMinute - timePassed); } else { // More than a minute has passed, show the popup quickly popupTimer = setTimeout(showPushModal, 1000); } } else { // First time visiting. No bell yet, just show the popup. bellBtn.style.display = 'none'; popupTimer = setTimeout(showPushModal, 1000); } } function showPushModal() { document.getElementById('push-permission-modal').classList.add('show'); } function handleAllow() { // Hide the modal and clear the current timer document.getElementById('push-permission-modal').classList.remove('show'); clearTimeout(popupTimer); // Request native browser permission directly Notification.requestPermission().then(function(permission) { if (permission === 'granted') { subscribeUserToPush(); // Subscribed! Remove the floating bell immediately. document.getElementById('floating-bell-btn').style.display = 'none'; } else if (permission === 'denied') { console.log('User permanently blocked notifications.'); // If they block it natively, remove the bell. document.getElementById('floating-bell-btn').style.display = 'none'; } else { // This is the 'default' state: They clicked 'X' and dismissed the prompt console.log('User dismissed the browser prompt without answering.'); // Keep the bell visible document.getElementById('floating-bell-btn').style.display = 'flex'; // Restart the 60-second loop const now = new Date().getTime(); localStorage.setItem('push_prompt_cooldown', now); popupTimer = setTimeout(showPushModal, 60000); } }); } function handleLater() { // Hide the popup document.getElementById('push-permission-modal').classList.remove('show'); // Show the bell permanently document.getElementById('floating-bell-btn').style.display = 'flex'; // Record the exact time they clicked Later const now = new Date().getTime(); localStorage.setItem('push_prompt_cooldown', now); // Set a timer to force the popup open again in exactly 60 seconds clearTimeout(popupTimer); popupTimer = setTimeout(showPushModal, 60000); console.log('Popup hidden. Bell is visible. Popup will return in 60 seconds.'); } function subscribeUserToPush() { navigator.serviceWorker.ready.then(function(registration) { const convertedKey = urlBase64ToUint8Array(publicKey); const subscribeOptions = { userVisibleOnly: true, applicationServerKey: convertedKey }; return registration.pushManager.subscribe(subscribeOptions); }).then(function(pushSubscription) { sendSubscriptionToBackEnd(pushSubscription); }).catch(function(err) { console.error('Subscription failed: ', err); }); } function sendSubscriptionToBackEnd(subscription) { fetch('https://myanimethoughts.com/save_subscription.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(subscription) }).then(response => { if (response.ok) console.log('Saved to DB!'); }); } function urlBase64ToUint8Array(base64String) { const padding = '='.repeat((4 - base64String.length % 4) % 4); const base64 = (base64String + padding).replace(/\-/g, '+').replace(/_/g, '/'); const rawData = window.atob(base64); const outputArray = new Uint8Array(rawData.length); for (let i = 0; i < rawData.length; ++i) { outputArray[i] = rawData.charCodeAt(i); } return outputArray; } </script> </div> <script src="assets/js/bootstrap.bundle.min.js"></script> <script src="assets/js/jquery.min.js"></script> <script src="assets/js/search.js"></script> </body> </html>