<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description" content="Tanja Tickles — creator portfolio & links." />
<title>Tanja Tickles | Official Links</title>
<style>
:root{
--bg:#0b0b10;
--card:#12121a;
--text:#f2f2f7;
--muted:#b7b7c5;
--line:#242436;
--accent:#ff4fd8;
--accent2:#7c5cff;
--good:#33d6a6;
--shadow: 0 18px 60px rgba(0,0,0,.45);
--radius: 20px;
--max: 1080px;
--font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}
*{box-sizing:border-box}
html,body{height:100%}
body{
margin:0;
font-family:var(--font);
background:
radial-gradient(1200px 600px at 10% 0%, rgba(255,79,216,.18), transparent 55%),
radial-gradient(900px 500px at 90% 10%, rgba(124,92,255,.20), transparent 50%),
radial-gradient(800px 700px at 50% 100%, rgba(51,214,166,.10), transparent 55%),
var(--bg);
color:var(--text);
line-height:1.4;
}
a{color:inherit}
.wrap{max-width:var(--max); margin:0 auto; padding:28px 18px 90px}
header{
display:flex; align-items:center; justify-content:space-between; gap:12px;
margin-bottom:26px;
}
.brand{display:flex; align-items:center; gap:12px}
.logo{
width:46px; height:46px; border-radius:14px;
background: linear-gradient(135deg, var(--accent), var(--accent2));
box-shadow: var(--shadow);
}
.brand h1{font-size:16px; margin:0; letter-spacing:.2px}
.brand p{margin:0; color:var(--muted); font-size:13px}
.pillbar{display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end}
.pill{
border:1px solid var(--line);
padding:10px 12px;
border-radius:999px;
background: rgba(18,18,26,.7);
backdrop-filter: blur(8px);
font-size:13px;
color:var(--muted);
text-decoration:none;
transition: transform .12s ease, border-color .12s ease;
}
.pill:hover{transform: translateY(-1px); border-color: rgba(255,255,255,.22); color:var(--text)}
.hero{
display:grid; grid-template-columns: 1.15fr .85fr; gap:18px;
align-items:stretch;
}
@media (max-width: 860px){
.hero{grid-template-columns:1fr}
.pillbar{justify-content:flex-start}
}
.card{
background: rgba(18,18,26,.78);
border: 1px solid rgba(255,255,255,.08);
border-radius: var(--radius);
box-shadow: var(--shadow);
overflow:hidden;
}
.pad{padding:22px}
.kicker{
display:inline-flex; align-items:center; gap:10px;
padding:8px 12px; border-radius:999px;
background: rgba(255,79,216,.12);
border:1px solid rgba(255,79,216,.25);
color:#ffd4f4;
font-size:12px;
margin-bottom:12px;
}
.dot{width:8px;height:8px;border-radius:50%; background: var(--good); box-shadow:0 0 16px rgba(51,214,166,.55)}
h2{margin:0 0 10px; font-size:38px; letter-spacing:-.6px}
@media (max-width: 860px){ h2{font-size:32px} }
.subtitle{margin:0 0 16px; color:var(--muted); font-size:15px; max-width:62ch}
.ctaRow{display:flex; gap:12px; flex-wrap:wrap; margin-top:16px}
.btn{
display:inline-flex; align-items:center; justify-content:center; gap:10px;
padding:12px 14px;
border-radius: 14px;
text-decoration:none;
border:1px solid rgba(255,255,255,.12);
background: rgba(255,255,255,.06);
color:var(--text);
font-weight:600;
transition: transform .12s ease, background .12s ease, border-color .12s ease;
cursor:pointer;
user-select:none;
}
.btn:hover{transform: translateY(-1px); background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.22)}
.btn.primary{
background: linear-gradient(135deg, var(--accent), var(--accent2));
border:0;
}
.btn.primary:hover{filter: brightness(1.05)}
.btn.small{padding:10px 12px; border-radius: 12px; font-size:13px}
.portrait{
position:relative;
min-height: 340px;
display:flex; flex-direction:column; justify-content:space-between;
}
.portraitTop{
padding:22px;
border-bottom:1px solid rgba(255,255,255,.08);
background: radial-gradient(800px 320px at 0% 0%, rgba(255,79,216,.25), transparent 55%),
radial-gradient(700px 320px at 100% 0%, rgba(124,92,255,.25), transparent 55%);
}
.tagline{margin:0; color:var(--muted); font-size:14px}
.statgrid{
display:grid; grid-template-columns:1fr 1fr;
gap:10px;
padding:18px 22px 22px;
}
.stat{
border:1px solid rgba(255,255,255,.08);
border-radius:16px;
padding:14px;
background: rgba(0,0,0,.22);
}
.stat b{display:block; font-size:14px; margin-bottom:6px}
.stat span{color:var(--muted); font-size:13px}
section{margin-top:18px}
.grid{
display:grid; grid-template-columns:1fr 1fr; gap:18px;
}
@media (max-width: 860px){ .grid{grid-template-columns:1fr} }
h3{margin:0 0 12px; font-size:18px}
.list{display:flex; flex-direction:column; gap:10px}
.link{
display:flex; align-items:center; justify-content:space-between; gap:12px;
padding:14px 14px;
border-radius: 16px;
border:1px solid rgba(255,255,255,.10);
background: rgba(0,0,0,.20);
text-decoration:none;
transition: transform .12s ease, border-color .12s ease, background .12s ease;
}
.link:hover{transform: translateY(-1px); border-color: rgba(255,255,255,.22); background: rgba(0,0,0,.26)}
.link .left{display:flex; align-items:center; gap:12px}
.ico{
width:40px; height:40px; border-radius:14px;
background: rgba(255,255,255,.08);
display:grid; place-items:center;
border:1px solid rgba(255,255,255,.10);
font-weight:800;
}
.link b{display:block}
.link span{display:block; color:var(--muted); font-size:13px}
.arrow{color:rgba(255,255,255,.55); font-weight:800}
.chips{display:flex; flex-wrap:wrap; gap:10px}
.chip{
padding:10px 12px;
border-radius:999px;
border:1px solid rgba(255,255,255,.10);
background: rgba(0,0,0,.20);
color:var(--muted);
font-size:13px;
}
.gallery{
display:grid;
grid-template-columns: repeat(3, 1fr);
gap:10px;
}
@media (max-width: 860px){ .gallery{grid-template-columns: repeat(2, 1fr);} }
.ph{
border-radius:16px;
border:1px dashed rgba(255,255,255,.18);
background: rgba(255,255,255,.04);
aspect-ratio: 4/5;
display:grid; place-items:center;
color:rgba(255,255,255,.55);
font-size:12px;
padding:10px;
text-align:center;
}
footer{
margin-top:18px;
color:var(--muted);
font-size:13px;
display:flex;
gap:10px;
flex-wrap:wrap;
justify-content:space-between;
align-items:center;
padding: 16px 2px;
}
footer a{color:var(--muted)}
footer a:hover{color:var(--text)}
/* Sticky bottom CTA */
.sticky{
position: fixed;
left: 0; right: 0; bottom: 0;
padding: 12px;
background: rgba(11,11,16,.72);
border-top: 1px solid rgba(255,255,255,.10);
backdrop-filter: blur(10px);
display:flex; justify-content:center;
}
.sticky .inner{
width: min(var(--max), 100%);
display:flex; gap:10px; align-items:center; justify-content:space-between;
padding: 0 8px;
}
.sticky .inner span{color:var(--muted); font-size:13px}
.sticky .inner .btn{white-space:nowrap}
/* Age gate modal */
.gate{
position: fixed;
inset: 0;
display:none;
background: rgba(0,0,0,.72);
backdrop-filter: blur(6px);
align-items:center;
justify-content:center;
padding: 18px;
z-index: 9999;
}
.gate.show{display:flex}
.gate .modal{
width: min(560px, 100%);
border-radius: 24px;
border:1px solid rgba(255,255,255,.12);
background: rgba(18,18,26,.92);
box-shadow: var(--shadow);
overflow:hidden;
}
.gate .modal .top{
padding: 20px 20px 12px;
background: radial-gradient(700px 240px at 0% 0%, rgba(255,79,216,.22), transparent 55%),
radial-gradient(600px 240px at 100% 0%, rgba(124,92,255,.22), transparent 55%);
border-bottom:1px solid rgba(255,255,255,.10);
}
.gate h4{margin:0 0 8px; font-size:18px}
.gate p{margin:0; color:var(--muted); font-size:14px}
.gate .body{padding: 16px 20px 20px}
.gate .fineprint{margin-top:10px; font-size:12px; color:rgba(255,255,255,.5)}
</style>
</head>
<body>
<!-- Age Gate -->
<div class="gate" id="ageGate" role="dialog" aria-modal="true" aria-labelledby="gateTitle">
<div class="modal">
<div class="top">
<h4 id="gateTitle">18+ only</h4>
<p>This site contains adult-oriented content and links. Please confirm you are at least 18 years old (or the legal age in your location).</p>
</div>
<div class="body">
<div class="ctaRow" style="margin-top:0">
<button class="btn primary" id="confirmAge">I’m 18+ — Enter</button>
<a class="btn" href="https://www.google.com">Leave</a>
</div>
<div class="fineprint">
By entering, you agree you’re legally allowed to view adult content where you are, and you accept this site’s terms.
</div>
</div>
</div>
</div>
<div class="wrap" id="top">
<header>
<div class="brand">
<div class="logo" aria-hidden="true"></div>
<div>
<h1>Tanja Tickles</h1>
<p>Official portfolio • links • bookings</p>
</div>
</div>
<nav class="pillbar" aria-label="Primary">
<a class="pill" href="#links">Links</a>
<a class="pill" href="#about">About</a>
<a class="pill" href="#gallery">Gallery</a>
<a class="pill" href="#contact">Contact</a>
</nav>
</header>
<div class="hero">
<div class="card pad">
<div class="kicker"><span class="dot"></span> New drops weekly • collabs welcome</div>
<h2>Playful. Premium. Unapologetically you.</h2>
<p class="subtitle">
Welcome to my official one-stop page. Find verified links, highlights, and ways to book collaborations.
(No explicit content is hosted on this page.)
</p>
<div class="ctaRow">
<a class="btn primary" href="#links">View Verified Links</a>
<a class="btn" href="#contact">Business Inquiries</a>
<a class="btn" href="#gallery">See Highlights</a>
</div>
<div style="margin-top:18px" class="chips" aria-label="Quick tags">
<span class="chip">Creator • Performer</span>
<span class="chip">Customs</span>
<span class="chip">PPV</span>
<span class="chip">Collabs</span>
<span class="chip">Brand-friendly promos</span>
</div>
</div>
<div class="card portrait">
<div class="portraitTop">
<p class="tagline"><b>Tip:</b> Always use links from this page to avoid impersonators.</p>
</div>
<div class="statgrid">
<div class="stat">
<b>Response time</b>
<span>24–48 hours (business)</span>
</div>
<div class="stat">
<b>Collabs</b>
<span>Selective • verified creators</span>
</div>
<div class="stat">
<b>Availability</b>
<span>Limited slots weekly</span>
</div>
<div class="stat">
<b>Location</b>
<span>Online • travel by request</span>
</div>
</div>
</div>
</div>
<section id="links" class="grid" aria-label="Links section">
<div class="card pad">
<h3>Verified Links</h3>
<div class="list">
<!-- Replace # with your real URLs -->
<a class="link" href="#" target="_blank" rel="noopener">
<div class="left">
<div class="ico">★</div>
<div>
<b>Subscribe / Premium</b>
<span>My main page (recommended)</span>
</div>
</div>
<div class="arrow">→</div>
</a>
<a class="link" href="#" target="_blank" rel="noopener">
<div class="left">
<div class="ico">▶</div>
<div>
<b>Clips</b>
<span>Short teasers & previews</span>
</div>
</div>
<div class="arrow">→</div>
</a>
<a class="link" href="#" target="_blank" rel="noopener">
<div class="left">
<div class="ico">✦</div>
<div>
<b>Custom Requests</b>
<span>Read guidelines + submit details</span>
</div>
</div>
<div class="arrow">→</div>
</a>
<a class="link" href="#" target="_blank" rel="noopener">
<div class="left">
<div class="ico">⌁</div>
<div>
<b>Wishlist</b>
<span>Support in a cute way</span>
</div>
</div>
<div class="arrow">→</div>
</a>
</div>
<div style="margin-top:14px; color:var(--muted); font-size:13px">
Pro tip: add UTM tags to links if you track traffic.
</div>
</div>
<div class="card pad" id="about">
<h3>About Tanja</h3>
<p style="margin:0 0 12px; color:var(--muted)">
Hi, I’m <b style="color:var(--text)">Tanja Tickles</b> — a playful, flirty creator with a premium vibe.
I focus on high-quality content, consistent drops, and a fun, respectful community.
</p>
<div class="chips" style="margin:10px 0 14px">
<span class="chip">High production value</span>
<span class="chip">Friendly chat energy</span>
<span class="chip">Clear boundaries</span>
<span class="chip">Consent-first</span>
</div>
<h3 style="margin-top:6px">Offerings</h3>
<ul style="margin:0; padding-left:18px; color:var(--muted)">
<li>Premium subscriptions + PPV</li>
<li>Custom content (subject to approval)</li>
<li>Collabs with verified creators</li>
<li>Brand promos (adult-friendly brands only)</li>
</ul>
</div>
</section>
<section id="gallery" class="card pad" aria-label="Gallery">
<h3>Highlights Gallery</h3>
<p style="margin:0 0 14px; color:var(--muted)">
Add 6–9 tasteful preview images (no nudity required) that match your brand aesthetic.
</p>
<div class="gallery">
<div class="ph">Preview Image 1<br>(replace)</div>
<div class="ph">Preview Image 2<br>(replace)</div>
<div class="ph">Preview Image 3<br>(replace)</div>
<div class="ph">Preview Image 4<br>(replace)</div>
<div class="ph">Preview Image 5<br>(replace)</div>
<div class="ph">Preview Image 6<br>(replace)</div>
</div>
<p style="margin:14px 0 0; color:rgba(255,255,255,.55); font-size:12px">
Tip: optimize images to ~200–400 KB each for fast loading.
</p>
</section>
<section class="grid" aria-label="Social and FAQ">
<div class="card pad">
<h3>Socials</h3>
<div class="list">
<a class="link" href="#" target="_blank" rel="noopener">
<div class="left">
<div class="ico">𝕏</div>
<div><b>X / Twitter</b><span>@tanjatickles (example)</span></div>
</div>
<div class="arrow">→</div>
</a>
<a class="link" href="#" target="_blank" rel="noopener">
<div class="left">
<div class="ico">◎</div>
<div><b>Instagram</b><span>@tanjatickles (example)</span></div>
</div>
<div class="arrow">→</div>
</a>
<a class="link" href="#" target="_blank" rel="noopener">
<div class="left">
<div class="ico">♪</div>
<div><b>TikTok</b><span>@tanjatickles (example)</span></div>
</div>
<div class="arrow">→</div>
</a>
</div>
<p style="margin:14px 0 0; color:var(--muted); font-size:13px">
Replace these with your real handles (or delete any you don’t use).
</p>
</div>
<div class="card pad">
<h3>FAQ</h3>
<div style="display:flex; flex-direction:column; gap:12px; color:var(--muted)">
<div>
<b style="color:var(--text)">Do you do meetups?</b><br/>
Not advertised here. Business-only requests via email.
</div>
<div>
<b style="color:var(--text)">Do you accept customs?</b><br/>
Yes—within my comfort zone and platform rules. Please include details and deadlines.
</div>
<div>
<b style="color:var(--text)">How do I avoid impersonators?</b><br/>
Use only the links on this page. If it’s not here, it’s not me.
</div>
</div>
</div>
</section>
<section id="contact" class="card pad" aria-label="Contact">
<h3>Contact & Bookings</h3>
<p style="margin:0 0 10px; color:var(--muted)">
For collabs, brand promos, press, and other professional inquiries:
</p>
<div class="ctaRow" style="margin-top:10px">
<!-- Replace with your email -->
<a class="btn primary" href="mailto:hello@tanjatickles.com?subject=Business%20Inquiry%20for%20Tanja%20Tickles">Email Me</a>
<a class="btn" href="#" target="_blank" rel="noopener">Media Kit (PDF)</a>
<a class="btn" href="#" target="_blank" rel="noopener">Custom Request Form</a>
</div>
<p style="margin:14px 0 0; color:rgba(255,255,255,.55); font-size:12px">
18+ only. This page does not host explicit content. All content and links are intended for consenting adults.
</p>
</section>
<footer>
<div>© <span id="year"></span> Tanja Tickles • All rights reserved</div>
<div style="display:flex; gap:12px; flex-wrap:wrap">
<a href="#top">Back to top</a>
<a href="#" onclick="openTerms(event)">Terms</a>
<a href="#" onclick="openPrivacy(event)">Privacy</a>
</div>
</footer>
</div>
<div class="sticky" role="navigation" aria-label="Sticky call to action">
<div class="inner">
<span>Use verified links only.</span>
<div style="display:flex; gap:10px; align-items:center;">
<a class="btn small" href="#links">Links</a>
<a class="btn small primary" href="#contact">Book / Inquire</a>
</div>
</div>
</div>
<script>
// Year
document.getElementById("year").textContent = new Date().getFullYear();
// Age gate
const gate = document.getElementById("ageGate");
const confirmBtn = document.getElementById("confirmAge");
const key = "tanja_tickles_age_verified_v1";
function showGate() {
gate.classList.add("show");
document.body.style.overflow = "hidden";
}
function hideGate() {
gate.classList.remove("show");
document.body.style.overflow = "";
}
const verified = localStorage.getItem(key) === "yes";
if (!verified) showGate();
confirmBtn.addEventListener("click", () => {
localStorage.setItem(key, "yes");
hideGate();
});
// Tiny modal-ish alerts for Terms/Privacy (replace with real pages later)
function openTerms(e){
e.preventDefault();
alert("Terms (placeholder)\\n\\n- 18+ only\\n- No redistribution\\n- Respect boundaries\\n- All sales subject to platform rules\\n\\nReplace this with a real Terms page when ready.");
}
function openPrivacy(e){
e.preventDefault();
alert("Privacy (placeholder)\\n\\n- Basic analytics may be used\\n- No sale of personal data intended\\n\\nReplace this with a real Privacy page when ready.");
}
</script>
</body>
</html>