/* Thotswipes theme v1 — spec: claude/thotswipes-theme-spec-1-oct.md. Single dark look. All classes prefixed ts- */
@font-face{font-family:'Outfit';src:url(fonts/outfit-latin.woff2) format('woff2');font-weight:500 800;font-display:swap}
@font-face{font-family:'Inter';src:url(fonts/inter-latin.woff2) format('woff2');font-weight:400 600;font-display:swap}
:root{
  color-scheme:dark;
  --bg:#07070A;--bg2:#0F0D16;--glass:rgba(24,20,36,.58);--glass2:rgba(255,255,255,.07);--line:rgba(255,255,255,.10);
  --fg:#F4F2FA;--muted:#A6A2B8;--dim:#6F6A84;--v1:#8B5CF6;--v2:#C084FC;--glow:rgba(139,92,246,.55);--like:#F472B6;
  --display:'Outfit',ui-rounded,system-ui,sans-serif;--body:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --r:18px;--nav:64px;--rail:236px;--ease:cubic-bezier(.2,.8,.2,1)
}
html.ts-html,body.ts{background:var(--bg);color:var(--fg)}
body.ts{margin:0;font-family:var(--body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}
:where(body.ts) a{color:inherit;text-decoration:none}
/* 1 Oct: :where() keeps this reset at low specificity so component button styles (.ts-tabs, .ts-iconbtn, .ts-glass) win */:where(body.ts) button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
body.ts :focus-visible{outline:2px solid var(--v2);outline-offset:2px}
.ts h1,.ts h2,.ts h3{font-family:var(--display);text-wrap:balance;margin:0;letter-spacing:-.01em}
.ts-i{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ts-glass{background:var(--glass);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);border:1px solid var(--line)}
.ts-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* logo */
.ts-logo{display:inline-flex;align-items:center;gap:9px;font-family:var(--display);font-weight:800;font-size:21px;letter-spacing:-.02em;color:var(--fg)}
.ts-logo svg{width:30px;height:30px;flex:none}

/* shell */
.ts-main{min-width:0;padding-bottom:calc(var(--nav) + env(safe-area-inset-bottom,0px))}
.ts-rail{display:none}
.ts-bnav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(4,1fr);padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));background:rgba(10,9,15,.86);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-top:1px solid var(--line)}
.ts-bnav a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:500;color:var(--muted);padding:6px 0;border-radius:12px}
.ts-bnav a.on{color:var(--fg)}
.ts-bnav a.on .ts-i{color:var(--v2);filter:drop-shadow(0 0 8px var(--glow))}
.ts-foot{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--dim);padding:22px 16px}
.ts-foot a:hover{color:var(--fg)}
.ts-toast{position:fixed;left:50%;bottom:calc(var(--nav) + env(safe-area-inset-bottom,0px) + 16px);transform:translate(-50%,20px);opacity:0;padding:10px 16px;border-radius:99px;font-size:13.5px;font-weight:500;z-index:80;transition:.3s var(--ease);pointer-events:none;max-width:calc(100% - 32px);text-align:center}
.ts-toast.show{opacity:1;transform:translate(-50%,0)}

/* feed */
.ts-feedwrap{position:fixed;inset:0 0 calc(var(--nav) + env(safe-area-inset-bottom,0px)) 0;z-index:5;background:#000}
.ts-feed{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none}
.ts-feed::-webkit-scrollbar{display:none}
.ts-reel{position:relative;height:100%;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center}
.ts-clip{position:relative;width:100%;height:100%;overflow:hidden;background:var(--bg2);touch-action:manipulation;-webkit-user-select:none;user-select:none}
.ts-clip video,.ts-clip .ts-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}
.ts-clip .ts-poster{z-index:0}
.ts-clip video{z-index:1}
.ts-shade{position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(transparent,rgba(0,0,0,.72));pointer-events:none;z-index:2}
.ts-pause{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;display:grid;place-items:center;background:rgba(0,0,0,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transform:scale(.8);transition:.2s var(--ease);pointer-events:none;z-index:4}
.ts-pause .ts-i{width:34px;height:34px;fill:#fff;stroke:none;margin-left:4px}
.ts-clip.paused .ts-pause{opacity:1;transform:scale(1)}
.ts-actions{position:absolute;right:10px;bottom:140px;display:flex;flex-direction:column;gap:16px;align-items:center;z-index:5;transition:opacity .35s var(--ease)}
.ts-act{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11.5px;font-weight:600;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.ts-bub{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:rgba(20,16,30,.42);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);transition:transform .2s var(--ease)}
.ts-act:active .ts-bub{transform:scale(.9)}
.ts-bub .ts-i{width:25px;height:25px}
.ts-like.on .ts-bub{color:var(--like)}
.ts-like.on .ts-bub .ts-i{fill:currentColor}
.ts-like.pop .ts-bub{animation:ts-pop .45s var(--ease)}
@keyframes ts-pop{30%{transform:scale(1.25)}100%{transform:scale(1)}}
.ts-full .ts-bub{background:linear-gradient(140deg,var(--v1),var(--v2));border-color:transparent;box-shadow:0 0 22px var(--glow)}
.ts-full .ts-bub .ts-i{fill:#fff;stroke:none;width:20px;height:20px;margin-left:2px}
.ts-ava{display:grid;place-items:center;border-radius:50%;overflow:hidden;font:700 15px var(--display);color:#fff;background:linear-gradient(140deg,var(--v1),#4c1d95);flex:none}
.ts-ava img{width:100%;height:100%;object-fit:cover}
.ts-act .ts-ava{width:50px;height:50px;box-shadow:0 0 0 2px #fff}
.ts-meta{position:absolute;left:14px;right:80px;bottom:20px;z-index:5;display:flex;flex-direction:column;gap:8px;align-items:flex-start;transition:opacity .35s var(--ease)}
.ts-mpill{font-weight:600;font-size:14px;padding:6px 12px;border-radius:99px;background:rgba(20,16,30,.45);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line)}
.ts-ttl{margin:0;font-size:14.5px;line-height:1.4;text-shadow:0 1px 8px rgba(0,0,0,.7);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ts-ttl a:hover{text-decoration:underline}
.ts-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ts-chip{display:inline-flex;align-items:center;font-size:12.5px;font-weight:500;padding:6px 11px;border-radius:99px;background:var(--glass2);border:1px solid var(--line);white-space:nowrap;transition:background .2s}
.ts-chip:hover{background:rgba(255,255,255,.12)}
.ts-chip.v{border-color:rgba(192,132,252,.45);color:#E9DDFF;background:rgba(139,92,246,.18)}
.ts-chip.on{background:var(--fg);color:#0B0A10;border-color:var(--fg)}
.ts-info-h{display:flex;align-items:center;gap:3px;font-size:12.5px;font-weight:600;color:var(--muted)}
.ts-info-h .ts-i{width:16px;height:16px}
.ts-prog{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.12);z-index:6}
.ts-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--v1),var(--v2));box-shadow:0 0 10px var(--glow)}
.ts-burst{position:absolute;width:96px;height:96px;margin:-48px 0 0 -48px;color:var(--like);pointer-events:none;z-index:7;animation:ts-burst .8s var(--ease) forwards}
.ts-burst .ts-i{width:100%;height:100%;fill:currentColor;filter:drop-shadow(0 0 18px rgba(244,114,182,.7))}
@keyframes ts-burst{0%{transform:scale(.3) rotate(-12deg);opacity:0}25%{transform:scale(1.15) rotate(6deg);opacity:1}70%{transform:scale(1) translateY(-10px);opacity:1}100%{transform:scale(1.2) translateY(-60px);opacity:0}}
.ts-topbar{position:absolute;left:0;right:0;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(env(safe-area-inset-top,0px) + 10px) 14px 26px;background:linear-gradient(rgba(0,0,0,.55),transparent);transition:opacity .35s var(--ease);pointer-events:none}
.ts-topbar>*{pointer-events:auto}
.ts-topbar .ts-logo{font-size:18px}
.ts-topbar .ts-logo svg{width:26px;height:26px}
.ts-tabs{display:flex;padding:3px;border-radius:99px}
.ts-tabs button{padding:7px 13px;border-radius:99px;font-size:13px;font-weight:600;color:var(--muted);transition:.2s}
.ts-tabs button.on{background:rgba(255,255,255,.14);color:var(--fg)}
.ts-ctx{display:none;align-items:center;gap:6px;padding:7px 8px 7px 13px;border-radius:99px;font-size:13px;font-weight:600}
.ts-ctx .ts-i{width:16px;height:16px}
.ts-feedwrap.has-ctx .ts-tabs{display:none}
.ts-feedwrap.has-ctx .ts-ctx{display:flex}
.ts-iconbtn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center}
.ts-immersive .ts-topbar,.ts-immersive .ts-actions{opacity:0;pointer-events:none}
.ts-immersive .ts-meta{opacity:.35}
.ts-arrows{display:none}
.ts-side{display:none}
.ts-seo{position:relative;z-index:1}

/* info sheet (phone) */
.ts-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .3s;z-index:60}
.ts-backdrop.open{opacity:1;pointer-events:auto}
.ts-sheet{position:fixed;left:0;right:0;bottom:0;max-height:80%;overflow-y:auto;z-index:61;border-radius:24px 24px 0 0;padding:10px 16px calc(24px + env(safe-area-inset-bottom,0px));transform:translateY(105%);transition:transform .38s var(--ease);background:rgba(18,15,27,.94);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-top:1px solid var(--line)}
.ts-sheet.open{transform:none}
.ts-grab{width:40px;height:5px;border-radius:9px;background:rgba(255,255,255,.25);margin:2px auto 14px}
.ts-info{display:flex;flex-direction:column;gap:16px}
.ts-info h1,.ts-info h2.ts-h{font-size:22px;font-weight:700;line-height:1.2}
.ts-url{font:500 12px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);padding:8px 10px;border-radius:10px;background:var(--glass2);border:1px solid var(--line);overflow-wrap:anywhere}
.ts-mrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ts-mrow .ts-ava{width:44px;height:44px;font-size:16px}
.ts-who{display:flex;flex-direction:column;min-width:0;flex:1}
.ts-who b{font-weight:600}
.ts-who span{font-size:12.5px;color:var(--muted)}
.ts-desc{color:var(--muted);line-height:1.6;margin:0;max-width:68ch}
.ts-label{font:600 11.5px var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}

/* pages */
.ts-page{max-width:1440px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 14px) 16px 28px;display:flex;flex-direction:column;gap:18px}
.ts-phead{display:flex;align-items:center;gap:10px;min-height:40px}
.ts-phead .ts-logo{font-size:18px}
.ts-phead .ts-logo svg{width:26px;height:26px}
.ts-back{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none}
.ts-crumb{font-size:12.5px;color:var(--dim);font-weight:500}
.ts-crumb a:hover{color:var(--fg)}
.ts-h1{font-size:clamp(26px,5vw,36px);font-weight:700;letter-spacing:-.02em;line-height:1.1}
.ts-intro{color:var(--muted);line-height:1.55;margin:0;max-width:68ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ts-intro.full{-webkit-line-clamp:unset;display:block}
.ts-more{color:var(--v2);font-weight:600;font-size:13px;align-self:flex-start}
.ts-btn-v{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:99px;font-weight:700;font-family:var(--display);font-size:15px;background:linear-gradient(140deg,var(--v1),var(--v2));box-shadow:0 6px 24px -6px var(--glow),inset 0 1px 0 rgba(255,255,255,.25);color:#fff!important;transition:transform .2s var(--ease)}
.ts-btn-v:active{transform:scale(.96)}
.ts-btn-v .ts-i{width:18px;height:18px}
.ts-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}
.ts-tile{display:flex;flex-direction:column;gap:7px;min-width:0}
.ts-thumb{position:relative;aspect-ratio:9/16;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--bg2);transition:transform .25s var(--ease),box-shadow .25s}
.ts-thumb img,.ts-thumb video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ts-thumb video{opacity:0;transition:opacity .3s}
.ts-thumb.playing video{opacity:1}
.ts-tile:hover .ts-thumb{transform:translateY(-3px);box-shadow:0 14px 30px -12px var(--glow)}
.ts-tag{position:absolute;z-index:2;font:600 11px/1 var(--body);padding:5px 7px;border-radius:8px;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ts-tag.dur{top:8px;right:8px}
.ts-tag.views{bottom:8px;left:8px;display:flex;align-items:center;gap:4px}
.ts-tag.views .ts-i{width:13px;height:13px}
.ts-tag.hz{top:8px;left:8px;color:#E9DDFF;background:rgba(139,92,246,.45)}
.ts-t-title{font-size:13.5px;line-height:1.35;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ts-t-sub{font-size:12px;color:var(--muted);margin-top:-3px}
.ts-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ts-cat{position:relative;aspect-ratio:3/4;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end;padding:14px;background:linear-gradient(165deg,#2a1d4a,#0A0910 80%)}
.ts-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ts-cat::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(0,0,0,.78))}
.ts-cat b{position:relative;z-index:1;font:700 19px/1.15 var(--display)}
.ts-cat span{position:relative;z-index:1;font-size:12.5px;color:var(--muted);margin-top:4px}
.ts-letters{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.ts-letters::-webkit-scrollbar{display:none}
.ts-letters a{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:600;font-size:13px;background:var(--glass2);border:1px solid var(--line)}
.ts-letters a.on{background:rgba(139,92,246,.3);border-color:var(--v1)}
.ts-models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 10px}
.ts-mcard{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;min-width:0}
.ts-mcard .ts-ava{width:100%;max-width:96px;aspect-ratio:1;font-size:26px;box-shadow:0 0 0 2px var(--bg),0 0 0 4px rgba(192,132,252,.6)}
.ts-mcard b{font-size:13.5px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ts-mcard span{font-size:12px;color:var(--muted);margin-top:-5px}
.ts-mhead{display:flex;gap:16px;align-items:center}
.ts-mhead .ts-ava{width:88px;height:88px;font-size:30px;box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--v1),0 0 30px var(--glow)}
.ts-stats{color:var(--muted);font-size:13.5px;margin-top:6px}
.ts-search{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:99px}
.ts-search input{flex:1;min-width:0;background:none;border:0;color:var(--fg);font:500 16px var(--body);outline:none}
.ts-search input::placeholder{color:var(--dim)}
.ts-player{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line);background:#000;width:100%}
.ts-player.hz{aspect-ratio:16/9}
.ts-player.vt{aspect-ratio:9/16;max-height:72vh;width:auto;max-width:100%;align-self:center}
.ts-pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.ts-pager a,.ts-pager span{min-width:38px;height:38px;padding:0 10px;border-radius:10px;display:grid;place-items:center;font-weight:600;font-size:13.5px;background:var(--glass2);border:1px solid var(--line)}
.ts-pager .on{background:linear-gradient(140deg,var(--v1),var(--v2));border-color:transparent}
.ts-empty{color:var(--muted);padding:30px 0;text-align:center}

/* rare pages (Default templates restyled) */
body.ts-rare .main-container,body.ts-rare .container{max-width:1100px;margin:0 auto;padding:16px}
body.ts-rare .headline h1,body.ts-rare .headline h2{font-family:var(--display);color:var(--fg)}
body.ts-rare .box,body.ts-rare .block-details,body.ts-rare .text{background:var(--glass);border:1px solid var(--line);border-radius:16px;color:var(--fg)}
body.ts-rare input[type=text],body.ts-rare input[type=email],body.ts-rare input[type=password],body.ts-rare textarea,body.ts-rare select{background:#151221;border:1px solid var(--line);color:var(--fg);border-radius:12px;padding:10px 12px}
body.ts-rare .submit,body.ts-rare input[type=submit],body.ts-rare .btn{background:linear-gradient(140deg,var(--v1),var(--v2));color:#fff;border:0;border-radius:99px;padding:10px 18px;font-weight:700}
body.ts-rare .ts-main a{color:var(--v2)}

@media (min-width:640px){
  .ts-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
  .ts-cats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
  .ts-models{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
}
@media (min-width:1024px){
  .ts-main{margin-left:var(--rail);padding-bottom:0}
  .ts-bnav{display:none}
  .ts-toast{bottom:24px}
  .ts-rail{display:flex;flex-direction:column;gap:22px;position:fixed;left:0;top:0;bottom:0;width:var(--rail);box-sizing:border-box;padding:22px 16px;background:rgba(12,10,18,.92);border-right:1px solid var(--line);overflow-y:auto;z-index:40}
  .ts-rail .ts-logo{padding:2px 8px 6px}
  .ts-rail nav{display:flex;flex-direction:column;gap:4px}
  .ts-rail nav a{display:flex;align-items:center;gap:13px;padding:11px 12px;border-radius:14px;font-weight:600;font-size:15px;color:var(--muted);transition:.2s}
  .ts-rail nav a:hover{background:var(--glass2);color:var(--fg)}
  .ts-rail nav a.on{background:rgba(139,92,246,.16);color:var(--fg)}
  .ts-rail nav a.on .ts-i{color:var(--v2)}
  .ts-rail .ts-sub{display:flex;flex-direction:column;gap:2px}
  .ts-rail .ts-sub a{padding:7px 12px;border-radius:10px;font-size:13.5px;color:var(--muted)}
  .ts-rail .ts-sub a:hover{color:var(--fg);background:var(--glass2)}
  .ts-rail .ts-foot{margin-top:auto;padding:0 8px}
  .ts-feedwrap{left:var(--rail);bottom:0;right:380px;background:var(--bg)}
  .ts-reel{padding:18px 0;box-sizing:border-box}
  .ts-clip{width:auto;height:100%;aspect-ratio:9/16;max-width:100%;border-radius:24px;border:1px solid var(--line);box-shadow:0 30px 80px -30px rgba(139,92,246,.35)}
  .ts-topbar{background:none;justify-content:center}
  .ts-topbar .ts-logo,.ts-topbar .ts-srch{display:none}
  .ts-arrows{display:flex;flex-direction:column;gap:10px;position:absolute;right:22px;top:50%;transform:translateY(-50%);z-index:10}
  .ts-arrows button{width:46px;height:46px;border-radius:50%;display:grid;place-items:center}
  .ts-info-h{display:none}
  .ts-actions{bottom:110px}
  .ts-side{display:block;position:fixed;top:0;right:0;bottom:0;width:380px;box-sizing:border-box;overflow-y:auto;background:rgba(12,10,18,.75);border-left:1px solid var(--line);padding:26px 22px;z-index:30}
  .ts-side .ts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-page{padding:28px 32px 40px}
  .ts-phead .ts-logo{display:none}
}
@media (prefers-reduced-motion:reduce){
  .ts *,.ts *::before,.ts *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

.ts-hpill{font:700 13px/1 var(--display)!important;letter-spacing:.02em;padding:7px 11px;border-radius:99px;background:rgba(139,92,246,.22);border:1px solid rgba(192,132,252,.45);color:#E9DDFF;white-space:nowrap}
.ts-topbar .ts-row{flex-wrap:nowrap;gap:8px}
.ts-feed .ts-empty{color:var(--muted);height:100%;display:grid;place-items:center;margin:0}
@media (min-width:1024px){.ts-topbar .ts-row:first-child .ts-logo{display:none}.ts-topbar{justify-content:space-between}}

/* 1 Oct: phone top bar fits on one line (logo, H1 pill, For You/New, sound, search) */
@media (max-width:480px){.ts-topbar{gap:6px;padding-left:10px;padding-right:10px}.ts-topbar .ts-row{gap:6px;flex-shrink:0}.ts-tabs{flex-shrink:0}.ts-tabs button{padding:6px 10px;white-space:nowrap;font-size:12.5px}.ts-hpill{font-size:11px!important;padding:6px 8px}}

/* T6 1 Oct: clip page (horizontal) + related 9:16 tiles */
.ts-hpage{max-width:880px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 14px) 14px 110px}
.ts-playercard{border-radius:22px;overflow:hidden;background:#000;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.ts-playercard .player,.ts-playercard .player-holder{margin:0;padding:0}
.ts-hpage__h1{font:800 22px/1.2 var(--display);margin:16px 0 10px;color:var(--fg)}
.ts-hpage .ts-info{padding:0}
.ts-desc{color:var(--muted);line-height:1.5;margin:10px 0}
.ts-meta2{color:var(--dim);font-size:12.5px;margin:6px 0 14px}
.ts-relh{margin:22px 0 12px}
.ts-relgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media (min-width:640px){.ts-relgrid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}}
.ts-relgrid .ts-reel{position:relative;height:auto;aspect-ratio:9/16;border-radius:18px;overflow:hidden;scroll-snap-align:none}
.ts-relgrid .ts-clip{position:absolute;inset:0;height:auto}
.ts-relgrid .ts-poster{width:100%;height:100%;object-fit:cover}
.ts-relgrid .ts-actions,.ts-relgrid .ts-prog,.ts-relgrid .ts-pause,.ts-relgrid .ts-row,.ts-relgrid .ts-mpill{display:none}
.ts-relgrid .ts-meta{left:10px;right:10px;bottom:10px}
.ts-relgrid .ts-ttl{font-size:13px;margin:0}
.ts-relgrid .ts-ttl a::after{content:"";position:absolute;inset:0}

/* T6: kt_player fill (Default theme CSS is not loaded on ts pages) */
.ts-playercard .player-wrap{position:relative}
.ts-playercard #kt_player{position:absolute!important;left:0;top:0;width:100%!important;height:100%!important}
.ts-playercard .no-player{position:relative;background:#000}
.ts-playercard .no-player img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.ts-playercard .no-player .message{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;padding:0 20px;color:#fff;z-index:2}

/* T7 1 Oct: list pages (category, tag, model, search, lists) */
.ts-page{max-width:1440px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 14px) 16px 110px;display:flex;flex-direction:column;gap:16px}
.ts-phead{display:flex;align-items:center;gap:10px;min-height:40px}
.ts-phead .ts-logo{font-size:18px}.ts-phead .ts-logo svg{width:26px;height:26px}
.ts-crumb{font-size:12.5px;color:var(--dim);font-weight:500}
.ts-h1{font:700 clamp(26px,5vw,36px)/1.1 var(--display);letter-spacing:-.02em;margin:0}
.ts-intro{color:var(--muted);line-height:1.55;margin:0;max-width:68ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ts-intro.full{-webkit-line-clamp:unset;display:block}
.ts-more{color:var(--v2);font-weight:600;font-size:13px;align-self:flex-start}
.ts-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ts-chip.on{background:var(--fg);color:#0B0A10;border-color:var(--fg)}
.ts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px}
.ts-tile{display:flex;flex-direction:column;gap:7px;min-width:0;color:inherit}
.ts-thumb{position:relative;aspect-ratio:9/16;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#0F0D16;transition:transform .25s var(--ease),box-shadow .25s}
.ts-thumb img,.ts-thumb video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ts-thumb video{opacity:0;transition:opacity .3s}.ts-thumb.playing video{opacity:1}
.ts-tile:hover .ts-thumb{transform:translateY(-3px);box-shadow:0 14px 30px -12px var(--glow)}
.ts-tag{position:absolute;z-index:2;font:600 11px/1 var(--body);padding:5px 7px;border-radius:8px;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ts-dur{top:8px;right:8px}.ts-views{bottom:8px;left:8px}.ts-hz{top:8px;left:8px;color:#E9DDFF;background:rgba(139,92,246,.45)}
.ts-ttitle{font-size:13.5px;line-height:1.35;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ts-tsub{font-size:12px;color:var(--muted);margin-top:-3px}
.ts-empty{color:var(--muted)}
.ts-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ts-cat{position:relative;aspect-ratio:3/4;border-radius:18px;overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-end;padding:14px;color:inherit;background:radial-gradient(60% 45% at 30% 30%,rgba(139,92,246,.55),transparent 70%),linear-gradient(165deg,#24183d,#0A0910 80%)}
.ts-cat:nth-child(3n+2){background:radial-gradient(60% 45% at 70% 30%,rgba(236,72,153,.45),transparent 70%),linear-gradient(165deg,#3a1630,#0A0910 80%)}
.ts-cat:nth-child(3n){background:radial-gradient(60% 45% at 40% 70%,rgba(56,189,248,.35),transparent 70%),linear-gradient(165deg,#12283a,#0A0910 80%)}
.ts-cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ts-cat::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(0,0,0,.75))}
.ts-cat b{position:relative;z-index:1;font:700 19px/1.15 var(--display)}.ts-cat span{position:relative;z-index:1;font-size:12.5px;color:var(--muted);margin-top:4px}
.ts-letters{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.ts-letters::-webkit-scrollbar{display:none}
.ts-letters a{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:600;font-size:13px;background:rgba(255,255,255,.07);border:1px solid var(--line)}
.ts-models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 10px}
.ts-mcard{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;min-width:0;color:inherit}
.ts-mava{display:grid;place-items:center;border-radius:50%;object-fit:cover;font:700 26px var(--display);color:#fff;background:linear-gradient(140deg,var(--v1),#6d28d9)}
.ts-mcard .ts-mava{width:100%;max-width:96px;aspect-ratio:1;box-shadow:0 0 0 2px var(--bg),0 0 0 4px rgba(192,132,252,.6)}
.ts-mcard b{font-size:13.5px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts-mcard span{font-size:12px;color:var(--muted);margin-top:-5px}
.ts-mhead{display:flex;gap:16px;align-items:center}
.ts-mava.big{width:88px;height:88px;font-size:30px;flex:none;box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--v1),0 0 30px var(--glow)}
.ts-stats{color:var(--muted);font-size:13.5px;margin-top:6px}
.ts-search{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:99px}
.ts-search input{flex:1;min-width:0;background:none;border:0;color:var(--fg);font:500 16px var(--body);outline:none}
.ts-label{font:600 11.5px var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}
.ts-tagcloud small{color:var(--dim);font-size:11px}
.pagination-holder ul{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;list-style:none;padding:0;margin:18px 0 0}
.pagination-holder li a,.pagination-holder li span{display:grid;place-items:center;min-width:38px;height:38px;padding:0 10px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid var(--line);color:var(--fg);font-size:13.5px}
.pagination-holder li.page-current span{background:linear-gradient(140deg,var(--v1),var(--v2));border-color:transparent}
.pagination-holder li.prev span,.pagination-holder li.first span,.pagination-holder li.next span,.pagination-holder li.last span{opacity:.4}
.load-more{display:none}
@media (min-width:640px){.ts-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.ts-cats{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.ts-models{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}
@media (min-width:1024px){.ts-page{padding:28px 32px 40px}.ts-phead .ts-logo{display:none}}

.ts-h1::first-letter{text-transform:uppercase}

/* T8 1 Oct: 404 page */
.ts-404{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.ts-404 .ts-big{font:800 64px/1 var(--display);background:linear-gradient(140deg,var(--v1),var(--v2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* 3 Oct 2026: feed extras (Alexander "lets add more stuff"): follow +, save, share, clip stats, tag chips, seek bar, swipe hint, 4 tabs */
.ts-mwrap{position:relative;display:flex;flex-direction:column;align-items:center}
.ts-fol{position:absolute;left:50%;top:39px;width:22px;height:22px;margin-left:-11px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(140deg,var(--v1),var(--v2));box-shadow:0 0 0 2px #0B0A10;z-index:2;transition:transform .2s var(--ease)}
.ts-fol:active{transform:scale(.88)}
.ts-fol .ts-i{width:14px;height:14px;stroke-width:3}
.ts-fol.on{background:#fff;color:#0B0A10}
.ts-save.on .ts-bub{color:var(--v2)}
.ts-save.on .ts-bub .ts-i{fill:currentColor}
.ts-folbtn.on{background:var(--glass2);border-color:var(--line);color:var(--muted)}
.ts-folbtn:not(.on){background:linear-gradient(140deg,var(--v1),var(--v2));border-color:transparent;color:#fff;font-weight:600}
.ts-st{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:rgba(255,255,255,.88);text-shadow:0 1px 6px rgba(0,0,0,.7);white-space:nowrap}
.ts-st .ts-i{width:14px;height:14px}
.ts-st i{font-style:normal;opacity:.55;margin:0 3px}
.ts-chip.tg{padding:5px 9px;font-size:12px;background:rgba(20,16,30,.45)}
.ts-ttl{cursor:pointer}
.ts-ttl.open{-webkit-line-clamp:unset;display:block}
/* seek bar: bigger touch area, thin line, knob + time while dragging */
.ts-prog{height:18px;background:none;cursor:pointer;touch-action:none}
.ts-prog::before{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.14);transition:height .15s}
.ts-prog i{position:absolute;left:0;bottom:0;height:3px;transition:height .15s}
.ts-prog:hover::before,.ts-prog.drag::before,.ts-prog:hover i,.ts-prog.drag i{height:6px}
.ts-prog i::after{content:"";position:absolute;right:-7px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:#fff;box-shadow:0 0 10px var(--glow);opacity:0;transition:opacity .15s}
.ts-prog.drag i::after,.ts-prog:hover i::after{opacity:1}
.ts-seekt{position:absolute;bottom:20px;transform:translateX(-50%);font:600 12px var(--body);padding:4px 8px;border-radius:8px;background:rgba(0,0,0,.65);white-space:nowrap;opacity:0;pointer-events:none}
.ts-prog.drag .ts-seekt{opacity:1}
.ts-immersive .ts-prog{opacity:.6}
/* first-visit hint */
.ts-hint{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);z-index:12;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 20px;border-radius:18px;background:rgba(10,8,16,.62);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);pointer-events:none;text-align:center;font-size:14.5px;animation:ts-fadein .4s var(--ease)}
.ts-hint .ts-i{width:38px;height:38px;color:var(--v2);animation:ts-hint 1.3s ease-in-out infinite}
@keyframes ts-hint{0%,100%{transform:translateY(8px);opacity:.45}50%{transform:translateY(-8px);opacity:1}}
@keyframes ts-fadein{from{opacity:0}to{opacity:1}}
/* top bar: logo/H1 left, sound/search right, the 4 tabs on their own centred line */
.ts-topbar{flex-wrap:wrap;row-gap:8px}
.ts-topbar>.ts-row:last-child,.ts-topbar>.ts-snd{order:1}
.ts-topbar::after{content:"";order:2;flex-basis:100%;height:0}
.ts-topbar>.ts-tabs,.ts-topbar>.ts-ctx{order:3;margin:0 auto}
.ts-feedwrap.has-ctx .ts-topbar>span:first-child{display:none}
.ts-feedwrap.has-ctx .ts-topbar::after{display:none}
.ts-feedwrap.has-ctx .ts-topbar>.ts-ctx{order:0;margin:0}
@media (max-width:480px){.ts-tabs button{padding:6px 11px}}
/* short phones: smaller action buttons so the column clears the top bar */
@media (max-height:720px){.ts-actions{gap:10px;bottom:118px}.ts-bub,.ts-act .ts-ava{width:44px;height:44px}.ts-fol{top:33px}}
@media (min-width:1024px){
  .ts-topbar{left:50%;right:auto;top:18px;width:calc((100vh - 36px) * 9 / 16);max-width:100%;box-sizing:border-box;transform:translateX(-50%);border-radius:24px 24px 0 0;padding:12px 14px 26px;background:linear-gradient(rgba(0,0,0,.45),transparent)}
  .ts-topbar .ts-srch{display:grid}
}
/* the + badge sits on the avatar like TikTok, so the "Model" label under it goes */
.ts-mwrap .ts-act>span:last-child{display:none}
.ts-mwrap{margin-bottom:8px}
