:root {
  --body-background: black;
  --main-text-color: rgba(110,12,12,1);
  --eye-background-radial: radial-gradient(circle, rgba(0,0,0,1) 0%, rgb(118, 2, 2) 39%, rgb(70, 6, 6) 60%, rgba(0,0,0,1) 100%);
  --eye-border-color: black;
}

* {
  font-family: 'Roboto', sans-serif;
}

body::-webkit-scrollbar {
  display: none;
}

.container {
  width: 100%;
  text-align: center;
}

.line-container {
  padding: 100px;
}

.line-container > .text {
  text-align: left;
}

.line-container > .line {
  height: 5px;
  border-radius: 50%;
  background-color: black;
  box-shadow: 0 0 10px 5px rgba(110,12,12,1);
}

.line > .text {
  position: relative;
  top: -50px;
  text-align: left;
}

.text {
  padding: 10px;
  color: var(--main-text-color);
  text-shadow: 0 0 10px rgba(110,12,12,1), 0 0 10px black, 0 0 10px black, 0 0 10px rgba(110,12,12,1);
  text-align: center;
  font-size: 20px;
  bottom: 100px;
}

/* ===== SHARINGAN SECTIONS ===== */

.normal-sharingan {
  position: relative;
  width: 300px;
  height: 300px;

  display: flex;
  align-items: center;
  justify-content: center;
}
.mangekyou-sharingan,
.eternal-mangekyou-sharingan,
.rinnegan {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  flex-flow: row wrap;
}

/* ===== EYE CONTAINER ===== */

.eye-container {
  position: relative;
  width: 300px;
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== FADE CONTAINER ===== */

/* ===== CLEAN FADE ONLY TRANSITIONS ===== */

.eye-and-reflection-container {
  position: absolute;
  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  opacity: 0;

  transition: opacity 1.2s ease-in-out;

  will-change: opacity;

  pointer-events: none;
}

/* ACTIVE */
.eye-and-reflection-container.active {
  opacity: 1;
  z-index: 2;
}

/* EXIT */
.eye-and-reflection-container.exit {
  opacity: 0;
  z-index: 1;
}
/* ===== CIRCLE ===== */

.circle {
  border-radius: 50%;
}

/* ===== EYE ===== */

.eye {
  overflow: hidden;
  cursor: pointer;
  position: relative;
  width: 200px;
  height: 200px;
  
  transition: 0.3s;
  opacity: 0.9;
  background: var(--eye-background-radial);
  display: flex;
  align-items: center;
  justify-content: center;
box-shadow:
  0 0 60px rgba(255, 0, 0, 0.55),
  0 0 160px rgba(110, 12, 12, 0.35),
  0 0 120px rgba(0, 0, 0, 0.6);
}

.eye::after {
  position: absolute;
  content: '';
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: black;
}

.eye > .inner-eye {
  position: absolute;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 3px solid black;
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===== ALWAYS-SPINNING INNER EYE ===== */

.eye .inner-eye {
  animation: rotation 1.5s linear infinite;
}

@keyframes rotation {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* ===== TAG ===== */

.tag-container {
  width: 100%;
  height: 100%;
  align-items: center;
  display: flex;
  justify-content: center;
  position: absolute;
}

.tag {
  position: absolute;
  width: 20px;
  height: 20px;
  margin-bottom: 120px;
  background-color: black;
}

.tag::after {
  position: absolute;
  content: '';
  width: 20px;
  height: 20px;
  border: 10px solid black;
  border-radius: 50%;
  border-top: none;
  border-right: none;
  border-bottom: none;
  left: 3px;
  top: -5px;
  margin-bottom: 120px;
  background-color: transparent;
}

/* ===== GLARE ===== */

.glare {
  z-index: 100;
  position: absolute;
  width: 100px;
  height: 100px;
  opacity: 0.4;
  left: 20px;
  top: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.5) 45%, rgba(0,0,0,0) 100%);
}

.glare::after {
  position: absolute;
  content: '';
  width: 20px;
  height: 20px;
  opacity: 0.5;
  left: 65px;
  top: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.5) 45%, rgba(0,0,0,0) 100%);
}

.glare::before {
  position: absolute;
  content: '';
  width: 50px;
  height: 50px;
  opacity: 0.3;
  left: 100px;
  top: 100px;
  border-radius: 50%;
  background: linear-gradient(225deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.5) 45%, rgba(0,0,0,0) 100%);
}

/* ===== EYE HOVER & ACTIVE ===== */

.eye:hover {
  z-index: 1;
  box-shadow: 0 0 100px rgb(201, 13, 13);
  animation: glow .5s ease-in-out;
  opacity: 1;
  mix-blend-mode: lighten;
}

.eye:active {
  box-shadow: none;
  animation: none;
  transform: scale(1);
  opacity: 1;
}

/* ===== OWNER INFO ===== */

.owner-info {
  padding-top: 40px;
}

.owner-info > .text {
  text-align: left;
  font-size: 15px;
}

/* ===== KEYFRAMES ===== */

@keyframes glow {
  0%   { box-shadow: 0 0 0 rgb(201, 13, 13); }
  100% { box-shadow: 0 0 100px rgb(201, 13, 13); }
}

@keyframes scale {
  0%   { transform: scale(1); }
  100% { transform: scale(1.1); }
}

/* ===== LEVEL 2 ===== */

.level2 > .inner-eye > .tag-container:nth-child(2) {
  transform: rotate(180deg);
}

/* ===== LEVEL 3 ===== */

.level3 > .inner-eye > .tag-container:nth-child(2) {
  transform: rotate(120deg);
}

.level3 > .inner-eye > .tag-container:nth-child(3) {
  transform: rotate(240deg);
}

/* ===== BARU ===== */

.baru-eye {
  background: black;
}

.baru-eye > .inner-eye {
  width: 100% !important;
  height: 100% !important;
}

.baru-eye > .inner-eye > .tag-container > .tag {
  width: 82%;
  height: 82%;
  top: 5px;
  margin: auto;
  -webkit-clip-path: polygon(0% 87%, 50% 0%, 100% 87%);
  clip-path: polygon(0% 87%, 50% 0%, 50% 0%, 100% 87%);
}

.baru-eye > .inner-eye > .tag-container > .tag::after {
  border: none;
  border-radius: 50%;
  width: 150%;
  height: 150%;
  margin: auto;
  left: -40px;
  top: -30px;
  background: radial-gradient(circle, rgba(0,0,0,1) 0%, rgba(110,12,12,1) 20%, rgba(75,8,8,1) 60%, rgba(0,0,0,1) 100%);
}

.baru-svg {
  width: 110px;
  position: absolute;
  top: 23px;
  left: -2px;
  transform: rotate(-60deg);
}

.baru-path {
  fill: rgba(101, 15, 15, 1);
}

.semicircle {
  position: absolute;
  width: 100%;
  height: 100%;
}

.semicircle:nth-child(3) { transform: rotate(120deg); }
.semicircle:nth-child(4) { transform: rotate(240deg); }


/* ===== HAGOROMO ===== */

.hagoromo-eye {
  background: radial-gradient(circle, rgba(117,87,143,1) 0%, rgba(122,83,156,1) 20%, rgba(242,221,255,1) 100%);
  box-shadow:
  0 0 30px rgba(170, 97, 243, 0.645),
  0 0 80px rgba(160, 120, 200, 0.25),
  0 0 140px rgba(120, 80, 180, 0.2);
}

.hagoromo-eye:hover {
  box-shadow: 0 0 100px rgba(122,83,156,1);
  animation: hagoromo-glow .5s ease-in-out;
}

.hagoromo-eye::after { width: 20px; height: 20px; }

.hagoromo-text {
  color: rgba(117,87,143,1);
  text-shadow: 0 0 10px rgba(117,87,143,1), 0 0 10px black, 0 0 10px black, 0 0 10px rgba(117,87,143,1);
}

.hagoromo-eye > .inner-eye { border: none; }

.hagoromo-eye > .inner-eye > div {
  position: absolute;
  border: 3px solid black;
  border-radius: 50%;
}

.hagoromo-eye > .inner-eye > div:nth-child(1) { width: 60px;  height: 60px;  }
.hagoromo-eye > .inner-eye > div:nth-child(2) { width: 110px; height: 110px; }
.hagoromo-eye > .inner-eye > div:nth-child(3) { width: 160px; height: 160px; }

@keyframes hagoromo-glow {
  0%   { box-shadow: 0 0 0 rgba(122,83,156,1); }
  100% { box-shadow: 0 0 100px rgba(122,83,156,1); }
}


/* ===== ITACHI ===== */

.itachi-eye {
  overflow: hidden;
  background: radial-gradient(circle, rgba(110,12,12,1) 0%, rgba(110,12,12,1) 39%, rgba(75,8,8,1) 60%, rgba(0,0,0,1) 100%);
}

.itachi-eye::after {
  box-shadow: 0 0 20px rgb(143, 19, 19);
  background: rgb(143, 19, 19);
}

.itachi-eye > .inner-eye {
  border: none;
  background: transparent;
  width: 80px;
  height: 80px;
}

.itachi-eye > .inner-eye > .tag-container > .tag {
  top: -60px;
  background-color: transparent;
  width: 200px;
  height: 110px;
  border-radius: 0;
  overflow: hidden;
  transform-origin: 100px 100px;
}

.itachi-eye > .inner-eye > .tag-container > .tag::after {
  border-left: 50px solid black;
  top: 1px;
  left: 82px;
  width: 300px;
  height: 160px;
}

.itachi-eye > .inner-eye > .tag-container:nth-child(1) { transform: rotate(-30deg);  }
.itachi-eye > .inner-eye > .tag-container:nth-child(2) { transform: rotate(90deg);   }
.itachi-eye > .inner-eye > .tag-container:nth-child(3) { transform: rotate(210deg);  }


/* ===== KAKASHI ===== */

.kakashi-eye {
  background: radial-gradient(circle, rgba(110,12,12,1) 0%, rgba(110,12,12,1) 39%, rgba(75,8,8,1) 60%, rgba(0,0,0,1) 100%);
}

.kakashi-eye::after {
  z-index: 1000000;
  position: absolute;
  content: '';
  width: 40px;
  height: 40px;
  border-radius: 50%;
  box-shadow: 0 0 20px rgb(143, 19, 19);
  background-color: rgb(143, 19, 19);
  background-clip: content-box;
}

.kakashi-eye > .inner-eye {
  width: 120px;
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: transparent;
}

.kakashi-eye > .inner-eye > .tag-container {
  position: absolute;
  width: 200px;
  height: 100%;
}

.kakashi-eye > .inner-eye > .tag-container > .tag {
  position: absolute;
  margin-bottom: 0;
  height: 100px;
  width: 200px;
  top: -40px;
  border-radius: 0;
  clip-path: ellipse(25px 140px at 100px 140px);
}

.kakashi-eye > .inner-eye > .tag-container > .tag::after { display: none; }

.kakashi-eye > .inner-eye > .tag-container > .tag:nth-child(2) {
  width: 100px;
  height: 100px;
  right: 0;
  clip-path: none;
  overflow: hidden;
  background-color: transparent !important;
}

.kakashi-eye > .inner-eye > .tag-container > .tag:nth-child(2) > .tag-circle {
  top: -11px;
  position: relative;
  left: -140px;
  width: 200px;
  height: 170px;
  border-radius: 50%;
  border: 40px solid black;
  border-bottom: none;
  border-right: none;
  border-left: none;
  background-color: transparent;
  margin: 0;
}

.kakashi-eye > .inner-eye > .tag-container:nth-child(2) { transform: rotate(120deg); }
.kakashi-eye > .inner-eye > .tag-container:nth-child(3) { transform: rotate(240deg); }


/* ===== SASUKE MANGEKYOU ===== */

.sasuke-eye { background: black; }

.sasuke-eye > .inner-eye {
  border: none;
  width: 100%;
  height: 100%;
}

.sasuke-eye > .inner-eye > .tag-container > .tag {
  width: 140px;
  height: 140px;
  margin: auto;
  background: radial-gradient(circle, rgba(0,0,0,1) 0%, rgba(110,12,12,1) 39%, rgba(75,8,8,1) 60%, rgb(51,32,32) 100%);
  border-radius: 0% 100% 0% 100%;
}

.sasuke-eye > .inner-eye > .tag-container:nth-child(3) > .tag {
  border: 3px solid black;
}

.sasuke-eye > .inner-eye > .tag-container > .tag::after { display: none; }

.sasuke-eye > .inner-eye > .tag-container:nth-child(1) { transform: rotate(45deg);  }
.sasuke-eye > .inner-eye > .tag-container:nth-child(2) { transform: rotate(165deg); }
.sasuke-eye > .inner-eye > .tag-container:nth-child(3) { transform: rotate(285deg); }

.sasuke-eye > .inner-eye > .tag-container:nth-child(3) > .tag::before,
.sasuke-eye > .inner-eye > .tag-container:nth-child(3) > .tag::after {
  position: absolute;
  content: '';
  display: block;
  border: inherit;
  width: 100%;
  height: 100%;
  background-color: transparent;
  border-radius: inherit;
  margin: auto;
  left: -4px;
  top: -4px;
}

.sasuke-eye > .inner-eye > .tag-container:nth-child(3) > .tag::before { transform: rotate(120deg); }
.sasuke-eye > .inner-eye > .tag-container:nth-child(3) > .tag::after  { transform: rotate(240deg); }

/* SASUKE EMS */
.s-ems::after {
  width: 30px;
  height: 30px;
  background-color: rgba(110,12,12,1);
}

.s-ems > .inner-eye > .ems-tags > div {
  position: absolute;
  width: 100px;
  height: 100px;
  top: 0;
  left: 50px;
  overflow: hidden;
}

.s-ems > .inner-eye > .ems-tags > div::after {
  position: absolute;
  content: '';
  width: 35%;
  height: 200%;
  background-color: black;
  top: 30px;
  left: 33px;
  border-radius: 50%;
  border: none;
}

.s-ems > .inner-eye > .ems-tags > div:nth-child(2) {
  transform-origin: bottom center;
  transform: rotate(120deg);
}

.s-ems > .inner-eye > .ems-tags > div:nth-child(3) {
  transform-origin: bottom center;
  transform: rotate(240deg);
}

/* ===== SASUKE RINNEGAN ===== */

.s-rgn > .inner-eye > div > .tag-container {
  width: 100%;
  height: 100%;
  position: absolute;
}

/* Inner tomoe ring */
.s-rgn > .inner-eye > div:nth-child(1) {
  position: absolute;
  width: 65%;
  height: 65%;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: tomoe-ccw 0.7s linear infinite;
  will-change: transform;
}

/* Outer tomoe ring */
.s-rgn > .inner-eye > div:nth-child(2) {
  position: absolute;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: tomoe-cw 14s linear infinite;
  will-change: transform;
}

/* Inner tomoe tag positions */
.s-rgn > .inner-eye > div:nth-child(1) > .tag-container > .tag {
  top: -2px;
  left: 10px;
}
.s-rgn > .inner-eye > div:nth-child(1) > .tag-container:nth-child(2) { transform: rotate(120deg); }
.s-rgn > .inner-eye > div:nth-child(1) > .tag-container:nth-child(3) { transform: rotate(240deg); }

/* Outer tomoe tag positions */
.s-rgn > .inner-eye > div:nth-child(2) > .tag-container > .tag {
  top: -12px;
  left: 45px;
}
.s-rgn > .inner-eye > div:nth-child(2) > .tag-container:nth-child(2) { transform: rotate(120deg); }
.s-rgn > .inner-eye > div:nth-child(2) > .tag-container:nth-child(3) { transform: rotate(240deg); }

@keyframes tomoe-ccw {
  from { transform: rotate(0deg); }
  to   { transform: rotate(-360deg); }
}

@keyframes tomoe-cw {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}


/* ===== SHISUI ===== */

.eye:hover .sui {
  animation: shisuiRotation 2.5s ease-in-out .8s;
}

.shisui-eye > .inner-eye {
  width: 0;
  height: 0;
  background-color: black;
  transform: rotate(-45deg);
}

.shisui-eye::after {
  border: 12px solid rgba(110,12,12,1);
}

.shisui-eye > .inner-eye > .tag-container > .tag {
  width: 150px;
  height: 150px;
  top: -100px;
  background-color: transparent;
  left: -50px;
  overflow: hidden;
  transform-origin: 50px 100px;
}

.shisui-eye > .inner-eye > .tag-container > .tag > div {
  position: absolute;
  width: 375px;
  height: 96px;
  top: 72px;
  transform: rotate(-20deg);
  transform-origin: 200px 0px;
  left: -260px;
  border-radius: 50%;
  background-color: transparent;
  border-top: 40px solid black;
  border-bottom: none;
  border-left: 20px solid transparent;
  border-right: none;
}

.shisui-eye > .inner-eye > .tag-container:nth-child(2) { transform: rotate(90deg);  }
.shisui-eye > .inner-eye > .tag-container:nth-child(3) { transform: rotate(180deg); }
.shisui-eye > .inner-eye > .tag-container:nth-child(4) { transform: rotate(270deg); }

.shisui-eye > .inner-eye > .tag-container > .tag::after { display: none; }

@keyframes shisuiRotation {
  0%   { transform: rotate(-45deg); }
  100% { transform: rotate(675deg); }
}


/* ===== GLOBAL WRAPPERS / UTILITIES ===== */

#sharingan-effect {
  position: fixed;
  inset: 0;

  display: none;

  align-items: center;
  justify-content: center;

  background: var(--body-background);

  overflow: hidden;

  
  transform-origin: center;

  z-index: 9999;

  mix-blend-mode: lighten;

  -ms-overflow-style: none;
  scrollbar-width: none;

}
#sharingan-wrapper{
    display: flex;
  align-items: center;
  justify-content: center;
  transform: scale(2);
}
#sharingan-effect {
  display: none;
}