*{box-sizing:border-box}
:root{--top:env(safe-area-inset-top);--bottom:env(safe-area-inset-bottom)}
html,body{margin:0;width:100%;height:100%;background:#000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display",sans-serif;overflow:hidden;overscroll-behavior:none}
button,input,select{font:inherit}

/* Splash */
#splash{position:fixed;inset:0;z-index:999;background:#050505;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .45s ease,visibility .45s ease}
#splash.hide{opacity:0;visibility:hidden;pointer-events:none}
.splashLogo{text-align:center;animation:logoIn .7s cubic-bezier(.2,.8,.2,1)}
.paw{font-size:64px;line-height:1;margin-bottom:16px;filter:drop-shadow(0 8px 20px rgba(255,255,255,.12))}
.splashName{font-size:36px;font-weight:900;letter-spacing:-1.5px}
.splashSub{margin-top:7px;font-size:13px;opacity:.45}
.splashSpinner{width:20px;height:20px;border:2px solid #333;border-top-color:#fff;border-radius:50%;margin-top:42px;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes logoIn{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}

/* Feed */
#feed{width:100%;height:100dvh;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-y:contain}
#feed::-webkit-scrollbar{display:none}
.post{position:relative;width:100%;height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;background:#070707;display:flex;align-items:center;justify-content:center;overflow:hidden}
.media{width:100%;height:100%;display:flex;align-items:center;justify-content:center}
.media img,.media video{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,.18),transparent 24%,transparent 58%,rgba(0,0,0,.88))}
.caption{position:absolute;left:17px;right:88px;bottom:calc(20px + var(--bottom));z-index:4}
.stats{font-weight:800;margin-bottom:8px;text-shadow:0 1px 4px #000}
.tags{display:flex;gap:5px;flex-wrap:wrap;max-height:72px;overflow:hidden}
.tag{background:rgba(255,255,255,.14);backdrop-filter:blur(8px);border-radius:999px;padding:5px 9px;font-size:12px}
.actions{position:absolute;right:12px;bottom:calc(27px + var(--bottom));z-index:5;display:flex;flex-direction:column;gap:13px}
.action{width:53px;height:53px;border:0;border-radius:50%;color:#fff;background:rgba(0,0,0,.52);backdrop-filter:blur(10px);font-size:22px}
.action span{display:block;font-size:9px;margin-top:-2px}
.action.liked{background:rgba(255,60,95,.9)}

/* Top bar */
#topbar{position:fixed;top:0;left:0;right:0;height:calc(58px + var(--top));padding:calc(8px + var(--top)) 12px 8px;z-index:20;display:flex;align-items:center;justify-content:space-between;pointer-events:none;background:linear-gradient(rgba(0,0,0,.55),transparent)}
#topbar>*{pointer-events:auto}
.title{font-weight:900;text-shadow:0 1px 5px #000}
.icon{border:0;background:rgba(0,0,0,.4);color:#fff;border-radius:50%;width:40px;height:40px;font-size:23px}

/* Panels */
.panel{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.62);backdrop-filter:blur(8px);padding:12px}
.hidden{display:none!important}
.panelCard{width:min(560px,100%);padding:22px;padding-bottom:calc(22px + var(--bottom));border-radius:24px;background:#181818;box-shadow:0 10px 50px #000;max-height:90dvh;overflow:auto}
.panelCard h2{margin:0 0 8px}
.help{font-size:13px;line-height:1.45;opacity:.55;margin:0 0 18px}
.panelCard label{display:block;font-size:13px;opacity:.7;margin:12px 0 6px}
.panelCard input,.panelCard select{width:100%;padding:13px;border:1px solid #444;border-radius:12px;background:#252525;color:#fff;outline:none}
.panelCard input:focus{border-color:#888}
.primary,.secondary{width:100%;margin-top:14px;padding:13px;border:0;border-radius:13px;font-weight:800}
.primary{background:#fff;color:#000}.secondary{background:#333;color:#fff}
.close{float:right;border:0;background:transparent;color:#fff;font-size:30px}

/* Loading */
.loading{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:40;background:rgba(0,0,0,.72);padding:12px 18px;border-radius:999px}

/* Toast */
#toast{position:fixed;left:50%;bottom:calc(25px + var(--bottom));transform:translate(-50%,20px);opacity:0;z-index:100;padding:10px 15px;border-radius:999px;background:rgba(20,20,20,.92);transition:.2s;pointer-events:none;white-space:nowrap}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* Animated media */
.media video{
  background:#000;
}
.media video::-webkit-media-controls{
  display:none !important;
}
.media img[data-animated="true"]{
  image-rendering:auto;
}

.tag{border:0;color:#fff;cursor:pointer}
.menuButton{width:100%;text-align:left;padding:15px;margin:5px 0;border:0;border-radius:13px;background:#282828;color:#fff;font-weight:700}
.fullCard{max-height:92dvh}
.tagResult{width:100%;display:flex;justify-content:space-between;gap:10px;padding:13px 4px;border:0;border-bottom:1px solid #333;background:transparent;color:#fff;text-align:left}
.tagResult span{opacity:.5;font-size:12px}
#accountStatus{margin-top:14px;font-size:13px;opacity:.65}
.comment{padding:14px 0;border-bottom:1px solid #333}
.comment b{display:block;margin-bottom:6px}
.commentBody{font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.comment small{display:block;margin-top:7px;opacity:.45}

/* Sleek furry-inspired visual refresh */
body{
  background:
    radial-gradient(circle at 12% 8%,rgba(255,255,255,.055),transparent 25%),
    radial-gradient(circle at 88% 92%,rgba(255,255,255,.045),transparent 28%),
    #050505;
}
#topbar{
  background:linear-gradient(rgba(5,5,5,.72),transparent);
}
.icon{
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 5px 22px rgba(0,0,0,.22);
}
.title:before{
  content:"✦ ";
  opacity:.55;
}
.action{
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 6px 20px rgba(0,0,0,.2);
  transition:transform .15s ease,background .15s ease;
}
.action:active{transform:scale(.9)}
.caption{filter:drop-shadow(0 4px 15px rgba(0,0,0,.15))}
.tag{
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.08);
}
.panelCard{
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(145deg,#1a1a1a,#111);
}
.menuButton{
  border:1px solid rgba(255,255,255,.06);
  background:linear-gradient(145deg,#292929,#1d1d1d);
}
.replyQuote{
  margin:4px 0 9px;
  padding:8px 11px;
  border-left:3px solid rgba(255,255,255,.5);
  border-radius:0 10px 10px 0;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.72);
  white-space:pre-wrap;
  font-size:13px;
}
.commentBody>div:not(.replyQuote){margin:2px 0}

/* v8 Tags UI */
.homeTagsButton {
  position: fixed;
  left: 16px;
  bottom: calc(18px + env(safe-area-inset-bottom));
  z-index: 40;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 11px 15px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: rgba(20,20,24,.88);
  color: inherit;
  box-shadow: 0 8px 28px rgba(0,0,0,.28);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.homeTagsButton:active { transform: scale(.97); }
.homeTagsIcon {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  font-weight: 900;
}

.addedTagsBox {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
}
.addedTagsHeaderRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.addedTagsHeader {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.addedTagsHint {
  margin-top: 3px;
  font-size: 11px;
  opacity: .45;
}
.clearAddedTags {
  border: 0;
  border-radius: 999px;
  padding: 7px 10px;
  background: rgba(255,255,255,.07);
  color: inherit;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}
.clearAddedTags:active { transform: scale(.96); }
.addedTagsList {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-height: 34px;
}
.addedTagChip {
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 999px;
  padding: 8px 10px 8px 12px;
  background: rgba(255,255,255,.075);
  color: inherit;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.addedTagChip:active { transform: scale(.97); }
.addedTagName {
  max-width: 210px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.removeTag {
  font-size: 17px;
  line-height: 12px;
  opacity: .58;
}
.addedTagChip:hover .removeTag,
.addedTagChip:focus-visible .removeTag { opacity: 1; }
.addedTagsEmpty {
  align-self: center;
  font-size: 12px;
  opacity: .42;
}

.homeTagsButton { z-index: 1000; pointer-events: auto; }

/* v11: visually distinct quoted comments */
.commentQuoteCard {
  position: relative;
  display: flex;
  gap: 10px;
  margin: 9px 0;
  padding: 11px 13px 11px 11px;
  border-left: 3px solid rgba(170, 125, 255, .8);
  border-radius: 0 13px 13px 0;
  background: linear-gradient(135deg, rgba(170,125,255,.13), rgba(255,255,255,.045));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.045);
}
.commentQuoteMark {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(170,125,255,.18);
  font-family: Georgia, serif;
  font-size: 22px;
  line-height: 1;
  opacity: .85;
}
.commentQuoteContent {
  min-width: 0;
  font-size: 13px;
  line-height: 1.5;
  opacity: .72;
  font-style: italic;
}
.commentTextLine {
  line-height: 1.5;
}
.commentSpacer {
  height: 5px;
}

/* v12: expandable full tag list on every post */
.postTags {
  margin-top: 8px;
}
.postTagsVisible,
.postTagsHidden {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.postTagsHidden {
  display: none;
  margin-top: 6px;
}
.postTags[data-expanded="true"] .postTagsHidden {
  display: flex;
}
.postTags[data-expanded="true"] .expandTagsButton {
  display: none;
}
.expandTagsButton,
.collapseTagsButton {
  appearance: none;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  padding: 6px 9px;
  background: rgba(255,255,255,.065);
  color: inherit;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}
.expandTagsButton:active,
.collapseTagsButton:active {
  transform: scale(.97);
}
.expandTagsChevron {
  margin-left: 3px;
  font-size: 14px;
}
.collapseTagsButton {
  opacity: .7;
}

/* v13: dedicated Browse Tags window */
.dedicatedTagsPanel {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: none;
}
.dedicatedTagsPanel.isOpen {
  display: block;
}
.dedicatedTagsBackdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.68);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.dedicatedTagsCard {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(680px, calc(100% - 28px));
  max-height: min(760px, calc(100% - 40px));
  transform: translate(-50%, -50%);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 24px;
  background: rgba(25,25,31,.97);
  box-shadow: 0 24px 80px rgba(0,0,0,.5);
}
.dedicatedTagsTop {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 18px 18px 12px;
}
.dedicatedTagsTitle {
  font-size: 20px;
  font-weight: 850;
}
.dedicatedTagsSubtitle {
  margin-top: 3px;
  font-size: 12px;
  opacity: .48;
}
.dedicatedTagsClose {
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.07);
  color: inherit;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}
.dedicatedTagsSearch {
  padding: 8px 18px 14px;
}
.dedicatedTagsSearch input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(255,255,255,.055);
  color: inherit;
  font: inherit;
  outline: none;
}
.dedicatedTagsSearch input:focus {
  border-color: rgba(170,125,255,.6);
}
.dedicatedTagsResults {
  max-height: 520px;
  overflow-y: auto;
  padding: 0 12px 14px;
}
.dedicatedTagResult {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 10px;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.055);
  background: transparent;
  color: inherit;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.dedicatedTagResult:active {
  background: rgba(255,255,255,.07);
}
.dedicatedTagName {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
}
.dedicatedTagCount {
  font-size: 11px;
  opacity: .45;
}
.dedicatedTagPlus {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background: rgba(170,125,255,.14);
  font-size: 18px;
}
.dedicatedTagsEmpty,
.dedicatedTagsLoading {
  padding: 30px 14px;
  text-align: center;
  font-size: 13px;
  opacity: .5;
}
@media (max-width: 600px) {
  .dedicatedTagsCard {
    width: calc(100% - 16px);
    max-height: calc(100% - 20px);
    border-radius: 20px;
  }
  .dedicatedTagsResults {
    max-height: calc(100vh - 180px);
  }
}

.dedicatedTagsEmpty small {
  display: inline-block;
  margin-top: 8px;
  max-width: 90%;
  font-size: 11px;
  opacity: .7;
  overflow-wrap: anywhere;
}


/* E621 Tournament of Death */
.tournamentPanel{position:fixed;inset:0;z-index:9999;display:flex;align-items:stretch;justify-content:center;font-family:Arial,Helvetica,sans-serif;color:#5b2b67}
.tournamentPanel.hidden{display:none}
.tournamentBackdrop{position:absolute;inset:0;background:rgba(38,12,48,.55);backdrop-filter:blur(5px)}
.tournamentShell{position:relative;width:100%;height:100%;max-width:760px;overflow:hidden;background:radial-gradient(circle at 15% 10%,#fff 0 7px,transparent 8px),radial-gradient(circle at 78% 22%,#fff 0 7px,transparent 8px),linear-gradient(135deg,#ffd7ed,#d7f7ff 55%,#ead7ff);background-size:132px 118px,171px 151px,100% 100%;box-shadow:0 0 50px rgba(30,0,40,.35)}
.tournamentHeader{height:64px;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:rgba(255,255,255,.82);border-bottom:3px solid #7a3e85;box-shadow:0 4px 0 rgba(92,39,104,.2);position:relative;z-index:3}
.tournamentBrand{font-weight:1000;font-size:clamp(14px,4vw,24px);letter-spacing:.5px;text-align:center;text-shadow:2px 2px 0 #fff,-1px -1px 0 #f4a6db}
.tournamentClose,.tournamentHofBtn,.tournamentMiniHof{border:3px solid #7a3e85;background:#fff;border-radius:14px;color:#5b2b67;font-weight:900;min-width:42px;height:42px;font-size:22px;box-shadow:0 4px 0 #7a3e85}
.tournamentClose:active,.tournamentHofBtn:active,.tournamentMiniHof:active{transform:translateY(3px);box-shadow:0 1px 0 #7a3e85}
.tournamentMain{height:calc(100% - 64px);overflow:auto;padding:18px 14px 34px}
.tournamentScreen{min-height:100%;box-sizing:border-box}
.tournamentTitle{text-align:center;font-size:22px;font-weight:1000;margin:8px 0 16px;text-shadow:2px 2px 0 #fff}
.tournamentCard{background:rgba(255,255,255,.9);border:4px solid #7a3e85;border-radius:28px;padding:20px 18px 24px;box-shadow:8px 8px 0 rgba(102,45,113,.55)}
.tournamentCard h2{margin:0 0 18px;font-size:25px}.tournamentCard label{display:block;font-size:18px;font-weight:900;margin-bottom:8px}.tournamentCard input{width:100%;box-sizing:border-box;border:4px solid #7a3e85;border-radius:20px;padding:15px 14px;background:#fff;font:inherit;font-size:18px;color:#5b2b67;outline:none}.tournamentCard input:focus{box-shadow:0 0 0 4px rgba(255,100,190,.25)}.tournamentCard p{font-size:15px;font-weight:700;line-height:1.35}.tournamentStart{display:block;width:100%;border:4px solid #7a3e85;border-radius:20px;padding:15px 12px;background:linear-gradient(#ff73c4,#ff3da9);color:white;font-weight:1000;font-size:18px;box-shadow:0 6px 0 #7a3e85;text-shadow:1px 1px 0 #a32979}.tournamentStart:active{transform:translateY(5px);box-shadow:0 1px 0 #7a3e85}.tournamentWideBtn{display:block;width:100%;border:4px solid #7a3e85;border-radius:20px;padding:15px 12px;margin-top:16px;background:rgba(255,255,255,.88);color:#5b2b67;font-weight:1000;font-size:17px;box-shadow:0 5px 0 #7a3e85}.tournamentWideBtn:active{transform:translateY(4px);box-shadow:0 1px 0 #7a3e85}.tournamentError{min-height:20px;margin-top:12px;font-weight:900;color:#9a234d}.tournamentGameTop{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}.tournamentBack{border:3px solid #7a3e85;border-radius:13px;background:#fff;color:#5b2b67;padding:9px 10px;font-weight:900}.tournamentRound{text-align:center;font-size:18px;font-weight:1000}.tournamentHint{text-align:center;font-weight:900;margin:12px 0 14px;font-size:14px}.tournamentArena{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:65vh;touch-action:none}.tournamentVS{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border:4px solid #7a3e85;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;font-weight:1000;box-shadow:0 4px 0 #7a3e85}.tournamentContender{position:relative;min-width:0;border:5px solid #7a3e85;border-radius:22px;background:#fff;overflow:hidden;box-shadow:5px 5px 0 rgba(92,39,104,.45);touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .25s ease,opacity .25s ease}.tournamentContender img,.tournamentContender video{display:block;width:100%;height:100%;object-fit:contain;background:#f7eff9}.tournamentContender.loading{display:grid;place-items:center;font-weight:1000;padding:20px;box-sizing:border-box}.tournamentContender.swiping{transition:none}.tournamentContender.flyLeft{transform:translateX(-125vw) rotate(-14deg);opacity:0}.tournamentContender.flyRight{transform:translateX(125vw) rotate(14deg);opacity:0}.tournamentContender.bump{animation:tournamentBump .25s ease}@keyframes tournamentBump{50%{transform:scale(.97)}}
.winnerStars{text-align:center;font-size:28px;margin-top:20px}.tournamentWinner h2{text-align:center;font-size:26px;margin:8px 0 14px}.winnerGlow{width:min(82vw,430px);height:min(58vh,520px);margin:0 auto;border-radius:28px;display:grid;place-items:center;background:rgba(255,255,255,.65);border:5px solid #fff;box-shadow:0 0 15px #fff,0 0 35px #ff6dcc,0 0 75px #b16cff,0 0 110px rgba(255,255,255,.8);animation:winnerPulse 1.6s ease-in-out infinite}.winnerGlow img{max-width:92%;max-height:92%;width:auto;height:auto;object-fit:contain;border-radius:20px}.winnerSub{text-align:center;font-weight:900}.hallTop{display:flex;align-items:center;gap:12px}.hallTop h2{margin:0;font-size:24px}.hallGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.hallItem{border:4px solid #7a3e85;border-radius:18px;background:#fff;padding:4px;box-shadow:4px 4px 0 rgba(92,39,104,.4);aspect-ratio:1/1;overflow:hidden}.hallItem img{width:100%;height:100%;object-fit:contain;background:#f7eff9}.hallEmpty{text-align:center;font-weight:900;background:rgba(255,255,255,.78);border:4px solid #7a3e85;border-radius:20px;padding:30px 15px;margin-top:18px}.tournamentRulesModal,.hallDetail{position:absolute;inset:0;z-index:20;background:rgba(39,11,48,.5);display:grid;place-items:center;padding:18px;box-sizing:border-box}.tournamentRulesModal.hidden,.hallDetail.hidden{display:none}.rulesCard,.hallDetailCard{position:relative;width:min(100%,560px);max-height:90%;overflow:auto;background:#fff4fd;border:5px solid #7a3e85;border-radius:25px;padding:24px;box-sizing:border-box;box-shadow:8px 8px 0 #7a3e85}.rulesCard h2{text-align:center;margin-top:0}.rulesCard p{font-weight:700;line-height:1.45}.hallDetailCard img{display:block;width:100%;max-height:65vh;object-fit:contain;background:#f7eff9;border-radius:16px}.hallDetailActions{margin-top:14px}.danger{background:#ffe4ed}.hidden{display:none!important}@keyframes winnerPulse{50%{transform:scale(1.015);box-shadow:0 0 20px #fff,0 0 48px #ff6dcc,0 0 95px #b16cff,0 0 135px rgba(255,255,255,.9)}}
@media (max-width:520px){.tournamentMain{padding-left:10px;padding-right:10px}.tournamentArena{min-height:66vh;gap:7px}.tournamentContender{border-width:4px;border-radius:18px}.tournamentVS{width:42px;height:42px;font-size:13px}.tournamentCard{padding:17px 14px 20px}.tournamentBrand{font-size:13px}}
