PageSourceSearch

https://sinfulx.ai/legal/terms

html sinfulx.ai collected 2026-10-05 12:37:30 UTC 168,499 bytes, 2,697 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en" class="dark" style="background-color: #000000;">
3    <head>
4        <meta charset="utf-8">
5        <meta name="viewport" content="width=device-width, initial-scale=1">
6                            <meta name="csrf-token" content="poFNnKE01odzex1uMX8UptP5GRFtYA6AxoAjuhRX">
7                <meta name="user-authenticated" content="false">
8        <meta name="user-is-admin" content="false">
9
10        
11        
12        
13                        
14                <title>Terms of Service | SinfulX AI</title>
15
16        <!-- SEO Meta Tags -->
17        
18        
19        
20                <meta name="description" content="Terms of Service for SinfulX AI">
21
22<meta name="author" content="SinfulX AI">
23<link rel="canonical" href="https://sinfulx.ai/legal/terms">
24
25
26
27
28<meta http-equiv="content-language" content="en">
29<meta name="language" content="en">
30<meta property="dc:language" content="en">
31
32
33
34    
35    <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
36
37
38            <link rel="alternate" hreflang="en" href="https://sinfulx.ai/legal/terms">
39            <link rel="alternate" hreflang="x-default" href="https://sinfulx.ai/legal/terms">
40    
41
42            <meta property="og:title" content="Terms of Service | SinfulX AI">
43                <meta property="og:description" content="Terms of Service for SinfulX AI">
44                <meta property="og:url" content="https://sinfulx.ai/legal/terms">
45                <meta property="og:type" content="website">
46                <meta property="og:site_name" content="SinfulX AI">
47                <meta property="og:locale" content="en">
48                <meta property="og:image" content="https://sinfulx.ai/images/sinful-ai-og.jpg">
49                <meta property="og:image:alt" content="Terms of Service | SinfulX AI">
50    
51
52<meta property="og:image:width" content="1200">
53<meta property="og:image:height" content="630">
54<meta property="og:image:type" content="image/jpeg">
55
56
57
58
59
60
61<meta name="twitter:card" content="summary_large_image">
62<meta name="twitter:title" content="Terms of Service | SinfulX AI">
63<meta name="twitter:description" content="Terms of Service for SinfulX AI">
64<meta name="twitter:image" content="https://sinfulx.ai/images/sinful-ai-og.jpg">
65<meta name="twitter:site" content="@SinfulX_ai">
66<meta name="twitter:creator" content="@SinfulX_ai">
67
68
69<script type="application/ld+json">
70{"@context":"https://schema.org","@type":"Organization","@id":"https://sinfulx.ai/#organization","name":"NSFW AI Studio","alternateName":"SinfulX AI","url":"https://sinfulx.ai","logo":{"@type":"ImageObject","url":"https://sinfulx.ai/images/sinful-ai-logo.png","width":250,"height":60},"description":"SinfulX AI is the #1 AI porn generator for photorealistic NSFW images and videos. 100+ categories, no-card signup. Create AI porn instantly. 18+ only.","sameAs":["https://twitter.com/SinfulX_ai","https://www.instagram.com/sinfulx.ai"],"contactPoint":{"@type":"ContactPoint","contactType":"Customer Support","email":"[email protected]","availableLanguage":["English"]}}
71</script>
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103<meta http-equiv="X-UA-Compatible" content="IE=edge">
104<meta name="format-detection" content="telephone=no">
105
106
107<meta name="theme-color" content="#000000">
108<meta name="msapplication-TileColor" content="#000000">
109<meta name="mobile-web-app-capable" content="yes">
110<meta name="apple-mobile-web-app-capable" content="yes">
111<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
112
113
114
115
116<meta name="rating" content="adult">
117                    <meta name="age-rating" content="18+">
118                            <meta name="rating" content="adult">
119                            <meta name="RATING" content="RTA-5042-1996-1400-1577-RTA">
120                            <meta http-equiv="PICS-Label" content="(PICS-1.1 &quot;http://www.classify.org/safesurf/&quot; l r (SS~~000 1))">
121                            <meta name="content-warning" content="adult">
122                            <meta name="og:content-rating" content="adult">
123                
124        <meta name="rating" content="RTA-5042-1996-1400-1577-RTA">
125    
126
127<link rel="alternate" type="application/rss+xml" title="SinfulX AI Blog" href="https://sinfulx.ai/feed/rss">
128<link rel="alternate" type="application/atom+xml" title="SinfulX AI Blog" href="https://sinfulx.ai/feed/atom">
129
130
131
132        <!-- Favicons -->
133        <link rel="apple-touch-icon" sizes="180x180" href="https://sinfulx.ai/fav/apple-touch-icon.png">
134        <link rel="icon" type="image/png" sizes="32x32" href="https://sinfulx.ai/fav/favicon-32x32.png">
135        <link rel="icon" type="image/png" sizes="16x16" href="https://sinfulx.ai/fav/favicon-16x16.png">
136        <link rel="manifest" href="https://sinfulx.ai/fav/site.webmanifest">
137        <link rel="shortcut icon" href="https://sinfulx.ai/fav/favicon.ico">
138
139        <!-- Resource Hints -->
140        <link rel="preload" href="https://sinfulx.ai/fonts/Manrope/Manrope-VariableFont_wght.woff2" as="font" type="font/woff2" crossorigin>
141        <link rel="preconnect" href="https://cdn.sinfulx.ai" crossorigin>
142        <link rel="preconnect" href="https://sinful-ai-public.s3.amazonaws.com" crossorigin>
143        <link rel="dns-prefetch" href="//www.google-analytics.com">
144        <link rel="dns-prefetch" href="//analytics.ahrefs.com">
145                    <link rel="preload" href="https://sinfulx.ai/images/sinful-ai-logo.png" as="image" type="image/png">
146        
147        <!-- Critical Page Loader CSS (must be inline to prevent FOUC) -->
148        <style>
149    /* NOTE: #main-content is NOT hidden with visibility:hidden — the full-viewport
150       #page-loader overlay already covers content visually. visibility:hidden blocks
151       Chrome from painting the LCP image, adding ~500ms to element render delay. */
152
153    /* Critical loader styles */
154    #page-loader {
155        position: fixed;
156        top: 0;
157        left: 0;
158        width: 100vw;
159        height: 100vh;
160        background-color: #000000;
161        z-index: 999999;
162        display: flex;
163        align-items: center;
164        justify-content: center;
165        transition: opacity 0.3s ease, visibility 0.3s ease;
166    }
167
168    #page-loader.home-loading-screen {
169        align-items: flex-start;
170        flex-direction: column;
171        padding-left: 5vw;
172        padding-right: 5vw;
173        transition: opacity 0.8s ease-out, visibility 0.8s ease-out;
174    }
175
176    #page-loader.hidden {
177        opacity: 0;
178        visibility: hidden;
179        pointer-events: none;
180    }
181
182    /* Logo loader animation */
183    .loader-logo {
184        width: 120px;
185        height: auto;
186        animation: pulse 1.5s ease-in-out infinite;
187    }
188
189    .home-loading-content {
190        display: flex;
191        flex-direction: column;
192        align-items: flex-start;
193    }
194
195    .home-loading-text {
196        color: #ffffff;
197        font-size: 4.5rem;
198        font-weight: 300;
199        line-height: 1.1;
200        margin-bottom: 0.5rem;
201        opacity: 0;
202        text-align: left;
203        transform: translateY(20px);
204        white-space: nowrap;
205        animation: fadeInUp 0.8s ease-out forwards;
206        animation-delay: 0.2s;
207    }
208
209    .home-loading-text.line-3 {
210        display: flex;
211        align-items: baseline;
212    }
213
214    .home-loading-logo {
215        display: inline-block;
216        flex-shrink: 0;
217        height: 80px;
218        width: auto;
219        max-width: 100%;
220        object-fit: contain;
221        object-position: left center;
222        margin-left: 20px;
223        opacity: 0;
224        position: relative;
225        top: 6px;
226        transform: translateY(20px);
227        vertical-align: baseline;
228        animation: fadeInUp 0.8s ease-out forwards;
229        animation-delay: 0.2s;
230    }
231
232    @keyframes pulse {
233        0%, 100% { opacity: 0.6; transform: scale(1); }
234        50% { opacity: 1; transform: scale(1.05); }
235    }
236
237    @keyframes fadeInUp {
238        to {
239            opacity: 1;
240            transform: translateY(0);
241        }
242    }
243
244    body.loading {
245        overflow: hidden;
246    }
247
248    /* Ensure body has black background immediately */
249    body {
250        background-color: #000000 !important;
251    }
252
253    @media (max-width: 1024px) {
254        #page-loader.home-loading-screen {
255            padding-left: 4vw;
256            padding-right: 4vw;
257        }
258
259        .home-loading-text {
260            font-size: 3.5rem;
261        }
262
263        .home-loading-logo {
264            height: 60px;
265            width: auto;
266            margin-left: 15px;
267        }
268    }
269
270    @media (max-width: 768px) {
271        #page-loader.home-loading-screen {
272            padding-left: 3vw;
273            padding-right: 3vw;
274        }
275
276        .home-loading-text {
277            font-size: 2.5rem;
278        }
279
280        .home-loading-logo {
281            height: 50px;
282            width: auto;
283            margin-left: 12px;
284        }
285    }
286
287    @media (max-width: 480px) {
288        #page-loader.home-loading-screen {
289            padding-left: 2vw;
290            padding-right: 2vw;
291        }
292
293        .home-loading-text {
294            font-size: 2rem;
295        }
296
297        .home-loading-logo {
298            height: 40px;
299            width: auto;
300            margin-left: 8px;
301        }
302    }
303</style>
304
305        <!-- Livewire Configuration (Required for manual bundling) -->
306                    
306<script  data-navigate-once="true">window.livewireScriptConfig = {"csrf":"poFNnKE01odzex1uMX8UptP5GRFtYA6AxoAjuhRX","uri":"https:\/\/sinfulx.ai\/livewire-0bafa650\/update","moduleUrl":"https:\/\/sinfulx.ai\/livewire-0bafa650","progressBar":"","nonce":""};</script>
306
307            <!-- Livewire Styles --><style >[wire\:loading][wire\:loading], [wire\:loading\.delay][wire\:loading\.delay], [wire\:loading\.list-item][wire\:loading\.list-item], [wire\:loading\.inline-block][wire\:loading\.inline-block], [wire\:loading\.inline][wire\:loading\.inline], [wire\:loading\.block][wire\:loading\.block], [wire\:loading\.flex][wire\:loading\.flex], [wire\:loading\.table][wire\:loading\.table], [wire\:loading\.grid][wire\:loading\.grid], [wire\:loading\.inline-flex][wire\:loading\.inline-flex] {display: none;}[wire\:loading\.delay\.none][wire\:loading\.delay\.none], [wire\:loading\.delay\.shortest][wire\:loading\.delay\.shortest], [wire\:loading\.delay\.shorter][wire\:loading\.delay\.shorter], [wire\:loading\.delay\.short][wire\:loading\.delay\.short], [wire\:loading\.delay\.default][wire\:loading\.delay\.default], [wire\:loading\.delay\.long][wire\:loading\.delay\.long], [wire\:loading\.delay\.longer][wire\:loading\.delay\.longer], [wire\:loading\.delay\.longest][wire\:loading\.delay\.longest] {display: none;}[wire\:offline][wire\:offline] {display: none;}[wire\:dirty]:not(textarea):not(input):not(select) {display: none;}:root {--livewire-progress-bar-color: #2299dd;}[x-cloak] {display: none !important;}[wire\:cloak] {display: none !important;}dialog#livewire-error::backdrop {background-color: rgba(0, 0, 0, .6);}</style>
308        
309        <!-- Scripts -->
310        <!-- Load CSS asynchronously to prevent render blocking -->
311        
312                                    
313                <link rel="preload" href="https://sinfulx.ai/build/assets/app-BXEAP9-H.css" as="style" fetchpriority="high">
314                <link rel="stylesheet" href="https://sinfulx.ai/build/assets/app-BXEAP9-H.css" media="print" onload="this.media='all'">
315                <noscript><link rel="stylesheet" href="https://sinfulx.ai/build/assets/app-BXEAP9-H.css"></noscript>
316                    
317        
318        
318<script>
319            window.SinfulXI18n = {"home":{"hero_featured":{"alt":{"ai_generated_prefix":"AI-generated","hero_image":"AI-generated hero image"},"stats":{"views":"views"},"user":{"anonymous":"anonymous"},"aria":{"slide_label":"Go to slide :current of :total"}}},"confirm":{"default_title":"Confirm Action","default_message":"Are you sure you want to proceed?","confirm":"Confirm","cancel":"Cancel","are_you_sure":"Are you sure?","delete_title":"Delete","delete":"Delete","delete_message":"Are you sure you want to delete :item? This action cannot be undone.","make_private_title":"Make Private","make_private":"Make Private","make_private_message":"Are you sure you want to remove this from the public gallery?"},"media":{"this_item":"this item","this_image":"this image"},"share":{"default_title":"Check out this AI creation","default_text":"Check out this AI creation on SinfulX!","shared_successfully":"Shared successfully!","link_copied":"Link copied to clipboard!","link_title":"Share Link","close":"Close"},"actions":{"updated_successfully":"Updated successfully","deleted_successfully":"Deleted successfully","removed_public_gallery":"Removed from public gallery","posted_public_gallery":"Your image is now posted on the Public Gallery","shared_pending_approval":"Shared to public gallery! Pending approval.","image_updated_successfully":"Image updated successfully!","already_in_gallery":":type is already in your gallery.","saved_public_pending":":type shared to public gallery for approval!","saved_private":":type saved to your private gallery!","image_made_private":"Image made private","image_deleted_successfully":"Image deleted successfully"},"errors":{"generic":"An error occurred","http_client_unavailable":"HTTP client unavailable","csrf_token_missing":"No CSRF token in response","update_visibility_failed":"Failed to update visibility","delete_media_failed":"Failed to delete media","delete_image_failed":"Failed to delete image","toggle_like_failed":"Failed to toggle like","delete_not_authorized":"Not authorized to delete this file","share_public_failed":"Failed to share :type publicly: :error","too_many_like_attempts":"Too many like attempts. Please wait a moment.","processing_request":"An error occurred while processing your request.","category_name_min":"Category name must be at least 3 characters","too_many_categories":"Too many categories created recently. Please wait.","no_file_url":"No file URL provided","invalid_file_path":"Invalid file path","save_failed":"Failed to save :type: :error","file_not_found_or_not_owned":"File not found or not owned by user"},"reference_picker":{"all_categories":"All Categories","unknown_category":"Unknown Category","untitled":"Untitled","errors":{"load_categories_failed":"Failed to load categories","categories_unavailable":"Unable to load categories at this time.","load_images_failed":"Failed to load images","images_unavailable":"Unable to load images. Please try again."}},"scenarios_dropdown":{"load_failed":"Failed to load scenarios","try_again":"Failed to load scenarios. Please try again."},"session":{"refreshed_retry":"Session refreshed. Please try again."},"generation":{"not_found":"Generation not found","failed":"Generation failed"},"auth":{"create_account_title":"Ready for this?","welcome_back_title":"Welcome back","register_subtitle":"Pick a model. Generate. Private. No card.","login_subtitle":"Pick up where you left off \u2014 it\u0027s still here.","create_account_button":"Sign up free","log_in_button":"Log In","session_expired":"Your session has expired. Please refresh the page and try again.","check_input":"Please check your input and try again.","too_many_attempts":"Too many attempts. Please wait a moment and try again.","registration_error":"An error occurred during registration. Please try again.","login_error":"An error occurred during login. Please try again."},"user":{"refresh_balance_failed":"Failed to refresh balance","tokens_added":"Added :count VIZ tokens","tokens_used":"Used :count VIZ tokens","generation_started":"Generation started","token_purchase":"Token purchase"},"error_handling":{"generic_retry":"An error occurred. Please try again.","login_required":"Please log in to continue.","permission_denied":"You do not have permission to perform this action.","not_found":"The requested resource was not found.","too_many_requests":"Too many requests. Please wait a moment and try again.","server_error":"Server error. Please try again later.","invali
319d_request":"Invalid request. Please check your input and try again.","network_check":"Network error. Please check your connection and try again.","offline_check":"You appear to be offline. Please check your internet connection.","media_failed":"Failed to load :type","hide":"Hide","network_retry":"Network error. Please try again.","offline_short":"You appear to be offline. Please check your connection.","media_retrying":"Some images failed to load. They will be retried automatically.","something_wrong":"Something went wrong. Please try again.","unexpected":"An unexpected error occurred. Please try again."},"accessibility":{"focused_filters":"Focused on gallery filters","focused_grid":"Focused on gallery grid","keyboard_shortcuts":"Keyboard Shortcuts","show_help":"Show this help","focus_filters":"Focus on filters","focus_gallery":"Focus on gallery","close_modal_help":"Close modal\/help","navigate_modal":"Navigate in modal","activate_buttons":"Activate buttons","close":"Close","gallery_filters_search":"Gallery filters and search","gallery_images_videos":"Gallery images and videos"}};
320        </script>
320
321
322        <link rel="modulepreload" as="script" href="https://sinfulx.ai/build/assets/app-BqNiwnxc.js" /><link rel="modulepreload" as="script" href="https://sinfulx.ai/build/assets/feature-gallery-tmdFAizr.js" /><link rel="modulepreload" as="script" href="https://sinfulx.ai/build/assets/shared-helpers-BfQz8lRr.js" /><link rel="modulepreload" as="script" href="https://sinfulx.ai/build/assets/bootstrap-B_i2H-En.js" /><link rel="modulepreload" as="script" href="https://sinfulx.ai/build/assets/vendor-core-BrqHA8J_.js" /><link rel="modulepreload" as="script" href="https://sinfulx.ai/build/assets/vendor-alpine-CJ7Fuj40.js" /><link rel="modulepreload" as="script" href="https://sinfulx.ai/build/assets/membersPostGateModal-CG1XZRCY.js" />
322<script type="module" src="https://sinfulx.ai/build/assets/app-BqNiwnxc.js" data-navigate-track="reload"></script>
322
323        <!-- Gallery Animations - For gallery pages -->
324        
325        <!-- Cookie Consent Styles: load async so the banner CSS does not block public LCP text. -->
326                <link rel="preload" href="https://sinfulx.ai/vendor/devrabiul/laravel-cookie-consent/css/style.css" as="style" fetchpriority="low">
327        <link rel="stylesheet" href="https://sinfulx.ai/vendor/devrabiul/laravel-cookie-consent/css/style.css" media="print" onload="this.media='all'">
328        <noscript><link rel="stylesheet" href="https://sinfulx.ai/vendor/devrabiul/laravel-cookie-consent/css/style.css"></noscript>
329
330                
331        <!-- Alpine auth store (needs server-side JSON values) -->
332        
332<script>
333            document.addEventListener('alpine:init', () => {
334                Alpine.store('auth', {
335                    userId: null,
336                    isAuthenticated: false                });
337            });
338        </script>
338
339
340        <!-- Reveal Content Script - Removes loader overlay when CSS is loaded -->
341        
341<script>
342    (function() {
343        var isHomeLoader = false;
344        var minimumDelay = isHomeLoader ? 2200 : 0;
345        var removeDelay = isHomeLoader ? 800 : 300;
346        var loaded = false;
347        var minimumElapsed = minimumDelay === 0;
348
349        function removeLoader() {
350            var loader = document.getElementById('page-loader');
351            if (!loader) return;
352
353            document.body.classList.remove('loading');
354            loader.classList.add('hidden');
355            loader.classList.add('loaded');
356
357            setTimeout(function() {
358                if (loader && loader.parentNode) loader.remove();
359            }, removeDelay);
360        }
361
362        function revealContent() {
363            if (!loaded || !minimumElapsed) return;
364            removeLoader();
365        }
366
367        function markLoaded() {
368            loaded = true;
369            revealContent();
370        }
371
372        if (document.readyState === 'loading') {
373            document.addEventListener('DOMContentLoaded', function() {
374                document.body.classList.add('loading');
375            }, { once: true });
376        } else {
377            document.body.classList.add('loading');
378        }
379
380        if (document.readyState === 'complete' || document.readyState === 'interactive') {
381            markLoaded();
382        } else {
383            document.addEventListener('DOMContentLoaded', markLoaded, { once: true });
384        }
385
386        if (minimumDelay > 0) {
387            setTimeout(function() {
388                minimumElapsed = true;
389                revealContent();
390            }, minimumDelay);
391        }
392
393        setTimeout(removeLoader, isHomeLoader ? 6000 : 3000);
394    })();
395</script>
395
396    </head>
397    <body class="font-sans antialiased text-gray-200 bg-dark-100" style="background-color: #000000;">
398        <!-- Skip Link for Accessibility -->
399        <a href="#main-content" class="sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-100 focus:px-4 focus:py-2 focus:bg-red-600 focus:text-white focus:rounded-lg focus:outline-none  focus:ring-offset-2 focus:ring-offset-black">
400            Skip to main content
401        </a>
402
403        <!-- Critical Page Loader - Shows immediately, prevents white flash -->
404        <div id="page-loader" class="" role="status" aria-label="Loading">
405            <img src="https://sinfulx.ai/images/sinful-ai-logo.png"
406             alt="Loading SinfulX AI"
407             width="240"
408             height="52"
409             fetchpriority="auto"
410             decoding="async"
411             class="loader-logo">
412    </div>
413
414        <!-- Age Disclaimer Modal (must be first - blocks content until verified) -->
415        <dialog x-data="ageDisclaimerModal({
416            isBot: false,
417            isAuthenticated: false,
418            isNsfwContent: false
419        })"
420        x-ref="dialog"
421        x-init="init()"
422        x-cloak
423        data-age-disclaimer-dialog
424        class="fixed inset-0 z-100 bg-transparent p-0 m-0 max-w-none max-h-none w-screen h-screen border-none"
425        role="dialog"
426        aria-modal="true"
427        aria-labelledby="age-disclaimer-title"
428        @cancel.prevent>
429
430    <div class="fixed inset-0 flex items-center justify-center p-4">
431
432        <div class="bg-gray-900/95 backdrop-blur-xl border border-white/10 rounded-2xl max-w-md w-full p-8 text-center shadow-2xl">
433
434            <div class="mb-6">
435                <img src="https://sinfulx.ai/images/sinful-ai-logo.png"
436                     alt="SinfulX AI"
437                     width="584"
438                     height="126"
439                     loading="eager"
440                     decoding="async"
441                     fetchpriority="low"
442                     class="h-10 w-auto mx-auto"
443                     onerror="this.style.display='none'">
444            </div>
445
446            
447            <p id="age-disclaimer-title" class="text-2xl font-semibold text-white mb-4">
448                Too hot for anyone under 18
449            </p>
450
451            <p class="text-gray-300 text-sm leading-relaxed mb-4">
452                By entering, you confirm that you agree to our
453                <a href="https://sinfulx.ai/legal/terms" target="_blank" rel="noopener" class="text-red-400 hover:text-red-300 underline">Terms of Service</a>,
454                <a href="https://sinfulx.ai/legal/privacy" target="_blank" rel="noopener" class="text-red-400 hover:text-red-300 underline">Privacy Policy</a>,
455                and are at least 18 years old or the age of majority in your jurisdiction.
456            </p>
457
458            <p class="text-gray-400 text-xs leading-relaxed mb-8">
459                This website contains age-restricted adult content.
460                If you are under 18 years of age, or the age of majority in your jurisdiction, you are not authorized to enter.
461            </p>
462
463            
464            <div class="flex flex-col sm:flex-row gap-3 justify-center">
465                <button type="button"
466                        data-age-confirm
467                        class="px-8 py-3 bg-red-600 hover:bg-red-500 text-white font-semibold rounded-lg transition-all duration-200 transform hover:scale-[1.02] active:scale-[0.98] focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 focus:ring-offset-gray-900">
468                    I&#039;m 18. Let me in.
469                </button>
470                <button type="button"
471                        data-age-leave
472                        class="px-8 py-3 bg-transparent border border-white/20 text-gray-300 hover:text-white hover:border-white/40 rounded-lg transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-white/20 focus:ring-offset-2 focus:ring-offset-gray-900">
473                    Leave
474                </button>
475            </div>
476
477        </div>
478    </div>
479</dialog>
480
481<style>
482    dialog[aria-labelledby="age-disclaimer-title"] {
483        opacity: 0;
484        transform: scale(0.95);
485        transition: opacity 0.3s ease-out, transform 0.3s ease-out;
486    }
487    dialog[aria-labelledby="age-disclaimer-title"][open] {
488        opacity: 1;
489        transform: scale(1);
490    }
491    dialog[aria-labelledby="age-disclaimer-title"]::backdrop {
492        background: rgba(0, 0, 0, 1);
493    }
494</style>
495
496<script>
497(function() {
498    if (window.__sxAgeDisclaimerBootstrap) return;
499    window.__sxAgeDisclaimerBootstrap = true;
500
501    const isBot = false;
502    const isAuthenticated = false;
503    const isNsfwContent = false;
504
505    function hasLocalStorage() {
506        try {
507            localStorage.setItem('__sx_test', '__sx_test');
508            localStorage.removeItem('__sx_test');
509            return true;
510        } catch (e) {
511            return false;
512        }
513    }
514
515    function isVerified() {
516        return hasLocalStorage() && localStorage.getItem('sx_age_verified') === 'true';
517    }
518
519    function isNsfwPage() {
520        const path = window.location.pathname;
521        if (path === '/') return true;
522
523        const nsfwPaths = ['/gallery', '/generate', '/generator', '/model', '/blog', '/explore'];
524        return nsfwPaths.some(pattern => path.startsWith(pattern)) || isNsfwContent;
525    }
526
527    function openDialog(dialog) {
528        dialog.removeAttribute('x-cloak');
529
530        if (dialog.open) return;
531        if (typeof dialog.showModal === 'function') {
532            dialog.showModal();
533            return;
534        }
535
536        dialog.setAttribute('open', '');
537    }
538
539    function closeDialog(dialog) {
540        if (typeof dialog.close === 'function') {
541            dialog.close();
542            return;
543        }
544
545        dialog.removeAttribute('open');
546    }
547
548    function init() {
549        if (isBot || isAuthenticated || isVerified() || !isNsfwPage()) return;
550
551        const dialog = document.querySelector('[data-age-disclaimer-dialog]');
552        if (!dialog) return;
553
554        openDialog(dialog);
555
556        dialog.querySelector('[data-age-confirm]')?.addEventListener('click', function() {
557            if (hasLocalStorage()) {
558                localStorage.setItem('sx_age_verified', 'true');
559            }
560            closeDialog(dialog);
561        });
562
563        dialog.querySelector('[data-age-leave]')?.addEventListener('click', function() {
564            window.location.href = 'https://www.google.com';
565        });
566    }
567
568    if (document.readyState === 'loading') {
569        document.addEventListener('DOMContentLoaded', init, { once: true });
570    } else {
571        init();
572    }
573})();
574</script>
574
575
576        <!-- Translation Notice Banner -->
577        
578        <div
579    data-ds-toast
580    role="status"
581    aria-live="polite"
582    aria-relevant="additions"
583    x-data="toastNotifications(5)"
584    x-on:toast.window="addToast($event.detail)"
585    x-on:show-toast.window="addToast($event.detail)"
586    x-on:show-notification.window="addToast($event.detail)"
587    class="fixed z-50 flex flex-col gap-2 w-full max-w-sm pointer-events-none bottom-4 right-4"
588>
589    <template x-for="toast in toasts" :key="toast.id">
590        <div
591            x-show="toast.visible"
592            x-transition:enter="transform ease-out duration-300"
593            x-transition:enter-start="translate-y-2 opacity-0"
594            x-transition:enter-end="translate-y-0 opacity-100"
595            x-transition:leave="transform ease-in duration-200"
596            x-transition:leave-start="translate-y-0 opacity-100"
597            x-transition:leave-end="translate-y-2 opacity-0"
598            class="flex items-center gap-3 px-4 py-3 rounded-lg shadow-lg backdrop-blur-sm cursor-pointer pointer-events-auto"
599            :class="{
600                'bg-green-600/90 text-white': toast.type === 'success',
601                'bg-red-600/90 text-white': toast.type === 'error',
602                'bg-yellow-500/90 text-black': toast.type === 'warning',
603                'bg-blue-600/90 text-white': toast.type === 'info',
604                'bg-dark-300/95 text-white border border-dark-400': !['success', 'error', 'warning', 'info'].includes(toast.type)
605            }"
606            @click="removeToast(toast.id)"
607        >
608            <p class="flex-1 text-sm font-medium" x-text="toast.message"></p>
609            <button
610                type="button"
611                @click.stop="removeToast(toast.id)"
612                class="shrink-0 opacity-70 hover:opacity-100 transition-opacity"
613                aria-label="Close notification"
614            >
615                <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
616            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
617        </svg>
618                    </button>
619        </div>
620    </template>
621</div>
622
623        <div x-persist="background-underlay">
624        <!-- Persistent dark underlay - prevents white flash during Livewire Navigate -->
625        <div class="fixed inset-0 bg-black" style="z-index: -1;" aria-hidden="true"></div>
626        </div>
627
628        <!-- Black background for all pages -->
629        <div class="fixed inset-0 z-0 bg-black"></div>
630
631        <div class="relative z-10 min-h-screen flex flex-col pt-16 lg:pt-20">
632            <!-- Website Announcement Banner -->
633            
634            <div x-data="{
635    init() {
636        // Initialize user store with server data
637        const userStore = Alpine.store('user');
638        userStore.init({
639            id: null,
640            username: '',
641            name: '',
642            email: '',
643            tokenBalance: 0,
644            isAdmin: false,
645            isSubscriber: false
646        });
647    }
648}"
649x-init="init()">
650
651<nav class="bg-gray-950/50 backdrop-blur-sm border-b border-red-500/30 z-50 fixed top-0 left-0 right-0" role="navigation" aria-label="Main navigation">
652    <!-- Primary Navigation Menu -->
653    <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
654        <div class="flex justify-between h-16 lg:h-20">
655            <div class="flex items-center space-x-8">
656                <!-- Logo -->
657                <div class="shrink-0 flex items-center">
658                    <a href="https://sinfulx.ai" class="flex items-center logo-link">
659                        <img src="https://sinfulx.ai/images/sinful-ai-logo.png"
660                            alt="SinfulX AI - AI Content Generation Platform"
661                            width="584"
662                            height="126"
663                            class="h-9 w-auto transition-colors duration-200 filter brightness-110 lg:h-12" />
664                    </a>
665                </div>
666            </div>
667
668             <!-- Navigation Tabs - Desktop -->
669             <div class="hidden lg:flex lg:items-center lg:space-x-6">
670                 <a href="https://sinfulx.ai/explore" class="text-gray-300 hover:text-white transition-colors font-medium">Explore</a>
671                 <a href="https://sinfulx.ai/scenarios" class="text-gray-300 hover:text-white transition-colors font-medium">Scenarios</a>
672                 <a href="https://sinfulx.ai/blog" class="text-gray-300 hover:text-white transition-colors font-medium">Blog</a>
673                 <!-- <a href="https://sinfulx.ai/learning-hub" class="text-gray-300 hover:text-white transition-colors font-medium">Learning</a> -->
674             </div>
675
676             <!-- Right Side: Token Balance + Actions + Account -->
677             <div class="hidden lg:flex lg:items-center lg:space-x-4">
678                                 <!-- Guest Authentication Buttons -->
679                <div class="flex items-center gap-4">
680                    <button @click="$dispatch('open-login-modal')"
681                        data-auth-modal-trigger="login"
682                        type="button"
683                        style="touch-action: manipulation; -webkit-tap-highlight-color: transparent;"
684                        class="px-6 py-2.5 bg-gray-900/80 backdrop-blur-sm border border-gray-500/80 text-gray-300 rounded-full hover:bg-white hover:text-black hover:border-gray-300 transition-all duration-300 font-medium cursor-pointer shadow-lg hover:shadow-white/20"
685                        aria-label="Open login modal">
686                        Login
687                    </button>
688                    <button @click="$dispatch('open-register-modal')"
689                        data-auth-modal-trigger="register"
690                        type="button"
691                        style="touch-action: manipulation; -webkit-tap-highlight-color: transparent;"
692                        class="px-6 py-2.5 bg-red-600/90 backdrop-blur-sm border border-red-500/50 text-white rounded-full hover:bg-red-500 hover:border-red-400 transition-all duration-300 font-medium cursor-pointer shadow-lg hover:shadow-red-500/30 transform hover:scale-[1.02]"
693                        aria-label="Open generator modal">
694                        Generate
695                    </button>
696                </div>
697                            </div>
698
699            <!-- Mobile: Hamburger Menu Button -->
700            <div class="lg:hidden flex items-center">
701                <button @click="$store.navigation.toggleMobileMenu()"
702                        class="flex items-center gap-2 px-3 py-2 rounded-lg text-white hover:bg-white/10 transition-all"
703                        :aria-expanded="$store.navigation.mobileMenuOpen.toString()"
704                        aria-label="Toggle mobile menu">
705                    <svg class="h-6 w-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
706                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
707                    </svg>
708                </button>
709            </div>
710        </div>
711    </div>
712
713</nav>
714
715<!-- Mobile Menu Backdrop Overlay -->
716<div x-show="$store.navigation.mobileMenuOpen"
717     x-cloak
718     @click="$store.navigation.closeMobileMenu()"
719     x-transition:enter="transition-opacity ease-out duration-300"
720     x-transition:enter-start="opacity-0"
721     x-transition:enter-end="opacity-100"
722     x-transition:leave="transition-opacity ease-in duration-200"
723     x-transition:leave-start="opacity-100"
724     x-transition:leave-end="opacity-0"
725     class="lg:hidden fixed top-0 inset-x-0 bottom-0 bg-black/80 backdrop-blur-sm z-40"
726     style="display: none;">
727</div>
728
729<!-- Mobile Menu (Full-Screen Slide-In) -->
730<div x-show="$store.navigation.mobileMenuOpen"
731     x-cloak
732     x-transition:enter="transition ease-out duration-300"
733     x-transition:enter-start="transform translate-x-full"
734     x-transition:enter-end="transform translate-x-0"
735     x-transition:leave="transition ease-in duration-200"
736     x-transition:leave-start="transform translate-x-0"
737     x-transition:leave-end="transform translate-x-full"
738     class="lg:hidden fixed top-0 bottom-0 right-0 w-full sm:w-96 bg-gray-950 border-l border-red-500/30 z-50 flex flex-col"
739     style="display: none;">
740
741    <!-- Fixed Header with Close Button -->
742    <div class="flex items-center justify-between px-6 py-5 border-b border-gray-800/50 shrink-0">
743        <a href="https://sinfulx.ai" class="text-red-500 text-xl font-bold">SinfulX AI</a>
744        <button @click="$store.navigation.closeMobileMenu()" class="p-2 rounded-lg hover:bg-white/10 transition-colors">
745            <svg class="w-6 h-6 text-gray-400 hover:text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
746                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
747            </svg>
748        </button>
749    </div>
750
751    <!-- Scrollable Content Area -->
752    <div class="flex-1 overflow-y-auto px-5 py-4">
753                <!-- Guest Options for Mobile -->
754        <div class="space-y-4">
755            <!-- Navigation Links for Guests -->
756            <div class="space-y-0.5">
757                <a href="https://sinfulx.ai"
758                   @click="$store.navigation.closeMobileMenu()"
759                   class="flex items-center gap-3 px-3 py-3 rounded-lg font-medium transition-colors text-gray-300 hover:bg-white/10 hover:text-white">
760                    <svg class="w-5 h-5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
761                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"/>
762                    </svg>
763                    Home
764                </a>
765
766                <a href="https://sinfulx.ai/explore"
767                   @click="$store.navigation.closeMobileMenu()"
768                   class="flex items-center gap-3 px-3 py-3 rounded-lg font-medium transition-colors text-gray-300 hover:bg-white/10 hover:text-white">
769                    <svg class="w-5 h-5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
770                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/>
771                    </svg>
772                    Explore
773                </a>
774
775                <a href="https://sinfulx.ai/scenarios"
776                   @click="$store.navigation.closeMobileMenu()"
777                   class="flex items-center gap-3 px-3 py-3 rounded-lg font-medium transition-colors text-gray-300 hover:bg-white/10 hover:text-white">
778                    <svg class="w-5 h-5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
779                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"/>
780                    </svg>
781                    Scenarios
782                </a>
783
784                <a href="https://sinfulx.ai/blog"
785                   @click="$store.navigation.closeMobileMenu()"
786                   class="flex items-center gap-3 px-3 py-3 rounded-lg font-medium transition-colors text-gray-300 hover:bg-white/10 hover:text-white">
787                    <svg class="w-5 h-5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
788                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 20H5a2 2 0 01-2-2V6a2 2 0 012-2h10a2 2 0 012 2v1m2 13a2 2 0 01-2-2V7m2 13a2 2 0 002-2V9a2 2 0 00-2-2h-2m-4-3H9M7 16h6M7 8h6v4H7V8z"/>
789                    </svg>
790                    Blog
791                </a>
792
793                <a href="https://sinfulx.ai/legal/affiliates"
794                   @click="$store.navigation.closeMobileMenu()"
795                   class="flex items-center gap-3 px-3 py-3 rounded-lg font-medium transition-colors text-gray-300 hover:bg-white/10 hover:text-white">
796                    <svg class="w-5 h-5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
797                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/>
798                    </svg>
799                    Affiliate
800                </a>
801            </div>
802
803            <!-- Welcome Card -->
804            <div class="bg-linear-to-br from-red-500/10 to-red-600/10 rounded-xl p-5 border border-red-500/20">
805                <p class="text-white font-semibold text-lg mb-1">Welcome to SinfulX</p>
806                <p class="text-gray-400 text-sm mb-5">Pick a model. Pick a scene. Generate — private by default.</p>
807
808                <button @click="$store.navigation.closeMobileMenu(); $dispatch('open-login-modal')"
809                    data-auth-modal-trigger="login"
810                    type="button"
811                    style="touch-action: manipulation; -webkit-tap-highlight-color: transparent;"
812                    class="flex items-center justify-center gap-2 w-full mb-3 px-4 py-3 bg-white text-black rounded-xl font-medium hover:bg-gray-100 transition-all duration-300 shadow-lg">
813                    <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
814                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 16l-4-4m0 0l4-4m-4 4h14m-5 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h7a3 3 0 013 3v1"/>
815                    </svg>
816                    Login
817                </button>
818
819                <button @click="$store.navigation.closeMobileMenu(); $dispatch('open-register-modal')"
820                    data-auth-modal-trigger="register"
821                    type="button"
822                    style="touch-action: manipulation; -webkit-tap-highlight-color: transparent;"
823                    class="flex items-center justify-center gap-2 w-full px-4 py-3 bg-linear-to-r from-red-500 to-red-600 text-white rounded-xl font-medium hover:from-red-600 hover:to-red-700 transition-all duration-300 shadow-lg hover:shadow-red-500/50">
824                    <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
825                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"/>
826                    </svg>
827                    Create Account
828                </button>
829            </div>
830        </div>
831            </div>
832</div>
833
834<!-- Red line separator for non-home pages -->
835<div class="w-full h-px bg-red-500"></div>
836
837</div> <!-- End Navigation System Wrapper -->
838
839            <div class="flex-1">
840                <!-- Page Heading -->
841                
842                
843                                                    
844                <!-- Page Content -->
845                <main
846                    id="main-content"
847                    class="pb-6 pt-6"
848                                    >
849                                            <div class="relative min-h-screen bg-black">
850    <div class="pointer-events-none absolute inset-x-0 -top-32 h-80 bg-[radial-gradient(ellipse_at_top,rgba(220,38,38,0.16),transparent_70%)]" aria-hidden="true"></div>
851
852    <div class="relative max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-10 sm:py-14">
853        <nav class="mb-8" aria-label="Breadcrumb">
854            <ol class="flex flex-wrap items-center gap-2 text-sm">
855                <li>
856                    <a href="https://sinfulx.ai" class="text-gray-400 hover:text-white transition-colors">
857                        Home
858                    </a>
859                </li>
860                <li>
861                    <svg class="w-3 h-3 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
862            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
863        </svg>
864                        </li>
865                                    <li>
866                        <a href="https://sinfulx.ai/legal" class="text-gray-400 hover:text-white transition-colors">
867                            Legal
868                        </a>
869                    </li>
870                    <li>
871                        <svg class="w-3 h-3 text-gray-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
872            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
873        </svg>
874                            </li>
875                                <li class="text-white font-medium">
876                    Terms of Service
877                </li>
878            </ol>
879        </nav>
880
881        <header class="mb-8 sm:mb-10">
882            <div class="flex items-start gap-4 sm:gap-5">
883                <div class="flex h-14 w-14 sm:h-16 sm:w-16 items-center justify-center rounded-2xl bg-red-500/10 ring-1 ring-red-500/20 shrink-0">
884                    <svg class="w-8 h-8 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
885            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
886        </svg>
887                        </div>
888                <div class="min-w-0">
889                    <h1 class="text-3xl sm:text-4xl font-bold tracking-tight text-white">Terms of Service</h1>
890                                            <p class="mt-3 inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-1 text-xs sm:text-sm text-gray-400">
891                            <svg class="w-3 h-3 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
892            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/>
893        </svg>
894                                    <span>Last updated: June 6, 2025</span>
895                        </p>
896                                    </div>
897            </div>
898        </header>
899
900                    <div class="lg:hidden mb-6">
901                <details class="group rounded-xl border border-white/10 bg-white/[0.03] px-4 py-3">
902                    <summary class="flex cursor-pointer list-none items-center justify-between text-sm font-semibold text-white [&::-webkit-details-marker]:hidden">
903                        <span>On this page</span>
904                        <svg class="w-4 h-4 text-gray-500 transition-transform group-open:rotate-180" fill="none" stroke="currentColor" viewBox="0 0 24 24">
905            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
906        </svg>
907                            </summary>
908                    <nav class="mt-3 space-y-0.5 border-t border-white/10 pt-3" aria-label="On this page">
909                                                    <a href="#age" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
910                                1. Age Requirement
911                            </a>
912                                                    <a href="#nature" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
913                                2. Nature of Content
914                            </a>
915                                                    <a href="#restrictions" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
916                                3. Content Restrictions and User Accountability
917                            </a>
918                                                    <a href="#acceptable" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
919                                4. Acceptable Use Policy
920                            </a>
921                                                    <a href="#payments" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
922                                5. Subscriptions &amp; Payments
923                            </a>
924                                                    <a href="#ip" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
925                                6. Intellectual Property
926                            </a>
927                                                    <a href="#ownership" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
928                                7. Content Ownership &amp; Licensing
929                            </a>
930                                                    <a href="#review" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
931                                8. Content Review &amp; Removal
932                            </a>
933                                                    <a href="#9-termination-of-access" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
934                                9. Termination of Access
935                            </a>
936                                                    <a href="#10-indemnity" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
937                                10. Indemnity
938                            </a>
939                                                    <a href="#11-limitations-of-liability" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
940                                11. Limitations of Liability
941                            </a>
942                                                    <a href="#12-governing-law" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
943                                12. Governing Law
944                            </a>
945                                                    <a href="#13-jurisdiction-specific-responsibility" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
946                                13. Jurisdiction-Specific Responsibility
947                            </a>
948                                                    <a href="#14-modifications-to-terms" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
949                                14. Modifications to Terms
950                            </a>
951                                                    <a href="#contact" class="block rounded-md px-2 py-1.5 text-sm text-gray-400 hover:bg-white/5 hover:text-red-400 transition-colors">
952                                15. Contact Information
953                            </a>
954                                            </nav>
955                </details>
956            </div>
957        
958        <div class="lg:grid lg:grid-cols-[220px_minmax(0,1fr)] lg:gap-10 xl:grid-cols-[240px_minmax(0,1fr)] xl:gap-12">
959                            <aside class="hidden lg:block">
960                    <nav class="sticky top-24" aria-label="On this page">
961                        <p class="mb-3 text-[11px] font-semibold uppercase tracking-[0.16em] text-red-400">
962                            On this page
963                        </p>
964                        <ol class="space-y-0.5 border-l border-white/10">
965                                                            <li>
966                                    <a href="#age" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
967                                        1. Age Requirement
968                                    </a>
969                                </li>
970                                                            <li>
971                                    <a href="#nature" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
972                                        2. Nature of Content
973                                    </a>
974                                </li>
975                                                            <li>
976                                    <a href="#restrictions" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
977                                        3. Content Restrictions and User Accountability
978                                    </a>
979                                </li>
980                                                            <li>
981                                    <a href="#acceptable" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
982                                        4. Acceptable Use Policy
983                                    </a>
984                                </li>
985                                                            <li>
986                                    <a href="#payments" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
987                                        5. Subscriptions &amp; Payments
988                                    </a>
989                                </li>
990                                                            <li>
991                                    <a href="#ip" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
992                                        6. Intellectual Property
993                                    </a>
994                                </li>
995                                                            <li>
996                                    <a href="#ownership" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
997                                        7. Content Ownership &amp; Licensing
998                                    </a>
999                                </li>
1000                                                            <li>
1001                                    <a href="#review" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
1002                                        8. Content Review &amp; Removal
1003                                    </a>
1004                                </li>
1005                                                            <li>
1006                                    <a href="#9-termination-of-access" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
1007                                        9. Termination of Access
1008                                    </a>
1009                                </li>
1010                                                            <li>
1011                                    <a href="#10-indemnity" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
1012                                        10. Indemnity
1013                                    </a>
1014                                </li>
1015                                                            <li>
1016                                    <a href="#11-limitations-of-liability" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
1017                                        11. Limitations of Liability
1018                                    </a>
1019                                </li>
1020                                                            <li>
1021                                    <a href="#12-governing-law" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
1022                                        12. Governing Law
1023                                    </a>
1024                                </li>
1025                                                            <li>
1026                                    <a href="#13-jurisdiction-specific-responsibility" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
1027                                        13. Jurisdiction-Specific Responsibility
1028                                    </a>
1029                                </li>
1030                                                            <li>
1031                                    <a href="#14-modifications-to-terms" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
1032                                        14. Modifications to Terms
1033                                    </a>
1034                                </li>
1035                                                            <li>
1036                                    <a href="#contact" class="block border-l-2 border-transparent -ml-px pl-4 py-1.5 text-sm text-gray-400 hover:border-red-500 hover:text-white transition-colors">
1037                                        15. Contact Information
1038                                    </a>
1039                                </li>
1040                                                    </ol>
1041                    </nav>
1042                </aside>
1043            
1044            <div>
1045                <div class="rounded-2xl border border-white/10 bg-zinc-950/70 shadow-[0_0_0_1px_rgba(255,255,255,0.02)] overflow-hidden">
1046                    <div class="px-5 py-7 sm:px-8 sm:py-10">
1047                        <div class="legal-prose max-w-none">
1048                            <p class="text-gray-300 mb-6">
1049            Welcome to SinfulX.ai, a digital platform owned and operated by <strong>Teletab Ltd Limited</strong>, registered in Cyprus. By accessing or using our website and services (collectively, the "Service"), you agree to comply with these Terms of Service ("Terms"). If you do not accept these Terms, please refrain from using the Service.
1050        </p>
1051
1052        <h2 id="age">1. Age Requirement</h2>
1053        <div class="not-prose my-6">
1054            <div class="border rounded-lg bg-red-900/30 border-red-600/50 text-red-200 p-4"
1055     >
1056    <div class="flex items-start gap-3">
1057        <!-- Icon -->
1058                <div class="shrink-0 text-red-400">
1059                                <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1060                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"/>
1061                    </svg>
1062                            </div>
1063        
1064        <!-- Content -->
1065        <div class="flex-1 min-w-0">
1066                        <h4 class="font-medium text-sm text-red-400">18+ Only:</h4>
1067                                    <div class="text-sm mt-1 ">
1068                The Service is intended strictly for individuals who are 18 years or older. By using SinfulX.ai, you affirm that you meet this age requirement.
1069            </div>
1070                    </div>
1071
1072        <!-- Dismiss Button -->
1073            </div>
1074
1075    <!-- Optional actions slot -->
1076    </div>
1077        </div>
1078
1079        <h2 id="nature">2. Nature of Content</h2>
1080        <p>SinfulX.ai exclusively generates fictional adult-themed images and videos using artificial intelligence. All content is digitally created; no real individuals are depicted, and no user-uploaded content is accepted. Our AI models are designed with safeguards to prevent the creation of illegal or harmful material, including but not limited to:</p>
1081        <ul class="not-prose my-5 space-y-2">
1082                            <li class="flex items-start gap-3 rounded-xl border border-red-500/15 bg-red-950/20 px-4 py-3">
1083                    <svg class="w-4 h-4 mt-0.5 shrink-0 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1084            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"/>
1085        </svg>
1086                            <span class="text-sm text-gray-200">AI-generated child pornography</span>
1087                </li>
1088                            <li class="flex items-start gap-3 rounded-xl border border-red-500/15 bg-red-950/20 px-4 py-3">
1089                    <svg class="w-4 h-4 mt-0.5 shrink-0 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1090            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"/>
1091        </svg>
1092                            <span class="text-sm text-gray-200">Non-consensual deepfakes</span>
1093                </li>
1094                            <li class="flex items-start gap-3 rounded-xl border border-red-500/15 bg-red-950/20 px-4 py-3">
1095                    <svg class="w-4 h-4 mt-0.5 shrink-0 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1096            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"/>
1097        </svg>
1098                            <span class="text-sm text-gray-200">Likenesses of real people without legal consent</span>
1099                </li>
1100                    </ul>
1101        <div class="not-prose my-6 space-y-3">
1102            <div class="border rounded-lg bg-blue-900/30 border-blue-600/50 text-blue-200 p-4"
1103     >
1104    <div class="flex items-start gap-3">
1105        <!-- Icon -->
1106                <div class="shrink-0 text-blue-400">
1107                                <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1108                        <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"/>
1109                    </svg>
1110                            </div>
1111        
1112        <!-- Content -->
1113        <div class="flex-1 min-w-0">
1114                        <h4 class="font-medium text-sm text-blue-400">Fictional Content Disclaimer:</h4>
1115                                    <div class="text-sm mt-1 ">
1116                All characters, personas, and physical attributes depicted in AI-generated content are entirely fictional. Any resemblance to real persons, living or deceased, is purely coincidental and unintentional. SinfulX.ai does not intentionally create or permit the creation of content depicting identifiable real individuals.
1117            </div>
1118                    </div>
1119
1120        <!-- Dismiss Button -->
1121            </div>
1122
1123    <!-- Optional actions slot -->
1124    </div>
1125            <div class="border rounded-lg bg-red-900/30 border-red-600/50 text-red-200 p-4"
1126     >
1127    <div class="flex items-start gap-3">
1128        <!-- Icon -->
1129                <div class="shrink-0 text-red-400">
1130                                <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1131                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"/>
1132                    </svg>
1133                            </div>
1134        
1135        <!-- Content -->
1136        <div class="flex-1 min-w-0">
1137                        <h4 class="font-medium text-sm text-red-400">Strict Enforcement:</h4>
1138                                    <div class="text-sm mt-1 ">
1139                Violation of these restrictions will result in immediate termination of access and may trigger legal reporting obligations.
1140            </div>
1141                    </div>
1142
1143        <!-- Dismiss Button -->
1144            </div>
1145
1146    <!-- Optional actions slot -->
1147    </div>
1148        </div>
1149
1150        <h2 id="restrictions">3. Content Restrictions and User Accountability</h2>
1151        <p>SinfulX.ai strictly prohibits the creation, attempted creation, distribution, or promotion of any content that is illegal, obscene, or harmful. This includes but is not limited to:</p>
1152        <ul class="not-prose my-5 space-y-2">
1153                            <li class="flex items-start gap-3 rounded-xl border border-white/10 bg-white/[0.03] px-4 py-3">
1154                    <svg class="w-4 h-4 mt-0.5 shrink-0 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1155            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"/>
1156        </svg>
1157                            <span class="text-sm text-gray-200">Depictions of minors in sexual contexts (whether real, implied, or fictional)</span>
1158                </li>
1159                            <li class="flex items-start gap-3 rounded-xl border border-white/10 bg-white/[0.03] px-4 py-3">
1160                    <svg class="w-4 h-4 mt-0.5 shrink-0 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1161            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"/>
1162        </svg>
1163                            <span class="text-sm text-gray-200">Non-consensual or violent sexual content</span>
1164                </li>
1165                            <li class="flex items-start gap-3 rounded-xl border border-white/10 bg-white/[0.03] px-4 py-3">
1166                    <svg class="w-4 h-4 mt-0.5 shrink-0 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1167            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"/>
1168        </svg>
1169                            <span class="text-sm text-gray-200">Sexual abuse, torture, or criminal violence</span>
1170                </li>
1171                            <li class="flex items-start gap-3 rounded-xl border border-white/10 bg-white/[0.03] px-4 py-3">
1172                    <svg class="w-4 h-4 mt-0.5 shrink-0 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1173            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"/>
1174        </svg>
1175                            <span class="text-sm text-gray-200">Hate-based imagery targeting race, gender, religion, or sexual orientation</span>
1176                </li>
1177                            <li class="flex items-start gap-3 rounded-xl border border-white/10 bg-white/[0.03] px-4 py-3">
1178                    <svg class="w-4 h-4 mt-0.5 shrink-0 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1179            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"/>
1180        </svg>
1181                            <span class="text-sm text-gray-200">Content involving bestiality, necrophilia, or other prohibited acts under international human rights standards</span>
1182                </li>
1183                    </ul>
1184        <div class="not-prose my-6">
1185            <div class="border rounded-lg bg-red-900/30 border-red-600/50 text-red-200 p-4"
1186     >
1187    <div class="flex items-start gap-3">
1188        <!-- Icon -->
1189                <div class="shrink-0 text-red-400">
1190                                <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1191                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"/>
1192                    </svg>
1193                            </div>
1194        
1195        <!-- Content -->
1196        <div class="flex-1 min-w-0">
1197                        <h4 class="font-medium text-sm text-red-400">Zero Tolerance:</h4>
1198                                    <div class="text-sm mt-1 ">
1199                Any attempt to bypass our filters, replicate restricted content, or disseminate such materials - on or off our platform - will result in immediate account termination and may be reported to relevant authorities.
1200            </div>
1201                    </div>
1202
1203        <!-- Dismiss Button -->
1204            </div>
1205
1206    <!-- Optional actions slot -->
1207    </div>
1208        </div>
1209
1210        <h2 id="acceptable">4. Acceptable Use Policy</h2>
1211        <p>Users agree not to use the Service for any unlawful, abusive, or malicious purposes. Prohibited activities include, but are not limited to:</p>
1212        <ul>
1213                            <li>Attempting to replicate real people without permission</li>
1214                            <li>Misusing AI content to harass, defame, or incite violence</li>
1215                            <li>Circumventing safety filters built into the system</li>
1216                            <li>
1216Interfering with platform operations (e.g., hacking, scraping, denial-of-service)</li>
1217                            <li>Generating or distributing content in violation of international laws</li>
1218                    </ul>
1219        <p>Any misuse may lead to permanent suspension and potential legal consequences.</p>
1220        <p>
1221            For details on how we collect, use, and protect your personal information, please refer to our
1222            <a href="https://sinfulx.ai/legal/privacy">Privacy Policy</a>.
1223        </p>
1224
1225        <h2 id="payments">5. Subscriptions &amp; Payments</h2>
1226        <div class="not-prose my-6 grid gap-3 sm:grid-cols-2">
1227                            <div class="rounded-xl border border-white/10 bg-white/[0.03] p-4">
1228                    <h3 class="text-sm font-semibold text-white mb-2">Subscriptions</h3>
1229                    <p class="text-sm text-gray-400 leading-relaxed">
1230                        SinfulX.ai offers paid memberships and one-time VIZ packs. Accounts can generate immediately after signup. A paid membership or Starter Pack unlocks the result and adds VIZ for more images and videos. Upgrading to a paid subscription unlocks advanced features and expanded generation capacity.
1231                                            </p>
1232                </div>
1233                            <div class="rounded-xl border border-white/10 bg-white/[0.03] p-4">
1234                    <h3 class="text-sm font-semibold text-white mb-2">Billing</h3>
1235                    <p class="text-sm text-gray-400 leading-relaxed">
1236                        Recurring payments are charged based on your selected subscription plan. It is your responsibility to maintain valid billing information.
1237                                            </p>
1238                </div>
1239                            <div class="rounded-xl border border-white/10 bg-white/[0.03] p-4">
1240                    <h3 class="text-sm font-semibold text-white mb-2">Cancellation</h3>
1241                    <p class="text-sm text-gray-400 leading-relaxed">
1242                        You may cancel your subscription anytime through your account dashboard. Cancellations take effect at the end of the billing period.
1243                                            </p>
1244                </div>
1245                            <div class="rounded-xl border border-white/10 bg-white/[0.03] p-4">
1246                    <h3 class="text-sm font-semibold text-white mb-2">Refund Policy</h3>
1247                    <p class="text-sm text-gray-400 leading-relaxed">
1248                        Our refund policy is outlined separately and forms part of these Terms. Refer to our
1249                                                    <a href="https://sinfulx.ai/legal/refund" class="text-red-400 hover:text-red-300 hover:underline underline-offset-2">Refund Policy</a> for details.
1250                                            </p>
1251                </div>
1252                            <div class="rounded-xl border border-white/10 bg-white/[0.03] p-4">
1253                    <h3 class="text-sm font-semibold text-white mb-2">Fee Adjustments</h3>
1254                    <p class="text-sm text-gray-400 leading-relaxed">
1255                        We may update our pricing or introduce new features with additional costs. You will be notified in advance, and ongoing use constitutes acceptance.
1256                                            </p>
1257                </div>
1258                    </div>
1259
1260        <h2 id="ip">6. Intellectual Property</h2>
1261        <div class="not-prose my-6 grid gap-3 sm:grid-cols-2">
1262                            <div class="rounded-xl border border-white/10 bg-white/[0.03] p-4">
1263                    <h3 class="text-sm font-semibold text-white mb-2">Service Content</h3>
1264                    <p class="text-sm text-gray-400 leading-relaxed">All platform-generated assets, design elements, and system logic are the intellectual property of SinfulX.ai or its licensors. Use of open-source models is governed by their original licenses (e.g., CreativeML Open RAIL-M), and our modifications are proprietary.</p>
1265                </div>
1266                            <div class="rounded-xl border border-white/10 bg-white/[0.03] p-4">
1267                    <h3 class="text-sm font-semibold text-white mb-2">User Prompts</h3>
1268                    <p class="text-sm text-gray-400 leading-relaxed">While you may submit text prompts to generate AI content, no uploaded media is accepted. Any prompts you enter are retained anonymously for platform improvement.</p>
1269                </div>
1270                    </div>
1271
1272        <h2 id="ownership">7. Content Ownership &amp; Licensing</h2>
1273                                    <p>You retain any rights associated with prompts you enter. However, by using the Service, you grant SinfulX.ai a non-exclusive, royalty-free license to use, adapt, and display resulting content for operational and marketing purposes.</p>
1274                                                <h3>Intellectual Property Ownership and Usage Rights</h3>
1275                                    <p>All AI-generated artwork, images, and related content (&quot;AI Artwork&quot;) created, generated, or otherwise produced on the SinfulX platform shall be the sole and exclusive property of SinfulX. By using the Service, the user irrevocably assigns and transfers to SinfulX all rights, title, and interest in and to the AI Artwork, including all copyright and intellectual property rights therein.</p>
1276                                    <p>
1276SinfulX shall have the unrestricted right to use, reproduce, modify, display, distribute, publish, or otherwise exploit the AI Artwork in any form and on any media, including but not limited to social media platforms, websites, marketing materials, and promotional content, without further notice or compensation to the user.</p>
1277                                    <p>The user acknowledges and agrees that no ownership rights or royalties shall arise from the creation, publication, or use of such AI Artwork on the platform.</p>
1278                                    
1279        <h2 id="review">8. Content Review &amp; Removal</h2>
1280        <p>Although users do not upload content, you may report any AI-generated output you believe violates ethical or legal standards. We will review all complaints promptly.</p>
1281        <p>Our team reserves the right to:</p>
1282        <ul>
1283                            <li>Restrict or remove generated content</li>
1284                            <li>Suspend user access</li>
1285                            <li>Comply with regulatory authorities or valid legal requests</li>
1286                    </ul>
1287        <p>
1288            See our
1289            <a href="https://sinfulx.ai/legal/content-removal">Content Removal Policy</a>
1290            and
1291            <a href="https://sinfulx.ai/legal/dmca">DMCA Takedown Policy</a>
1292            for detailed procedures regarding copyright or likeness-based content removal.
1293        </p>
1294
1295                    <h2 id="9-termination-of-access">9. Termination of Access</h2>
1296                            <p>SinfulX.ai may, at its sole discretion, terminate your access to the Service at any time, with or without cause or notice. Reasons may include violations of these Terms, legal concerns, or operational necessity.</p>
1297                                    <p>You may also terminate your account at any time via your dashboard. Following termination, certain clauses (e.g., liability limitations, indemnification) will continue to apply.</p>
1298                                                <h2 id="10-indemnity">10. Indemnity</h2>
1299                            <p>You agree to defend and indemnify SinfulX.ai, its affiliates, and personnel from any claims, damages, or expenses arising out of your use of the Service, breach of these Terms, or violation of applicable laws or rights.</p>
1300                                                <h2 id="11-limitations-of-liability">11. Limitations of Liability</h2>
1301                            <div class="not-prose my-6">
1302                                        <div class="border rounded-lg bg-yellow-900/30 border-yellow-600/50 text-yellow-200 p-4"
1303     >
1304    <div class="flex items-start gap-3">
1305        <!-- Icon -->
1306                <div class="shrink-0 text-yellow-400">
1307                                <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1308                        <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"/>
1309                    </svg>
1310                            </div>
1311        
1312        <!-- Content -->
1313        <div class="flex-1 min-w-0">
1314                        <h4 class="font-medium text-sm text-yellow-400">Disclaimer:</h4>
1315                                    <div class="text-sm mt-1 ">
1316                <p>SinfulX.ai disclaims all liability for indirect or consequential damages related to your use of the platform. We are not liable for psychological, emotional, reputational, or legal outcomes resulting from interaction with generated content. Use the platform at your own discretion and risk.</p>
1317            </div>
1318                    </div>
1319
1320        <!-- Dismiss Button -->
1321            </div>
1322
1323    <!-- Optional actions slot -->
1324    </div>
1325                </div>
1326                                <h2 id="12-governing-law">12. Governing Law</h2>
1327                            <p>These Terms are governed by the laws of Cyprus, without reference to conflict-of-law principles. All disputes must be resolved 
1327in the courts located in Cyprus.</p>
1328                                                <h2 id="13-jurisdiction-specific-responsibility">13. Jurisdiction-Specific Responsibility</h2>
1329                            <div class="not-prose my-6">
1330                                        <div class="border rounded-lg bg-red-900/30 border-red-600/50 text-red-200 p-4"
1331     >
1332    <div class="flex items-start gap-3">
1333        <!-- Icon -->
1334                <div class="shrink-0 text-red-400">
1335                                <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1336                        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2m7-2a9 9 0 11-18 0 9 9 0 0118 0z"/>
1337                    </svg>
1338                            </div>
1339        
1340        <!-- Content -->
1341        <div class="flex-1 min-w-0">
1342                        <h4 class="font-medium text-sm text-red-400">User Responsibility:</h4>
1343                                    <div class="text-sm mt-1 ">
1344                <p>While SinfulX.ai operates globally as a digital service, we cannot ensure compliance with the legal definitions of obscenity or content restrictions in every jurisdiction. As a user, you are solely responsible for ensuring that your use of the Service aligns with the laws and community standards of the country or region from which you access the platform.</p>
1345                                                    <p class="mt-2">By using SinfulX.ai, you agree not to use the Service to generate or access any content that would be considered unlawful or obscene under the applicable laws in your location. We disclaim any liability for user violations of regional content laws or obscenity statutes.</p>
1346            </div>
1347                    </div>
1348
1349        <!-- Dismiss Button -->
1350            </div>
1351
1352    <!-- Optional actions slot -->
1353    </div>
1354                </div>
1355                                <h2 id="14-modifications-to-terms">14. Modifications to Terms</h2>
1356                            <p>We reserve the right to amend these Terms at any time. Material changes will be announced via the Service or by email. Continued use after changes indicates your acceptance.</p>
1357                                    
1358        <h2 id="contact">15. Contact Information</h2>
1359        <p>
1360            This Terms of Service is supplemented by our
1361            <a href="https://sinfulx.ai/legal/privacy">Privacy Policy</a>,
1362            <a href="https://sinfulx.ai/legal/refund">Refund Policy</a>,
1363            <a href="https://sinfulx.ai/legal/dmca">DMCA Takedown Policy</a>,
1364            and
1365            <a href="https://sinfulx.ai/legal/content-removal">Content Removal Policy</a>, all of which form part of your agreement with us when using SinfulX.ai.
1366        </p>
1367        <div class="not-prose mt-4 rounded-2xl border border-red-500/20 bg-linear-to-br from-red-600/10 to-transparent p-5 sm:p-6">
1368            <div class="flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between">
1369                <p class="text-sm sm:text-base text-gray-300 leading-relaxed">
1370                    For questions or concerns regarding these Terms, contact us at:
1371                </p>
1372                <a href="mailto:[email protected]" class="inline-flex shrink-0 items-center justify-center gap-2 rounded-lg bg-red-600 px-4 py-2.5 text-sm font-medium text-white hover:bg-red-700 transition-colors">
1373                    <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1374            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/>
1375        </svg>
1376                            [email protected]
1377                </a>
1378            </div>
1379        </div>
1380                        </div>
1381                    </div>
1382                </div>
1383
1384                                    <div class="mt-6 grid grid-cols-1 sm:grid-cols-2 gap-3">
1385                                                    <span class="hidden sm:block"></span>
1386                        
1387                                                    <a href="https://sinfulx.ai/legal/privacy"
1388                               class="group flex items-center justify-end gap-3 rounded-xl border border-white/10 bg-white/[0.03] px-4 py-4 hover:border-red-500/40 hover:bg-white/[0.05] transition-colors sm:text-right">
1389                                <span class="min-w-0 order-2 sm:order-1">
1390                                    <span class="block text-[11px] uppercase tracking-wider text-gray-500">Next</span>
1391                                    <span class="block truncate text-sm font-medium text-white group-hover:text-red-400 transition-colors">Privacy Policy</span>
1392                                </span>
1393                                <span class="flex h-9 w-9 items-center justify-center rounded-lg bg-white/5 text-gray-400 group-hover:text-red-400 transition-colors order-1 sm:order-2">
1394                                    <svg class="w-4 h-4 transition-transform group-hover:translate-x-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1395            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
1396        </svg>
1397                                        </span>
1398                            </a>
1399                                            </div>
1400                
1401                                    <div class="mt-8 text-center">
1402                        <a href="https://sinfulx.ai/legal"
1403                           class="inline-flex items-center text-sm text-gray-400 hover:text-white transition-colors">
1404                            <svg class="w-3 h-3 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1405            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/>
1406        </svg>
1407                                    Back to Legal Hub
1408                        </a>
1409                    </div>
1410                            </div>
1411        </div>
1412    </div>
1413</div>
1414                                    </main>
1415            </div>
1416
1417            <!-- Footer -->
1418            <footer class="mt-auto bg-linear-to-t from-dark-200/20 to-transparent">
1419                <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
1420                    <!-- Quick Actions Bar -->
1421                    <div class="flex flex-wrap items-center justify-between gap-4 mb-6 pb-6 border-b border-gray-800/50">
1422                        <div class="flex flex-wrap items-center gap-4 lg:gap-6">
1423                                                        <a href="https://sinfulx.ai/explore" class="text-sm text-gray-400 hover:text-red-500 transition-colors duration-200 flex items-center gap-2">
1424                                <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
1425                                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"></path>
1426                                </svg>
1427                                NSFW AI Explore
1428                            </a>
1429                            <a href="https://sinfulx.ai/learning-hub" class="text-sm text-gray-400 hover:text-red-500 transition-colors duration-200 flex items-center gap-2">
1430                                <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
1431                                    <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"></path>
1432                                </svg>
1433                                NSFW AI Help Center
1434                            </a>
1435                            <a href="https://sinfulx.ai/subscription" rel="nofollow" class="text-sm text-gray-400 hover:text-red-500 transition-colors duration-200">
1436                                NSFW AI Pricing
1437                            </a>
1438                        </div>
1439
1440                        <div class="w-full md:w-auto flex justify-center md:justify-end mt-4 md:mt-0">
1441                            <img src="https://sinfulx.ai/images/AC_award_2026.png"
1442                                 alt="AC Award 2026"
1443                                 width="170"
1444                                 height="120"
1445                                 class="h-30 w-auto object-contain opacity-90"
1446                                 loading="lazy">
1447                        </div>
1448                    </div>
1449
1450                    <!-- Popular Pages Bar -->
1451                                        <div class="mb-8 pb-6 border-b border-gray-800/50">
1452                        <p class="text-xs font-bold text-gray-500 uppercase tracking-wider mb-3">Popular Pages</p>
1453                        <div class="flex flex-wrap gap-2">
1454                                                            <a href="https://sinfulx.ai/ai-porn-generator" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">AI Porn Generator</a>
1455                                                            <a href="https://sinfulx.ai/ai-porn-gallery" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">AI Porn Gallery</a>
1456                                                            <a href="https://sinfulx.ai/nsfw-ai" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">NSFW AI</a>
1457                                                            <a href="https://sinfulx.ai/ai-porn-maker" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">AI Porn Maker</a>
1458                                                            <a href="https://sinfulx.ai/free-ai-porn-generator" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">Free AI Porn Generator</a>
1459                                                            <a href="https://sinfulx.ai/uncensored-ai" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">Uncensored AI</a>
1460                                                            <a href="https://sinfulx.ai/best-ai-porn" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">Best AI Porn</a>
1461                                                            <a href="https://sinfulx.ai/ai-blowjob" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">AI Blowjob</a>
1462                                                            <a href="https://sinfulx.ai/ai-cumshot" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">AI Cumshot</a>
1463                                                            <a href="https://sinfulx.ai/ai-milf" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">AI MILF</a>
1464                                                            <a href="https://sinfulx.ai/ai-porn-video-generator" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">AI Porn Video Generator</a>
1465                                                            <a href="https://sinfulx.ai/nude-ai-generator" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">Nude AI Generator</a>
1466                                                            <a href="https://sinfulx.ai/blog" class="text-xs px-3 py-1 bg-gray-800 rounded-full text-gray-400 hover:text-red-400 hover:bg-gray-700 transition-colors">How-To Guides</a>
1467                                                    </div>
1468                    </div>
1469
1470                    <!-- Main Links Grid -->
1471                    <div class="grid grid-cols-2 md:grid-cols-6 gap-6 mb-8">
1472                        <!-- Products -->
1473                        <div>
1474                            <p class="text-sm font-bold text-white uppercase tracking-wider mb-3">Products</p>
1475                            <ul class="space-y-2">
1476                                <li><a href="https://sinfulx.ai/models" class="text-sm text-white hover:text-red-500 transition-colors duration-200">NSFW AI Image Generator</a></li>
1477                                                                <li>
1477<a href="https://sinfulx.ai/explore" class="text-sm text-white hover:text-red-500 transition-colors duration-200">NSFW AI Explore</a></li>
1478                                <li><a href="https://sinfulx.ai/scenarios" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Scenarios</a></li>
1479                                                            </ul>
1480                        </div>
1481
1482                        <!-- Company -->
1483                        <div>
1484                            <p class="text-sm font-bold text-white uppercase tracking-wider mb-3">Company</p>
1485                            <ul class="space-y-2">
1486                                <li><a href="https://sinfulx.ai/models" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Model Gallery</a></li>
1487                                <li><a href="https://sinfulx.ai/blog" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Blog</a></li>
1488                                <li><a href="https://sinfulx.ai/about" class="text-sm text-white hover:text-red-500 transition-colors duration-200">About SinfulX</a></li>
1489                                <li><a href="https://sinfulx.ai/authors/sinfulx-editorial" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Editorial Team</a></li>
1490                                <li><a href="https://sinfulx.ai/subscription" rel="nofollow" class="text-sm text-white hover:text-red-500 transition-colors duration-200">NSFW AI Pricing</a></li>
1491                                <li><a href="https://sinfulx.ai/learning-hub" class="text-sm text-white hover:text-red-500 transition-colors duration-200">NSFW AI Studio Wiki</a></li>
1492                                <li><a href="https://sinfulx.ai/legal/affiliates" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Affiliates</a></li>
1493                            </ul>
1494                        </div>
1495
1496                        <!-- Content -->
1497                        <div>
1498                            <p class="text-sm font-bold text-white uppercase tracking-wider mb-3">Content</p>
1499                            <ul class="space-y-2">
1500                                <li><a href="https://sinfulx.ai/blog" class="text-sm text-white hover:text-red-500 transition-colors duration-200">All Categories</a></li>
1501                                <li><a href="https://sinfulx.ai/blog" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Generators</a></li>
1502                                <li><a href="https://sinfulx.ai/models" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Models</a></li>
1503                                <li><a href="https://sinfulx.ai/blog" class="text-sm text-white hover:text-red-500 transition-colors duration-200">How-To Guides</a></li>
1504                                <li><a href="https://sinfulx.ai/blog" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Content Hubs</a></li>
1505                                <li><a href="https://sinfulx.ai/sitemap" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Sitemap</a></li>
1506                            </ul>
1507                        </div>
1508
1509                        <!-- Top Categories -->
1510                        <div>
1511                            <p class="text-sm font-bold text-white uppercase tracking-wider mb-3">Top Categories</p>
1512                            <ul class="space-y-2">
1513                                <li><a href="https://sinfulx.ai/ai-blowjob" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Blowjob</a></li>
1514                                <li><a href="https://sinfulx.ai/ai-trans" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Trans</a></li>
1515                                <li><a href="https://sinfulx.ai/ai-cumshot" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Cumshot</a></li>
1516                                <li><a href="https://sinfulx.ai/ai-rimming" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Rimming</a></li>
1517                                <li><a href="https://sinfulx.ai/ai-big-tits" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Big Tits</a></li>
1518                                <li><a href="https://sinfulx.ai/ai-anal" class="text-sm text-white hover:text-red-500 transition-colors duration-200">
1518AI Anal</a></li>
1519                                <li><a href="https://sinfulx.ai/ai-milf" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI MILF</a></li>
1520                                <li><a href="https://sinfulx.ai/ai-lesbian-porn" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Lesbian</a></li>
1521                                <li><a href="https://sinfulx.ai/ai-hentai" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Hentai</a></li>
1522                                <li><a href="https://sinfulx.ai/ai-jerk-off" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI Jerk Off</a></li>
1523                            </ul>
1524                        </div>
1525
1526                        <!-- Legal -->
1527                        <div>
1528                            <p class="text-sm font-bold text-white uppercase tracking-wider mb-3">Legal</p>
1529                            <ul class="space-y-2">
1530                                <li><a href="https://sinfulx.ai/legal/terms" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Terms of Service</a></li>
1531                                <li><a href="https://sinfulx.ai/legal/privacy" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Privacy Policy</a></li>
1532                                <li><a href="https://sinfulx.ai/legal/gdpr" class="text-sm text-white hover:text-red-500 transition-colors duration-200">GDPR Compliance</a></li>
1533                                <li><a href="https://sinfulx.ai/legal/refund" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Refund Policy</a></li>
1534                            </ul>
1535                        </div>
1536
1537                        <!-- Policies -->
1538                        <div>
1539                            <p class="text-sm font-bold text-white uppercase tracking-wider mb-3">Policies</p>
1540                            <ul class="space-y-2">
1541                                <li><a href="https://sinfulx.ai/ai-use-disclosure" class="text-sm text-white hover:text-red-500 transition-colors duration-200">AI-Use Disclosure</a></li>
1542                                <li><a href="https://sinfulx.ai/trust-safety-consent-age" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Trust &amp; Safety</a></li>
1543                                <li><a href="https://sinfulx.ai/legal/content-removal" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Content Removal</a></li>
1544                                <li><a href="https://sinfulx.ai/legal/dmca" class="text-sm text-white hover:text-red-500 transition-colors duration-200">DMCA Policy</a></li>
1545                                <li><a href="https://sinfulx.ai/legal/report" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Report Content</a></li>
1546                                <li><a href="https://sinfulx.ai/legal/contact" class="text-sm text-white hover:text-red-500 transition-colors duration-200">Contact Support</a></li>
1547                            </ul>
1548                        </div>
1549                    </div>
1550
1551                    <!-- Bottom Bar -->
1552                    <div class="border-t border-gray-800 pt-6">
1553                        <div class="flex flex-col lg:flex-row lg:items-center lg:justify-between gap-5">
1554                            
1555                            <div class="flex flex-col gap-3 min-w-0">
1556                                <p class="text-sm text-gray-400">
1557                                    © 2026 SinfulX AI, Inc.
1558                                </p>
1559                                <nav class="flex flex-wrap items-center gap-x-3 gap-y-2 text-sm" aria-label="Legal">
1560                                    <a href="https://sinfulx.ai/legal/terms" class="text-gray-300 hover:text-red-400 transition-colors">Terms</a>
1561                                    <span class="text-gray-700 select-none" aria-hidden="true">·</span>
1562                                    <a href="https://sinfulx.ai/legal/privacy" class="text-gray-300 hover:text-red-400 transition-colors">Privacy</a>
1563                                    <span class="text-gray-700 select-none" aria-hidden="true">·</span>
1564                                    <a href="https://sinfulx.ai/trust-safety-consent-age" class="text-gray-300 hover:text-red-400 transition-colors">Trust &amp; Safety</a>
1565                                    <span class="text-gray-700 select-none" aria-hidden="true">·</span>
1566                                    <a href="https://sinfulx.ai/security-policy" class="text-gray-300 hover:text-red-400 transition-colors">Security</a>
1567                                    <span class="text-gray-700 select-none" aria-hidden="true">·</span>
1568                                    <a href="https://sinfulx.ai/sitemap" class="text-gray-300 hover:text-red-400 transition-colors">Sitemap</a>
1569                                </nav>
1570                                <p class="text-xs text-gray-500">
1571                                    <span>Company Reg HE 477740</span>
1572                                    <span class="mx-2 text-gray-700" aria-hidden="true">·</span>
1573                                    <span>18+ Only.</span>
1574                                </p>
1575                            </div>
1576
1577                            <div class="flex items-center gap-3 shrink-0">
1578                                <div class="language-switcher relative" x-data="languageSwitcher()" x-cloak>
1579            <button
1580            type="button"
1581            @click="toggleDropdown()"
1582            @keydown.escape="closeDropdown()"
1583            class="language-switcher-button flex items-center gap-2 px-2 py-1 text-xs bg-transparent border border-gray-700 hover:border-red-500/40 hover:text-red-400 rounded-lg transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 focus:ring-offset-gray-900 text-gray-300"
1584            :class="{ 'ring-2 ring-red-500': isOpen }"
1585            aria-haspopup="true"
1586            :aria-expanded="isOpen"
1587            aria-label="Language switcher"
1588        >
1589                        <span class="font-medium">
1590                English
1591            </span>
1592            <svg class="w-4 h-4 text-gray-400 transition-transform duration-200"
1593                 :class="{ 'rotate-180': isOpen }"
1594                 fill="none"
1595                 stroke="currentColor"
1596                 viewBox="0 0 24 24"
1597                 aria-hidden="true">
1598                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
1599            </svg>
1600        </button>
1601
1602        <div
1603            x-show="isOpen"
1604            x-transition:enter="transition ease-out duration-100"
1605            x-transition:enter-start="transform opacity-0 scale-95"
1606            x-transition:enter-end="transform opacity-100 scale-100"
1607            x-transition:leave="transition ease-in duration-75"
1608            x-transition:leave-start="transform opacity-100 scale-100"
1609            x-transition:leave-end="transform opacity-0 scale-95"
1610            @click.away="closeDropdown()"
1611            class="language-dropdown absolute bottom-full mb-2 w-56 right-0 bg-gray-800 border border-gray-700 rounded-lg shadow-xl z-50 overflow-hidden"
1612            role="menu"
1613            aria-orientation="vertical"
1614            style="display: none;"
1615        >
1616                                            <a
1617                    href="https://sinfulx.ai/language/en"
1618                    class="language-option flex items-center gap-3 px-4 py-3 hover:bg-gray-700 transition-colors duration-150 bg-gray-700/60 border-b border-gray-700"
1619                    role="menuitem"
1620                    hreflang="en"
1621                     aria-current="true"                 >
1622                                        <div class="flex-1 min-w-0">
1623                        <div class="text-sm font-medium text-white truncate">
1624                            English
1625                        </div>
1626                        <div class="text-xs text-gray-400 truncate">
1627                            English
1628                        </div>
1629                    </div>
1630                                            <svg class="w-4 h-4 text-red-400 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
1631                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path>
1632                        </svg>
1633                                    </a>
1634                                            <a
1635                    href="https://sinfulx.ai/language/es"
1636                    class="language-option flex items-center gap-3 px-4 py-3 hover:bg-gray-700 transition-colors duration-150  border-b border-gray-700"
1637                    role="menuitem"
1638                    hreflang="es"
1639                                    >
1640                                        <div class="flex-1 min-w-0">
1641                        <div class="text-sm font-medium text-white truncate">
1642                            Español
1643                        </div>
1644                        <div class="text-xs text-gray-400 truncate">
1645                            Español
1646                        </div>
1647                    </div>
1648                                    </a>
1649                                            <a
1650                    href="https://sinfulx.ai/language/fr"
1651                    class="language-option flex items-center gap-3 px-4 py-3 hover:bg-gray-700 transition-colors duration-150  border-b border-gray-700"
1652                    role="menuitem"
1653                    hreflang="fr"
1654                                    >
1655                                        <div class="flex-1 min-w-0">
1656                        <div class="text-sm font-medium text-white truncate">
1657                            Français
1658                        </div>
1659                        <div class="text-xs text-gray-400 truncate">
1660                            Français
1661                        </div>
1662                    </div>
1663                                    </a>
1664                                            <a
1665                    href="https://sinfulx.ai/language/de"
1666                    class="language-option flex items-center gap-3 px-4 py-3 hover:bg-gray-700 transition-colors duration-150  border-b border-gray-700"
1667                    role="menuitem"
1668                    hreflang="de"
1669                                    >
1670                                        <div class="flex-1 min-w-0">
1671                        <div class="text-sm font-medium text-white truncate">
1672                            Deutsch
1673                        </div>
1674                        <div class="text-xs text-gray-400 truncate">
1675                            Deutsch
1676                        </div>
1677                    </div>
1678                                    </a>
1679                                            <a
1680                    href="https://sinfulx.ai/language/it"
1681                    class="language-option flex items-center gap-3 px-4 py-3 hover:bg-gray-700 transition-colors duration-150  border-b border-gray-700"
1682                    role="menuitem"
1683                    hreflang="it"
1684                                    >
1685                                        <div class="flex-1 min-w-0">
1686                        <div class="text-sm font-medium text-white truncate">
1687                            Italiano
1688                        </div>
1689                        <div class="text-xs text-gray-400 truncate">
1690                            Italiano
1691                        </div>
1692                    </div>
1693                                    </a>
1694                                            <a
1695                    href="https://sinfulx.ai/language/pt"
1696                    class="language-option flex items-center gap-3 px-4 py-3 hover:bg-gray-700 transition-colors duration-150  "
1697                    role="menuitem"
1698                    hreflang="pt"
1699                                    >
1700                                        <div class="flex-1 min-w-0">
1701                        <div class="text-sm font-medium text-white truncate">
1702                            Português
1703                        </div>
1704                        <div class="text-xs text-gray-400 truncate">
1705                            Português
1706                        </div>
1707                    </div>
1708                                    </a>
1709            
1710                    </div>
1711    </div>
1712
1713                                <a href="https://www.instagram.com/sinfulx.ai"
1714                                   class="inline-flex items-center justify-center w-9 h-9 rounded-full border border-gray-800 text-gray-400 hover:text-red-400 hover:border-red-500/40 transition-colors"
1715                                   aria-label="Instagram">
1716                                    <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
1717                                        <path d="M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 
17170-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"/>
1718                                    </svg>
1719                                </a>
1720                                <a href="https://twitter.com/SinfulX_ai"
1721                                   class="inline-flex items-center justify-center w-9 h-9 rounded-full border border-gray-800 text-gray-400 hover:text-red-400 hover:border-red-500/40 transition-colors"
1722                                   aria-label="Twitter/X">
1723                                    <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
1724                                        <path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"/>
1725                                    </svg>
1726                                </a>
1727                            </div>
1728                        </div>
1729                    </div>
1730                </div>
1731            </footer>
1732        </div>
1733
1734        <!-- Authentication Modal -->
1735                    <div x-data="authModal({
1736         isAuthenticated: false,
1737         isBotCrawler: false,
1738         registerRoute: 'https://sinfulx.ai/register',
1739         loginRoute: 'https://sinfulx.ai/login',
1740         passwordResetRoute: 'https://sinfulx.ai/forgot-password',
1741         homeRoute: 'https://sinfulx.ai'
1742     })"
1743     x-init="init()"
1744     x-show="showModal"
1745     x-cloak
1746     data-auth-modal-root
1747     data-registration-promo-enabled="true"
1748     class="fixed inset-0 overflow-y-auto"
1749     style="z-index: var(--z-modal, 200); display: none;"
1750     role="dialog"
1751     aria-modal="true"
1752     aria-labelledby="auth-modal-title"
1753     tabindex="-1"
1754     x-bind:aria-hidden="!showModal"
1755     @keydown.escape.window="closeModal()">
1756
1757    <div class="fixed inset-0 bg-black/85 backdrop-blur-md"
1758         x-show="showModal"
1759         x-transition:enter="ease-out duration-300"
1760         x-transition:enter-start="opacity-0"
1761         x-transition:enter-end="opacity-100"
1762         x-transition:leave="ease-in duration-200"
1763         x-transition:leave-start="opacity-100"
1764         x-transition:leave-end="opacity-0"
1765         @click="closeModal()">
1766    </div>
1767
1768    <div class="fixed inset-0 flex items-end justify-center p-3 pb-[max(0.75rem,env(safe-area-inset-bottom))] sm:items-center sm:p-5 sm:pb-5 lg:p-8">
1769        <div class="relative w-full max-w-[26.5rem] md:max-w-[34rem] lg:max-w-[66rem]"
1770             x-show="showModal"
1771             x-transition:enter="ease-out duration-300"
1772             x-transition:enter-start="opacity-0 translate-y-4 scale-95"
1773             x-transition:enter-end="opacity-100 translate-y-0 scale-100"
1774             x-transition:leave="ease-in duration-200"
1775             x-transition:leave-start="opacity-100 translate-y-0 scale-100"
1776             x-transition:leave-end="opacity-0 translate-y-4 scale-95"
1777             @click.stop>
1778
1779            <div class="relative max-h-[min(52rem,90dvh)] overflow-y-auto overscroll-contain rounded-3xl border border-white/10 bg-[#0a0c10] shadow-[0_28px_100px_rgba(0,0,0,0.8)] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden sm:max-h-[min(52rem,90dvh)] lg:max-h-[min(48rem,90dvh)]"
1780                 style="background-image: radial-gradient(circle at 22% 12%, rgba(255, 45, 85, 0.16), transparent 34%), radial-gradient(circle at 78% 88%, rgba(255, 255, 255, 0.025), transparent 40%);">
1781
1782                <button @click="closeModal()"
1783                        type="button"
1784                        class="absolute right-3 top-3 z-20 inline-flex h-10 w-10 items-center justify-center rounded-full text-gray-400 transition-colors hover:bg-white/10 hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-red-500 md:right-4 md:top-4"
1785                        aria-label="Close modal">
1786                    <span class="sr-only">Close</span>
1787                    <svg class="w-5 h-5" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1788            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
1789        </svg>
1790                        </button>
1791
1792                <div class="lg:grid lg:grid-cols-[minmax(0,1.05fr)_minmax(24rem,1.1fr)] lg:items-stretch">
1793                    <header class="px-4 pb-0 pt-5 text-center sm:px-6 sm:pt-7 md:px-8 md:pt-10 lg:flex lg:flex-col lg:items-start lg:justify-center lg:border-r lg:border-white/10 lg:bg-black/20 lg:py-10 lg:pl-12 lg:pr-14 lg:text-left">
1794                        <span id="auth-modal-title" class="sr-only" x-text="currentTitle">Ready for this?</span>
1795                        <img src="https://sinfulx.ai/images/sinful-ai-logo.png"
1796                             alt="SinfulX AI"
1797                             class="mx-auto h-8 w-auto shrink-0 object-contain object-left drop-shadow-[0_0_24px_rgba(255,45,85,0.35)] sm:h-10 md:h-12 lg:mx-0 lg:h-14">
1798
1799                                                    <div class="mt-3 sm:mt-4 md:mt-6 lg:mt-8" :class="mode === 'register' ? '' : 'hidden'">
1800                                <h2 class="text-[clamp(1.35rem,5.6vw,1.75rem)] font-light uppercase leading-[0.95] tracking-[0.01em] text-white lg:text-[2.15rem] xl:text-[2.45rem]">
1801                                    <span class="block lg:whitespace-nowrap">
1802                                        <span class="font-light text-white/90">GET</span>
1803                                        <strong class="ml-1.5 font-semibold tracking-[-0.02em] text-[#ff3b6a] drop-shadow-[0_0_18px_rgba(255,59,106,0.55)]">
1804                                            15 BONUS
1805                                        </strong>
1806                                    </span>
1807                                    <span class="mt-1 block lg:whitespace-nowrap">
1808                                        <strong class="font-semibold tracking-[-0.02em] text-[#ff3b6a] drop-shadow-[0_0_18px_rgba(255,59,106,0.55)]">
1809                                            VIZ
1810                                        </strong>
1811                                        <span class="ml-1.5 font-light text-white">AFTER PURCHASE</span>
1812                                    </span>
1813                                </h2>
1814
1815                                <div class="mt-3 flex items-center justify-center gap-0 text-[11px] text-gray-300 sm:mt-4 sm:text-xs md:mt-5 lg:mt-8 lg:flex-col lg:items-start lg:gap-3 lg:text-sm [@media(max-height:700px)]:max-lg:hidden">
1816                                    <div class="flex min-w-0 items-center justify-center gap-1.5 px-2 sm:px-3 lg:px-0">
1817                                        <svg class="w-4 h-4 shrink-0 text-[#ff3b6a]" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1818            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"/>
1819        </svg>
1820                                                <span>Instant delivery</span>
1821                                    </div>
1822                                    <span class="h-3.5 w-px shrink-0 bg-white/15 lg:hidden" aria-hidden="true"></span>
1823                                    <div class="flex min-w-0 items-center justify-center gap-1.5 px-2 sm:px-3 lg:px-0">
1824                                        <svg class="w-4 h-4 shrink-0 text-[#ff3b6a]" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1825            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z"/>
1826        </svg>
1827                                                <span>Secure &amp; private</span>
1828                                    </div>
1829                                    <span class="h-3.5 w-px shrink-0 bg-white/15 lg:hidden" aria-hidden="true"></span>
1830                                    <div class="flex min-w-0 items-center justify-center gap-1.5 px-2 sm:px-3 lg:px-0">
1831                                        <svg class="w-4 h-4 shrink-0 text-[#ff3b6a]" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1832            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M18.364 18.364A9 9 0 005.636 5.636m12.728 12.728A9 9 0 015.636 5.636m12.728 12.728L5.636 5.636"/>
1833        </svg>
1834                                                <span>No spam. Ever.</span>
1835                                    </div>
1836                                </div>
1837                            </div>
1838                        
1839                        <div class="mt-3 sm:mt-5 md:mt-6"  :class="mode === 'login' ? '' : 'hidden'" >
1840                            <h2 class="text-xl font-bold text-white sm:text-3xl lg:text-4xl" x-text="currentTitle">
1841                                Ready for this?
1842                            </h2>
1843                            <p class="mt-2 text-sm text-gray-400 md:text-base" x-text="currentSubtitle"></p>
1844                        </div>
1845                    </header>
1846
1847                    <div class="lg:flex lg:flex-col lg:justify-center lg:px-8 lg:pb-6 lg:pt-14 xl:px-10">
1848                        <div class="px-4 sm:px-6 md:px-8 lg:px-0" :class="mode === 'register' && true ? 'mt-4 md:mt-6 lg:mt-0' : 'mt-4 lg:mt-0'">
1849                            <div class="grid grid-cols-2 rounded-2xl border border-white/12 bg-black/35 p-1">
1850                                <button type="button"
1851                                        @click="switchMode('register')"
1852                                        :class="mode === 'register' ? 'bg-red-600 text-white shadow-[0_8px_20px_rgba(220,38,38,0.35)]' : 'text-gray-400 hover:text-white'"
1853                                        class="inline-flex items-center justify-center gap-2 rounded-xl px-3 py-2 text-sm font-semibold transition-all duration-200 md:py-3">
1854                                    <svg class="w-4 h-4" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1855            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/>
1856        </svg>
1857                                            Sign Up
1858                                </button>
1859                                <button type="button"
1860                                        @click="switchMode('login')"
1861                                        :class="mode === 'login' ? 'bg-red-600 text-white shadow-[0_8px_20px_rgba(220,38,38,0.35)]' : 'text-gray-400 hover:text-white'"
1862                                        class="inline-flex items-center justify-center gap-2 rounded-xl px-3 py-2 text-sm font-semibold transition-all duration-200 md:py-3">
1863                                    <svg class="w-4 h-4" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1864            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14 5l7 7m0 0l-7 7m7-7H3"/>
1865        </svg>
1866                                            Log In
1867                                </button>
1868                            </div>
1869                        </div>
1870
1871                        <div class="mt-3 px-4 sm:px-6 md:mt-5 md:px-8 lg:px-0">
1872                            <a href="https://sinfulx.ai/auth/google/redirect" rel="nofollow"
1873                               class="flex w-full items-center justify-center gap-3 rounded-full border border-gray-200 bg-white px-4 py-2.5 text-sm font-semibold text-gray-900 shadow-sm transition-all duration-200 hover:scale-[1.01] hover:bg-gray-50 hover:shadow-md active:scale-[0.99] focus:outline-none focus-visible:ring-2 focus-visible:ring-red-500 focus-visible:ring-offset-2 focus-visible:ring-offset-[#0a0c10] sm:text-base md:py-3.5 lg:py-3.5">
1874                                <svg width="20" height="20" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
1875                                    <g fill="none" fill-rule="evenodd">
1876                                        <path d="M17.64 9.2c0-.637-.057-1.251-.164-1.84H9v3.481h4.844c-.209 1.125-.843 2.078-1.796 2.717v2.258h2.908c1.702-1.567 2.684-3.874 2.684-6.615z" fill="#4285F4"/>
1877                                        <path d="M9.003 18c2.43 0 4.467-.806 5.956-2.183l-2.909-2.259c-.806.54-1.836.86-3.047.86-2.344 0-4.328-1.584-5.036-3.711H.96v2.332C2.44 15.983 5.485 18 9.003 18z" fill="#34A853"/>
1878                                        <path d="M3.964 10.712c-.18-.54-.282-1.117-.282-1.71 0-.593.102-1.17.282-1.71V4.96H.957C.347 6.175 0 7.55 0 9.002c0 1.452.348 2.827.957 4.042l3.007-2.332z" fill="#FBBC05"/>
1879                                        <path d="M9.003 3.58c1.321 0 2.508.454 3.44 1.345l2.582-2.58C13.464.891 11.428 0 9.002 0 5.485 0 2.44 2.017.96 4.958L3.967 7.29c.708-2.127 2.692-3.71 5.036-3.71z" fill="#EA4335"/>
1880                                    </g>
1881                                </svg>
1882                                <span>Continue with Google</span>
1883                            </a>
1884                        </div>
1885
1886                        <div class="px-4 sm:px-6 md:px-8 lg:px-0">
1887                            <div class="relative my-3 flex items-center md:my-4">
1888                                <div class="grow border-t border-white/10"></div>
1889                                <span class="px-4 text-xs font-medium tracking-wide text-gray-500">OR</span>
1890                                <div class="grow border-t border-white/10"></div>
1891                            </div>
1892                        </div>
1893
1894                        <form @submit.prevent="submitForm" class="space-y-2.5 px-4 pb-4 sm:px-6 sm:pb-6 md:space-y-3.5 md:px-8 md:pb-8 lg:space-y-3 lg:px-0 lg:pb-0">
1895                                                            <input type="hidden" name="_token" value="poFNnKE01odzex1uMX8UptP5GRFtYA6AxoAjuhRX" autocomplete="off">                            
1896                            <input type="hidden" name="redirect_to" x-bind:value="redirectTo" x-show="mode === 'login'">
1897
1898                            <div x-show="errors.general"
1899                                 x-text="errors.general"
1900                                 class="rounded-lg border border-red-500/30 bg-red-500/10 p-3 text-sm text-red-400"
1901                                 role="alert"
1902                                 style="display: none;"></div>
1903
1904                            <div :class="mode === 'register' ? '' : 'hidden'">
1905                                <label for="auth-username" class="sr-only">
1905Username</label>
1906                                <div class="relative">
1907                                    <span class="pointer-events-none absolute inset-y-0 left-0 flex items-center pl-4 text-gray-500" data-auth-field-icon="user" aria-hidden="true">
1908                                        <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1909            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/>
1910        </svg>
1911                                            </span>
1912                                    <input id="auth-username"
1913                                           type="text"
1914                                           x-model="formData.username"
1915                                           placeholder="Choose a username"
1916                                           class="w-full rounded-xl border border-white/10 bg-black/40 py-2.5 text-base text-white placeholder-gray-500 transition-all duration-200 focus:border-red-500/60 focus:outline-none focus:ring-2 focus:ring-red-500/30 disabled:opacity-60 md:py-3.5 lg:py-3.5 pl-12 pr-4"
1917                                           :required="mode === 'register'"
1918                                           :disabled="isSubmitting"
1919                                           autocomplete="username"
1920                                           pattern="[a-zA-Z0-9_]{3,20}"
1921                                           title="Username must be 3-20 characters, letters, numbers, and underscores only">
1922                                </div>
1923                                <span x-show="errors.username" x-text="errors.username" class="mt-1 block text-xs text-red-400" role="alert" style="display: none;"></span>
1924                            </div>
1925
1926                            <div>
1927                                <label for="auth-email" class="sr-only">Email</label>
1928                                <div class="relative">
1929                                    <span class="pointer-events-none absolute inset-y-0 left-0 flex items-center pl-4 text-gray-500" data-auth-field-icon="mail" aria-hidden="true">
1930                                        <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1931            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/>
1932        </svg>
1933                                            </span>
1934                                    <input id="auth-email"
1935                                           type="text"
1936                                           x-model="formData.email"
1937                                           :placeholder="mode === 'register' ? 'Your email address' : 'Username or Email'"
1938                                           class="w-full rounded-xl border border-white/10 bg-black/40 py-2.5 text-base text-white placeholder-gray-500 transition-all duration-200 focus:border-red-500/60 focus:outline-none focus:ring-2 focus:ring-red-500/30 disabled:opacity-60 md:py-3.5 lg:py-3.5 pl-12 pr-4"
1939                                           required
1940                                           :disabled="isSubmitting"
1941                                           :autocomplete="mode === 'register' ? 'email' : 'username'">
1942                                </div>
1943                                <span x-show="errors.email" x-text="errors.email" class="mt-1 block text-xs text-red-400" role="alert" style="display: none;"></span>
1944                            </div>
1945
1946                            <div>
1947                                <label for="auth-password" class="sr-only">Password</label>
1948                                <div class="relative">
1949                                    <span class="pointer-events-none absolute inset-y-0 left-0 flex items-center pl-4 text-gray-500" data-auth-field-icon="lock" aria-hidden="true">
1950                                        <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1951            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"/>
1952        </svg>
1953                                            </span>
1954                                    <input id="auth-password"
1955                                           :type="showPassword ? 'text' : 'password'"
1956                                           x-model="formData.password"
1957                                           :placeholder="mode === 'register' ? 'Create a password' : 'Enter your password'"
1958                                           class="w-full rounded-xl border border-white/10 bg-black/40 py-2.5 text-base text-white placeholder-gray-500 transition-all duration-200 focus:border-red-500/60 focus:outline-none focus:ring-2 focus:ring-red-500/30 disabled:opacity-60 md:py-3.5 lg:py-3.5 pl-12 pr-16"
1959                                           required
1960                                           :disabled="isSubmitting"
1961                                           :autocomplete="mode === 'register' ? 'new-password' : 'current-password'">
1962                                    <button type="button"
1963                                            @click="showPassword = !showPassword"
1964                                            class="absolute right-3 top-1/2 -translate-y-1/2 roun
1964ded-md px-2 py-1 text-xs font-medium text-gray-400 transition-colors hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-red-500"
1965                                            :disabled="isSubmitting">
1966                                        <span x-show="!showPassword">Show</span>
1967                                        <span x-show="showPassword" style="display: none;">Hide</span>
1968                                    </button>
1969                                </div>
1970                                <span x-show="errors.password" x-text="errors.password" class="mt-1 block text-xs text-red-400" role="alert" style="display: none;"></span>
1971                            </div>
1972
1973                            <div class="items-center justify-between gap-3" :class="mode === 'login' ? 'flex' : 'hidden'">
1974                                <label class="flex cursor-pointer items-center text-sm text-gray-300">
1975                                    <input type="checkbox" name="remember" class="rounded border-white/20 bg-black/40 text-red-500 accent-red-500 focus:ring-red-500/50">
1976                                    <span class="ml-2">Remember me</span>
1977                                </label>
1978                                <button type="button" @click.prevent="openPasswordResetModal" class="text-sm text-gray-300 transition-colors hover:text-red-400">
1979                                    Forgot password?
1980                                </button>
1981                            </div>
1982
1983                            <div class="space-y-2 pt-0.5 md:space-y-3.5" :class="mode === 'register' ? '' : 'hidden'">
1984                                <label class="flex cursor-pointer items-start group">
1985                                    <input type="checkbox"
1986                                           x-model="formData.terms_accepted"
1987                                           class="mt-0.5 h-5 w-5 shrink-0 rounded border-white/25 bg-transparent text-red-500 accent-red-500 focus:ring-2 focus:ring-red-500/50"
1988                                           :required="mode === 'register'"
1989                                           :disabled="isSubmitting">
1990                                    <span class="ml-3 text-sm leading-relaxed text-gray-300 transition-colors group-hover:text-white">
1991                                        I agree to the
1992                                        <a href="https://sinfulx.ai/legal/privacy" target="_blank" rel="noopener" class="text-red-400 underline decoration-red-500/60 underline-offset-2 hover:text-red-300">Privacy Policy</a>
1993                                        and
1994                                        <a href="https://sinfulx.ai/legal/terms" target="_blank" rel="noopener" class="text-red-400 underline decoration-red-500/60 underline-offset-2 hover:text-red-300">Terms of Use</a>
1995                                    </span>
1996                                </label>
1997
1998                                <label class="flex cursor-pointer items-start group">
1999                                    <input type="checkbox"
2000                                           x-model="formData.age_verified"
2001                                           class="mt-0.5 h-5 w-5 shrink-0 rounded border-white/25 bg-transparent text-red-500 accent-red-500 focus:ring-2 focus:ring-red-500/50"
2002                                           :required="mode === 'register'"
2003                                           :disabled="isSubmitting">
2004                                    <span class="ml-3 text-sm leading-relaxed text-gray-300 transition-colors group-hover:text-white">
2005                                        I confirm that I am 18 years or older
2006                                    </span>
2007                                </label>
2008
2009                                <label class="flex cursor-pointer items-start border-t border-white/10 pt-2 md:pt-3 group">
2010                                    <input type="checkbox"
2011                                           x-model="formData.newsletter_subscribed"
2012                                           class="mt-0.5 h-5 w-5 shrink-0 rounded border-white/25 bg-transparent text-red-500 accent-red-500 focus:ring-2 focus:ring-red-500/50"
2013                                           :disabled="isSubmitting">
2014                                    <span class="ml-3 min-w-0 leading-relaxed">
2015                                        <span class="block text-sm font-medium text-gray-200 transition-colors group-hover:text-white">
2016                                            Email me updates and offers
2017                                        </span>
2018                                                                                    <span class="mt-0.5 block text-xs text-gray-400">
2019                                                Code SINFULX-REAL gives 15 bonus VIZ after checkout
2020                                            </span>
2021                                                                            </span>
2022                                </label>
2023                            </div>
2024
2025                            <button type="submit"
2026                                    class="w-full rounded-2xl bg-red-600 px-4 py-3 text-white shadow-[0_12px_28px_rgba(220,38,38,0.32)] transition-all duration-200 hover:scale-[1.01] hover:bg-red-500 hover:shadow-[0_14px_32px_rgba(220,38,38,0.4)] active:scale-[0.99] disabled:cursor-not-allowed disabled:opacity-50 disabled:transform-none focus:outline-none focus-visible:ring-2 focus-visible:ring-white focus-visible:ring-offset-2 focus-visible:ring-offset-[#0a0c10] md:py-3.5 lg:py-3.5"
2027                                    :disabled="isSubmitting || (mode === 'register' && (!formData.username || !formData.email || !formData.password || !formData.terms_accepted || !formData.age_verified)) || (mode === 'login' && (!formData.email || !formData.password))">
2028                                <span x-show="!isSubmitting">
2029                                                                            <span :class="mode === 'register' ? 'flex items-center justify-center gap-3' : 'hidden'">
2030                                            <svg class="w-6 h-6 shrink-0" data-auth-cta-icon="gift" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24">
2031            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v13m0-13V6a2 2 0 112 2h-2zm0 0V5.5A2.5 2.5 0 109.5 8H12zm-7 4h14M5 12a2 2 0 110-4h14a2 2 0 110 4M5 12v7a2 2 0 002 2h10a2 2 0 002-2v-7"/>
2032        </svg>
2033                                                    <span class="min-w-0 text-left sm:text-center">
2034                                                <strong class="block text-sm leading-tight sm:text-base lg:whitespace-nowrap">
2035                                                    Sign up free
2036                                                </strong>
2037                                                <span class="mt-0.5 block text-[11px] font-medium leading-tight text-white/80 sm:text-xs">
2038                                                    15 bonus VIZ
2039                                                </span>
2040                                            </span>
2041                                        </span>
2042                                        <span :class="mode === 'login' ? '' : 'hidden'" x-text="submitButtonText"></span>
2043                                                                    </span>
2044                                <span x-show="isSubmitting" class="flex items-center justify-center" style="display: none;">
2045                                    <svg class="w-5 h-5 animate-spin mr-2" aria-hidden="true" fill="none" viewBox="0 0 24 24">
2046            <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
2047            <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>
2048        </svg>
2049                                            <span x-text="mode === 'register' ? 'Creating account...' : 'Signing in...'"></span>
2050                                </span>
2051                            </button>
2052
2053                                                            <p class="px-1 text-center text-[11px] leading-relaxed text-gray-500 sm:text-xs" :class="mode === 'register' ? '' : 'hidden'">
2054                                    You&#039;ll receive 15 bonus VIZ after a successful paid checkout.
2055                                </p>
2056                                                    </form>
2057                    </div>
2058                </div>
2059
2060                <div x-show="hasOverflow && showModal"
2061                     class="pointer-events-none absolute bottom-3 left-1/2 -translate-x-1/2 animate-bounce text-white/40 lg:hidden"
2062                     x-transition>
2063                    <svg class="w-5 h-5" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24">
2064            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"/>
2065        </svg>
2066                        </div>
2067            </div>
2068        </div>
2069    </div>
2070</div>
2071        
2072        <!-- Global Confirmation Modal (replaces native confirm()) -->
2073        <div x-data>
2074    
2075    <template x-if="$store.confirm?.isOpen">
2076<div
2077    x-transition:enter="transition ease-out duration-200"
2078    x-transition:enter-start="opacity-0"
2079    x-transition:enter-end="opacity-100"
2080    x-transition:leave="transition ease-in duration-150"
2081    x-transition:leave-start="opacity-100"
2082    x-transition:leave-end="opacity-0"
2083    @keydown.escape.window="$store.confirm?.cancel()"
2084    class="fixed inset-0 z-70 overflow-y-auto"
2085    aria-labelledby="confirm-modal-title"
2086    role="dialog"
2087    aria-modal="true"
2088>
2089    
2090    <div
2091        class="fixed inset-0 bg-black/80 backdrop-blur-sm"
2092        @click="$store.confirm?.cancel()"
2093    ></div>
2094
2095    
2096    <div class="flex min-h-full items-center justify-center p-4">
2097        <div
2098            x-transition:enter="transition ease-out duration-200"
2099            x-transition:enter-start="opacity-0 scale-95"
2100            x-transition:enter-end="opacity-100 scale-100"
2101            x-transition:leave="transition ease-in duration-150"
2102            x-transition:leave-start="opacity-100 scale-100"
2103            x-transition:leave-end="opacity-0 scale-95"
2104            class="relative w-full max-w-md transform overflow-hidden rounded-xl bg-gray-900 border border-gray-700 p-6 shadow-2xl"
2105            @click.stop
2106        >
2107            
2108            <div class="flex items-center justify-center w-12 h-12 mx-auto mb-4 rounded-full"
2109                :class="{
2110                    'bg-red-500/20': $store.confirm?.type === 'danger',
2111                    'bg-amber-500/20': $store.confirm?.type === 'warning',
2112                    'bg-green-500/20': $store.confirm?.type === 'success',
2113                    'bg-blue-500/20': $store.confirm?.type === 'info'
2114                }">
2115                
2116                <template x-if="$store.confirm?.type === 'danger' || $store.confirm?.type === 'warning'">
2117                    <svg
2118                        class="w-6 h-6"
2119                        :class="$store.confirm?.iconColorClasses"
2120                        fill="none"
2121                        viewBox="0 0 24 24"
2122                        stroke-width="2"
2123                        stroke="currentColor"
2124                    >
2125                        <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z" />
2126                    </svg>
2127                </template>
2128                <template x-if="$store.confirm?.type === 'success'">
2129                    <svg
2130                        class="w-6 h-6"
2131                        :class="$store.confirm?.iconColorClasses"
2132                        fill="none"
2133                        viewBox="0 0 24 24"
2134                        stroke-width="2"
2135                        stroke="currentColor"
2136                    >
2137                        <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
2138                    </svg>
2139                </template>
2140                
2141                <template x-if="$store.confirm?.type === 'info'">
2142                    <svg
2143                        class="w-6 h-6"
2144                        :class="$store.confirm?.iconColorClasses"
2145                        fill="none"
2146                        viewBox="0 0 24 24"
2147                        stroke-width="2"
2148                        stroke="currentColor"
2149                    >
2150                        <path stroke-linecap="round" stroke-linejoin="round" d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z" />
2151                    </svg>
2152                </template>
2153            </div>
2154
2155            
2156            <h2
2157                id="confirm-modal-title"
2158                class="text-lg font-semibold text-white text-center mb-2"
2159                x-text="$store.confirm?.title"
2160            ></h2>
2161
2162            
2163            <p
2164                class="text-gray-400 text-center mb-6"
2165                x-text="$store.confirm?.message"
2166            ></p>
2167
2168            
2169            <div class="flex flex-col-reverse sm:flex-row sm:justify-center gap-3">
2170                
2171                <button
2172                    type="button"
2173                    @click="$store.confirm?.cancel()"
2174                    class="px-4 py-2.5 text-sm font-medium text-gray-300 bg-gray-800 hover:bg-gray-700 rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-gray-500 focus:ring-offset-2 focus:ring-offset-gray-900"
2175                    x-text="$store.confirm?.cancelText"
2176                ></button>
2177
2178                
2179                <button
2180                    type="button"
2181                    @click="$store.confirm?.confirm()"
2182                    class="px-4 py-2.5 text-sm font-medium text-white rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-900"
2183                    :class="$store.confirm?.confirmButtonClasses"
2184                    x-text="$store.confirm?.confirmText"
2185                ></button>
2186            </div>
2187        </div>
2188    </div>
2189</div>
2190    </template>
2191</div>
2192
2193        <!-- Auto-open login modal if there are auth errors -->
2194        
2195        <!-- Auto-open register modal if there are auth errors -->
2196        
2197        <!-- Cookie Consent Scripts -->
2198                    <template id="deferred-cookie-consent-template">
2199                <!-- Main Cookie Consent Banner -->
2200<div class="cookie-consent-root
2201    cookie-consent-hide
2202    
2203    consent-layout-cloud
2204    theme-dark"
2205     data-cookie-prefix="sinfulx-ai_2026"
2206     data-cookie-lifetime="365"
2207     data-reject-lifetime="30"
2208     role="dialog"
2209     aria-modal="true"
2210     aria-label="Cookie consent banner"
2211>
2212    <div class="cookie-consent-container">
2213        <div class="cookie-consent-content-container">
2214            <div class="cookie-consent-content">
2215                <h2 class="cookie-consent-content-title">
2216                    🍪 Cookie Preferences
2217                </h2>
2218                <div class="cookie-consent-content-description">
2219                    <p>We use cookies to enhance your experience on SinfulX AI, analyze site usage, and improve our AI-powered content generation services. Your privacy matters to us.</p>
2220                </div>
2221            </div>
2222
2223            <div class="cookie-consent-button-container">
2224                <div class="cookie-consent-button-action flip-button">
2225                    <button type="button" class="cookie-consent-accept" aria-label="Accept all cookies">
2226                        Accept all
2227                    </button>
2228                    <button type="button" class="cookie-consent-reject" aria-label="Reject all cookies">
2229                        Reject all
2230                    </button>
2231                </div>
2232                                    <button type="button" class="preferences-btn" aria-expanded="false"
2233                            aria-controls="cookie-preferences-modal">
2234                        Manage preferences
2235                    </button>
2236                            </div>
2237        </div>
2238    </div>
2239
2240            <div class="cookie-consent-links-container">
2241            <ul class="cookie-consent-links-list">
2242                                    <li class="cookie-consent-link-item">
2243                        <a target="_blank" rel="noopener noreferrer" href="/legal/privacy"
2244                           class="cookie-consent-link">
2245                            Privacy Policy
2246                        </a>
2247                    </li>
2248                                    <li class="cookie-consent-link-item">
2249                        <a target="_blank" rel="noopener noreferrer" href="/legal/terms"
2250                           class="cookie-consent-link">
2251                            Terms of Service
2252                        </a>
2253                    </li>
2254                                    <li class="cookie-consent-link-item">
2255                        <a target="_blank" rel="noopener noreferrer" href="/legal/gdpr"
2256                           class="cookie-consent-link">
2257                            GDPR Policy
2258                        </a>
2259                    </li>
2260                            </ul>
2261        </div>
2262    </div>
2263
2264<!-- Cookie Preferences Modal -->
2265<div id="cookie-preferences-modal" class="cookie-preferences-modal" aria-hidden="true">
2266    <div class="cookie-preferences-modal-overlay" tabindex="-1"></div>
2267    <div class="cookie-preferences-modal-content" role="document">
2268        <div class="cookie-preferences-modal-header">
2269            <h2 id="cookie-modal-title" class="cookie-preferences-modal-title">
2270                Cookie Preferences
2271            </h2>
2272            <button type="button" class="cookie-preferences-modal-close" aria-label="Close cookie preferences">
2273                <svg width="12" height="12" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"
2274                     aria-hidden="true">
2275                    <path d="M12 4L4 12" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
2276                    <path d="M4 4L12 12" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
2277                </svg>
2278            </button>
2279        </div>
2280        <div class="cookie-preferences-modal-body">
2281            <p class="cookie-preferences-intro">
2282                You can customize your cookie preferences below.
2283            </p>
2284
2285            <div class="cookie-categories">
2286                                                            <div class="cookie-category cookie-category-necessary">
2287                            <div class="cookie-category-header">
2288                                <h3 class="cookie-category-title">Essential Cookies</h3>
2289                                <label class="cookie-toggle">
2290                                    <input type="checkbox"
2291                                           disabled checked
2292                                           data-category="necessary"
2293                                           aria-label="Essential Cookies toggle">
2294                                    <span class="cookie-toggle-slider"></span>
2295                                </label>
2296                            </div>
2297                            <p class="cookie-category-description">These cookies are essential for the website to function properly.</p>
2298                        </div>
2299                                                                                <div class="cookie-category cookie-category-analytics">
2300                            <div class="cookie-category-header">
2301                                <h3 class="cookie-category-title">Analytics Cookies</h3>
2302                                <label class="cookie-toggle">
2303                                    <input type="checkbox"
2304                                           
2305                                           data-category="analytics"
2306                                           aria-label="Analytics Cookies toggle">
2307                                    <span class="cookie-toggle-slider"></span>
2308                                </label>
2309                            </div>
2310                            <p class="cookie-category-description">These cookies help us understand how visitors interact with our AI platform and improve our services.</p>
2311                        </div>
2312                                                                                <div class="cookie-category cookie-category-marketing">
2313                            <div class="cookie-category-header">
2314                                <h3 class="cookie-category-title">Marketing Cookies</h3>
2315                                <label class="cookie-toggle">
2316                                    <input type="checkbox"
2317                                           
2318                                           data-category="marketing"
2319                                           aria-label="Marketing Cookies toggle">
2320                                    <span class="cookie-toggle-slider"></span>
2321                                </label>
2322                            </div>
2323                            <p class="cookie-category-description">These cookies are used for advertising and tracking purposes.</p>
2324                        </div>
2325                                                                                <div class="cookie-category cookie-category-preferences">
2326                            <div class="cookie-category-header">
2327                                <h3 class="cookie-category-title">Preferences Cookies</h3>
2328                                <label class="cookie-toggle">
2329                                    <input type="checkbox"
2330                                           
2331                                           data-category="preferences"
2332                                           aria-label="Preferences Cookies toggle">
2333                                    <span class="cookie-toggle-slider"></span>
2334                                </label>
2335                            </div>
2336                            <p class="cookie-category-description">These cookies allow the website to remember user preferences.</p>
2337                        </div>
2338                                                </div>
2339        </div>
2340        <div class="cookie-preferences-modal-footer">
2341            <div class="cookie-preferences-modal-button-group">
2342                <button type="button" class="cookie-consent-accept primary-button">
2343                    Accept all
2344                </button>
2345                <button type="button" class="cookie-consent-reject primary-button">
2346                    Reject all
2347                </button>
2348            </div>
2349            <div class="cookie-preferences-modal-save">
2350                <button type="button" class="cookie-preferences-save primary-button">
2351                    Save preferences
2352                </button>
2353            </div>
2354        </div>
2355    </div>
2356</div>
2357
2358<script src="https://sinfulx.ai/vendor/devrabiul/laravel-cookie-consent/js/script.js"></script>
2358<script src="https://sinfulx.ai/laravel-cookie-consent/script-utils"></script>
2358
2359
2360<script type="text/javascript">
2361    "use strict";
2362    // Load analytics/tracking services based on preferences
2363
2364    // Then define your service loader
2365    window.loadCookieCategoriesEnabledServices = function () {
2366        const preferences = getCookiePreferences();
2367        if (!preferences) return;
2368
2369                                                        try {
2370                    if (preferences?.analytics) {
2371                        const action = "loadGoogleAnalytics";
2372                        if (typeof window[action] === "function") {
2373                            window[action]();
2374                        }
2375                    }
2376                } catch (exception) {
2377                    console.info(exception)
2378                }
2379                                                try {
2380                    if (preferences?.marketing) {
2381                        const action = "loadFacebookPixel";
2382                        if (typeof window[action] === "function") {
2383                            window[action]();
2384                        }
2385                    }
2386                } catch (exception) {
2387                    console.info(exception)
2388                }
2389                                            }
2390
2391    document.addEventListener('DOMContentLoaded', function () {
2392        try {
2393            loadCookieCategoriesEnabledServices();
2394        } catch (e) {
2395            console.info(e);
2396        }
2397    })
2398</script>
2398
2399
2400            </template>
2401            
2401<script>
2402                (function () {
2403                    var loaded = false;
2404                    // Scroll/idle only: pointerdown/touchstart raced the first tap
2405                    // (age gate, card, filter) and inflated mobile INP.
2406                    var interactionEvents = ['scroll'];
2407
2408                    function copyScriptAttributes(source, target) {
2409                        for (var i = 0; i < source.attributes.length; i++) {
2410                            var attr = source.attributes[i];
2411                            target.setAttribute(attr.name, attr.value);
2412                        }
2413                    }
2414
2415                    function replayDomReadyListener(listener) {
2416                        window.setTimeout(function () {
2417                            var event = new Event('DOMContentLoaded');
2418
2419                            if (typeof listener === 'function') {
2420                                listener.call(document, event);
2421                                return;
2422                            }
2423
2424                            if (listener && typeof listener.handleEvent === 'function') {
2425                                listener.handleEvent(event);
2426                            }
2427                        }, 0);
2428                    }
2429
2430                    function executeScript(source) {
2431                        return new Promise(function (resolve) {
2432                            var script = document.createElement('script');
2433                            var originalAddEventListener = document.addEventListener;
2434
2435                            document.addEventListener = function (type, listener, options) {
2436                                if (type === 'DOMContentLoaded' && document.readyState !== 'loading') {
2437                                    replayDomReadyListener(listener);
2438                                    return;
2439                                }
2440
2441                                return originalAddEventListener.call(document, type, listener, options);
2442                            };
2443
2444                            function restoreDomReadyListener() {
2445                                document.addEventListener = originalAddEventListener;
2446                            }
2447
2448                            copyScriptAttributes(source, script);
2449
2450                            if (source.src) {
2451                                script.async = false;
2452                                script.onload = function () {
2453                                    restoreDomReadyListener();
2454                                    resolve();
2455                                };
2456                                script.onerror = function () {
2457                                    restoreDomReadyListener();
2458                                    resolve();
2459                                };
2460                                document.body.appendChild(script);
2461                                return;
2462                            }
2463
2464                            script.text = source.textContent;
2465                            document.body.appendChild(script);
2466                            restoreDomReadyListener();
2467                            resolve();
2468                        });
2469                    }
2470
2471                    function executeScriptsSequentially(scripts) {
2472                        return scripts.reduce(function (chain, script) {
2473                            return chain.then(function () {
2474                                return executeScript(script);
2475                            });
2476                        }, Promise.resolve());
2477                    }
2478
2479                    function activateCookieConsent() {
2480                        if (loaded) return;
2481                        loaded = true;
2482
2483                        var template = document.getElementById('deferred-cookie-consent-template');
2484                        if (!template) return;
2485
2486                        var fragment = template.content.cloneNode(true);
2487                        var scripts = Array.prototype.slice.call(fragment.querySelectorAll('script'));
2488                        scripts.forEach(function (script) {
2489                            script.remove();
2490                        });
2491
2492                        template.parentNode.insertBefore(fragment, template);
2493                        template.remove();
2494
2495                        if (typeof window.__sxDowngradeCookieConsentHeadings === 'function') {
2496                            window.__sxDowngradeCookieConsentHeadings();
2497                        }
2498
2499                        executeScriptsSequentially(scripts).then(function () {
2500                            if (typeof window.loadCookieCategoriesEnabledServices === 'function') {
2501                                window.loadCookieCategoriesEnabledServices();
2502                            }
2503                            document.dispatchEvent(new CustomEvent('sxCookieConsentLoaded'));
2504                        });
2505                    }
2506
2507                    function scheduleCookieConsent() {
2508                        if ('requestIdleCallback' in window) {
2509                            window.requestIdleCallback(activateCookieConsent, { timeout: 3500 });
2510                            return;
2511                        }
2512
2513                        window.setTimeout(activateCookieConsent, 2200);
2514                    }
2515
2516                    interactionEvents.forEach(function (eventName) {
2517                        window.addEventListener(eventName, activateCookieConsent, { once: true, passive: true });
2518                    });
2519
2520                    if (document.readyState === 'complete') {
2521                        scheduleCookieConsent();
2522                    } else {
2523                        window.addEventListener('load', scheduleCookieConsent, { once: true });
2524                    }
2525
2526                    window.setTimeout(activateCookieConsent, 6000);
2527                })();
2528            </script>
2528
2529        
2530        
2531        
2531<script>
2532            (function () {
2533                var TARGET_TAGS = ['h2', 'h3'];
2534                function downgradeCookieHeadings(root) {
2535                    if (!root) return;
2536                    TARGET_TAGS.forEach(function (tag) {
2537                        var level = tag.charAt(1);
2538                        root.querySelectorAll(tag).forEach(function (heading) {
2539                            var replacement = document.createElement('strong');
2540                            replacement.setAttribute('role', 'heading');
2541                            replacement.setAttribute('aria-level', level);
2542                            for (var i = 0; i < heading.attributes.length; i++) {
2543                                var attr = heading.attributes[i];
2544                                if (attr.name === 'role' || attr.name === 'aria-level') continue;
2545                                replacement.setAttribute(attr.name, attr.value);
2546                            }
2547                            replacement.innerHTML = heading.innerHTML;
2548                            heading.replaceWith(replacement);
2549                        });
2550                    });
2551                }
2552                function run() {
2553                    downgradeCookieHeadings(document.querySelector('.cookie-consent-root'));
2554                    downgradeCookieHeadings(document.querySelector('.cookie-preferences-modal'));
2555                }
2556                window.__sxDowngradeCookieConsentHeadings = run;
2557                if (document.readyState === 'loading') {
2558                    document.addEventListener('DOMContentLoaded', run);
2559                } else {
2560                    run();
2561                }
2562                document.addEventListener('sxCookieConsentLoaded', run);
2563            })();
2564        </script>
2564
2565
2566        <!-- Google Analytics with Consent Mode v2 (GDPR compliance) -->
2567                
2567<script>
2568            window.dataLayer = window.dataLayer || [];
2569            function gtag(){dataLayer.push(arguments);}
2570
2571            gtag('consent', 'default', {
2572                'ad_storage': 'denied',
2573                'ad_user_data': 'denied',
2574                'ad_personalization': 'denied',
2575                'analytics_storage': 'denied',
2576                'wait_for_update': 500
2577            });
2578
2579            (function() {
2580                var gaLoaded = false;
2581
2582                function loadGoogleAnalytics() {
2583                    if (gaLoaded) return;
2584                    gaLoaded = true;
2585
2586                    var script = document.createElement('script');
2587                    script.src = 'https://www.googletagmanager.com/gtag/js?id=G-YGVFEL8VVZ';
2588                    script.async = true;
2589                    document.head.appendChild(script);
2590
2591                    gtag('js', new Date());
2592                    gtag('config', 'G-YGVFEL8VVZ');
2593                }
2594
2595                function updateConsent(analyticsGranted) {
2596                    gtag('consent', 'update', {
2597                        'ad_storage': analyticsGranted ? 'granted' : 'denied',
2598                        'ad_user_data': analyticsGranted ? 'granted' : 'denied',
2599                        'ad_personalization': analyticsGranted ? 'granted' : 'denied',
2600                        'analytics_storage': analyticsGranted ? 'granted' : 'denied'
2601                    });
2602
2603                    if (analyticsGranted) {
2604                        loadGoogleAnalytics();
2605                    }
2606                }
2607
2608                function checkAndUpdateConsent() {
2609                    if (typeof window.getCookiePreferences === 'function') {
2610                        const prefs = window.getCookiePreferences();
2611                        if (prefs && prefs.analytics === true) {
2612                            updateConsent(true);
2613                        }
2614                    }
2615                }
2616
2617                if (document.readyState === 'loading') {
2618                    document.addEventListener('DOMContentLoaded', checkAndUpdateConsent);
2619                } else {
2620                    checkAndUpdateConsent();
2621                }
2622
2623                document.addEventListener('cookieConsentAccepted', function() {
2624                    if (typeof window.getCookiePreferences === 'function') {
2625                        const prefs = window.getCookiePreferences();
2626                        updateConsent(prefs && prefs.analytics === true);
2627                    }
2628                });
2629
2630                document.addEventListener('cookiePreferencesSaved', function(e) {
2631                    updateConsent(e.detail && e.detail.analytics === true);
2632                });
2633            })();
2634        </script>
2634
2635        
2636        <!-- NSFW Mode Click-to-Reveal Component -->
2637        
2638        <!-- Ahrefs Analytics - Deferred to avoid blocking LCP -->
2639        
2639<script>
2640            (function () {
2641                var ahrefsLoaded = false;
2642                var isPublicPerformanceRoute = false;
2643
2644                function hasAnalyticsConsent() {
2645                    if (typeof window.getCookiePreferences !== 'function') return false;
2646
2647                    var prefs = window.getCookiePreferences();
2648                    return prefs && prefs.analytics === true;
2649                }
2650
2651                function loadAhrefs() {
2652                    if (ahrefsLoaded || !hasAnalyticsConsent()) return;
2653                    ahrefsLoaded = true;
2654
2655                    var s = document.createElement('script');
2656                    s.src = 'https://analytics.ahrefs.com/analytics.js';
2657                    s.dataset.key = 'FOnFfnoVPSoehQVa1CDhaQ';
2658                    s.async = true;
2659                    document.head.appendChild(s);
2660                }
2661
2662                function scheduleAhrefs() {
2663                    if (isPublicPerformanceRoute && 'requestIdleCallback' in window) {
2664                        window.requestIdleCallback(loadAhrefs, { timeout: 5000 });
2665                        return;
2666                    }
2667
2668                    loadAhrefs();
2669                }
2670
2671                if (document.readyState === 'complete') {
2672                    scheduleAhrefs();
2673                } else {
2674                    window.addEventListener('load', scheduleAhrefs, { once: true });
2675                }
2676
2677                document.addEventListener('cookieConsentAccepted', scheduleAhrefs);
2678                document.addEventListener('cookiePreferencesSaved', scheduleAhrefs);
2679            })();
2680        </script>
2680
2681
2682        <!-- Conversion modals (generator + /models primary path) -->
2683        
2684        
2685        <!-- Additional Scripts -->
2686        
2686<script>
2687function languageSwitcher() {
2688    return {
2689        isOpen: false,
2690        toggleDropdown() { this.isOpen = !this.isOpen; },
2691        closeDropdown() { this.isOpen = false; },
2692    };
2693}
2694</script>
2694
2695    
2695<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"21515c997b8746588bfd27f54f9b2816","spa":2}' crossorigin="anonymous"></script>
2695
2696</body>
2697</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.