#tt-pg-root .tt-pg-btn,
.tt-pg-embed-btn > .tt-pg-btn{
  position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  border:none; background:transparent; border-radius:0; box-shadow:none;
  cursor:pointer; padding:0; margin:0;
  transition:transform .2s ease, filter .2s ease;
  animation: ttpg-float 3s ease-in-out infinite;
}
#tt-pg-root .tt-pg-btn{ position:fixed; right:24px; bottom:24px; z-index:999999; }
@keyframes ttpg-float{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
.tt-pg-icon{width:100%; height:100%; display:block}

.tt-pg-modal{position:fixed; inset:0; display:none; align-items:center; justify-content:center; z-index:999998;
  background:rgba(8,10,20,.45); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
}
.tt-pg-card{
  position:relative; width:min(94vw,720px); max-height:88vh;
  padding:0; border-radius:18px; overflow:hidden;
  color:#fff; box-shadow:0 18px 60px rgba(0,0,0,.45), 0 0 24px rgba(0,229,255,.25) inset;
  display:flex; flex-direction:column;
}
.tt-pg-card:before{
  content:""; position:absolute; inset:-2px;
  background: radial-gradient(1200px 600px at 20% -10%, rgba(255,255,255,.18), transparent 60%),
              linear-gradient(130deg, var(--grad-from,#6a00f4), var(--grad-to,#ff2d55));
  filter: blur(30px); opacity:.55; z-index:-2;
  animation: gradPulse 6s ease-in-out infinite alternate;
}
@keyframes gradPulse{ from{filter:blur(28px)} to{filter:blur(38px)} }
.tt-pg-bgimg{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:-3; }
.tt-pg-bgshade{ position:absolute; inset:0; background:rgba(0,0,0,.35); z-index:-1; }

/* Sticky header */
.tt-pg-header{
  position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:12px;
  padding:12px 14px; background:rgba(0,0,0,.35);
  backdrop-filter: blur(6px);
}
.tt-pg-title{ font-weight:800; letter-spacing:.3px; }
.tt-pg-close{ margin-left:auto; width:36px; height:36px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center; border:none; cursor:pointer;
  background:rgba(255,255,255,.14); color:#fff; font-size:18px; line-height:1;
}
.tt-pg-logo{ width:40px; height:40px; object-fit:contain; filter: drop-shadow(0 4px 14px rgba(0,0,0,.45)); }

/* Scrollable body */
.tt-pg-body{ position:relative; z-index:1; padding:18px 18px 24px; overflow:auto; }
.tt-pg-content{ line-height:1.6; }
.tt-pg-content h1,.tt-pg-content h2,.tt-pg-content h3{ line-height:1.15; margin:.2em 0 .4em; }
.tt-pg-content p{ margin:.2em 0 .6em; font-size:1.02em; }
.tt-pg-timer{ margin:10px 0 14px; font-weight:700; display:flex; align-items:center; gap:8px; }
.tt-pg-timebox{ display:inline-flex; align-items:center; justify-content:center; min-width:52px; padding:6px 8px; border-radius:10px; background:rgba(0,0,0,.28); box-shadow:inset 0 0 0 1px rgba(255,255,255,.15); }

.tt-pg-slot{ margin-top:16px; }

.tt-pg-canvas, .tt-pg-canvas-screen{position:fixed; inset:0; width:100vw; height:100vh; pointer-events:none; z-index:999997; display:none}
.tt-pg-canvas{position:absolute; inset:0; width:100%; height:100%; z-index:0; display:block}

/* --- Open animations --- */
.tt-anim-fade{ animation: ttFade .36s ease both; }
@keyframes ttFade{ from{opacity:0; transform:scale(.98)} to{opacity:1; transform:scale(1)} }

.tt-anim-zoom{ animation: ttZoom .34s cubic-bezier(.2,.9,.2,1) both; }
@keyframes ttZoom{ from{opacity:0; transform:scale(.85)} to{opacity:1; transform:scale(1)} }

.tt-anim-slide{ animation: ttSlide .34s ease-out both; }
@keyframes ttSlide{ from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:translateY(0)} }

.tt-anim-flip{ animation: ttFlip .5s cubic-bezier(.2,.9,.2,1) both; transform-origin: 50% 40%; }
@keyframes ttFlip{ from{opacity:0; transform:rotateX(-70deg)} to{opacity:1; transform:rotateX(0)} }

.tt-anim-bounce{ animation: ttBounce .6s cubic-bezier(.2,.9,.2,1) both; }
@keyframes ttBounce{ 0%{opacity:0; transform:scale(.7)} 60%{opacity:1; transform:scale(1.05)} 100%{transform:scale(1)} }

/* Inline card */
.tt-pg-inline-wrap{ position:relative; padding:18px; border-radius:16px; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.15) }
