:root {
  --tl-btn-bg: rgba(0,0,0,0.05);
  --tl-btn-border: rgba(0,0,0,0.12);
}
html.tl-dark {
  --tl-btn-bg: rgba(255,255,255,0.07);
  --tl-btn-border: rgba(255,255,255,0.16);
}

.tl-theme-toggle {
  position: absolute;
  top: 20px;
  right: 24px;
  z-index: 10000;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  background: var(--tl-btn-bg);
  border: 1px solid var(--tl-btn-border);
  box-shadow: 0 2px 10px rgba(0,0,0,0.14);
  transition: background-color .5s ease, border-color .5s ease, transform .2s ease;
}
.tl-theme-toggle:hover { transform: scale(1.06); }
.tl-theme-toggle:active { transform: scale(.94); }
.tl-ic {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 18px;
  color: var(--tl-fg);
  pointer-events: none;
  transition: opacity .4s ease, transform .55s cubic-bezier(.2,.7,.2,1);
}
.tl-ic svg {
  width: 100%; height: 100%; display: block;
  fill: none; stroke: currentColor; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round;
}
.tl-ic-sun { opacity: 0; transform: translate(-50%,-50%) rotate(90deg) scale(.4); }
.tl-ic-moon { opacity: 1; transform: translate(-50%,-50%) rotate(0) scale(1); }
html.tl-dark .tl-ic-sun { opacity: 1; transform: translate(-50%,-50%) rotate(0) scale(1); }
html.tl-dark .tl-ic-moon { opacity: 0; transform: translate(-50%,-50%) rotate(-90deg) scale(.4); }

.tl-skin-light { color: var(--tl-fg); }
.tl-reveal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  overflow: hidden;
  will-change: clip-path;
}
