@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap");

:root {
   --paper: #f5f1e5;
   --ink: #202020;
   --plastic: #1c1f2a;
   --edge: #0a0d18;
   --muted: #6b6f84;
   --accent: #d49e8c;
   --stripe1: #e44f2a;
   --stripe2: #ffc83d;
   --stripe3: #35b36a;
   --stripe4: #3c8aff;
   --red: #ff6b6b;
}
* {
   margin: 0;
   padding: 0;
   outline: none;
   border: none;
   text-decoration: none;
   box-sizing: border-box;
   font-family: "Montserrat", sans-serif;
   font-size: 16px;
   line-height: 1;
   list-style: none;
   color: inherit;
}
html {
   height: 100%;
}
body {
   height: 100%;
   width: 100%;
   display: grid;
   grid-template-rows: auto 1fr auto;
}
.container {
   margin: 0 auto;
   padding: 0 10px;
   width: 100%;
   max-width: 1440px;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: space-between;
}
a,
button,
input,
textarea {
   cursor: pointer;
   background: none;
}
header {
   max-height: fit-content;
   width: 100%;
   display: flex;
   align-items: center;
   gap: 16px;
   margin-bottom: 16px;
}
header .container {
   padding-top: 40px;
   flex-direction: row;
   justify-content: start;
   column-gap: 30px;
   align-items: end;

   background: url("../img/gradient.svg");
   background-size: 160px 160px;
   background-repeat: repeat-x;
}
.logo {
   width: auto;
   height: 140px;
   object-fit: contain;
}
.header_div {
   display: flex;
   flex-direction: column;
   gap: 10px;
}
.header_div p {
   max-width: 600px;
   text-shadow: 0 -3px 9.4px #fff;
   font-weight: 600;
   font-size: 14px;
   line-height: 1.4;
   text-transform: lowercase;
}
.header_div p a {
   font-weight: 900;
}
.header_div_div {
   height: 50px;
   display: flex;
   gap: 30px;
}
.header_div_div img {
   height: 100%;
   width: auto;
   object-fit: contain;
}
.header_div_div .btn {
   padding: 16px 20px;
   justify-content: center;
   align-items: center;
   font-weight: 500;
   font-size: 14px;

   border-radius: 15px;
   border: 2px solid #000;
   background: #fff;
   box-shadow: 6px 6px 0 0 #000;
   transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.header_div_div .btn:hover {
   transform: translate(-2px, -2px);
   box-shadow: 8px 8px 0 0 #000;
}
.header_div_div .btn:active {
   transform: translate(3px, 3px);
   box-shadow: 3px 3px 0 0 #000;
}
.meta {
   color: var(--muted);
   font-size: 12px;
}
main h2 {
   padding: 20px 0;
   width: 100%;
   font-size: 32px;
   font-weight: 700;
   text-transform: lowercase;
}
.card {
   padding: 20px;
   display: flex;
   gap: 30px;
   background: rgb(43, 43, 43);
   border-radius: 15px;
   color: white;
}
.h3 {
   color: var(--accent);
   font-weight: 700;
   font-size: 16px;
   text-transform: lowercase;
   letter-spacing: 0.5px;
}
.p {
   margin-top: 5px;
   font-weight: 400;
   font-size: 12px;
   line-height: 1.4;
   text-transform: lowercase;
   opacity: 0.7;
}
.gradient {
   width: 100%;
   height: 200px;

   background: url("../img/gradient_rotate.svg");
   background-size: 160px 160px;
   background-position: 0 -60px;
   background-repeat: repeat-x;
}
footer {
   max-height: fit-content;
   margin: 0;
   padding-top: 40px;
}
footer .container {
   margin-bottom: 80px;
   justify-content: start;
   align-items: start;
   gap: 0;

   background: url("../img/gradient_rotate.svg");
   background-size: 160px 160px;
   background-position: 0 -60px;
   background-repeat: repeat-x;
}
footer p {
   font-weight: 700;
   text-transform: lowercase;
}
footer a {
   color: var(--accent);
   text-decoration: underline;
   transition: color 0.15s ease;
}
footer a:hover {
   color: #fff;
}
footer .logo_imgs {
   padding-top: 10px;
   display: flex;
   align-items: end;
   gap: 20px;
}
.card #upload-form {
   max-width: 600px;
   width: 100%;
   display: flex;
   flex-direction: column;
   gap: 15px;
}
.card:has(#upload-form) {
   min-height: 720px;
   background: url("../img/background-misc.png");
   background-size: 100% auto;
   background-repeat: no-repeat;
   background-position: 0 0;
}
#file-input {
   display: none;
}
.fileload {
   height: 200px;
   width: 100%;
   min-width: 240px;
   padding: 10px;

   background: #fff url("../img/gradient.svg");
   background-size: 120px 120px;
   background-position: 0 100px;
   background-repeat: repeat-x;
   border-radius: 15px;
}
.fileload .mini {
   height: 100%;
   width: 100%;
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   padding: 10px;
   border: 3px solid #d49e8c;
   border-radius: 5px;
}
.fileload .mini b {
   color: #000;
   font-size: 18px;
   font-weight: 600;
   text-transform: lowercase;
}
.fileload .mini p {
   color: #767676;
   font-size: 13px;
   font-weight: 500;
   letter-spacing: -0.5px;
   text-transform: lowercase;
}
.fileload {
   transition: transform 0.15s ease, box-shadow 0.15s ease;
   cursor: pointer;
}
.fileload:hover {
   transform: translate(-2px, -2px);
}
.fileload.dragover {
   border-color: var(--accent);
   background: rgba(76, 175, 80, 0.1);
}

.index-right {
   display: flex;
   flex-direction: column;
   gap: 15px;
}
.right-flex {
   display: flex;
   gap: 15px;
   justify-content: space-between;
}
.file-list {
   width: 100%;
   max-width: 500px;
   display: flex;
   flex-direction: column;
   gap: 10px;
   counter-reset: file-counter;
   list-style-type: none;
}
.file-list li {
   width: 100%;
   display: flex;
   gap: 5px;
   counter-increment: file-counter;
}

.file-list li .song-name::before {
   content: counter(file-counter) ". ";
}
.song-name {
   padding: 15px;
   display: flex;
   align-items: center;
   gap: 20px;

   max-height: 55px;
   width: 100%;
   overflow: hidden;
   color: #000;
   white-space: nowrap;
   text-overflow: ellipsis;
   font-weight: 600;
   font-size: 14px;
   text-transform: lowercase;

   background: #fff url("../img/gradient_rotate90.svg");
   background-size: 250px 250px;
   background-position: 240px 0;
   background-repeat: no-repeat;
   border-radius: 15px;
   border: 2px solid #000;
   box-shadow: 6px 10px 0 0 #000;
   transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.song-name:hover {
   transform: translate(-2px, -3px);
   box-shadow: 8px 13px 0 0 #000;
}
.cross-btn {
   height: 55px;
   width: 55px;
   align-items: center;
   justify-content: center;

   border-radius: 15px;
   background: #fff;
   border: 2px solid #000;
   box-shadow: 6px 10px 0 0 #000;

   color: #000;
   font-size: 32px;
   font-weight: 600;
   text-transform: lowercase;
   transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.cross-btn:hover {
   transform: translate(-2px, -3px);
   box-shadow: 8px 13px 0 0 #000;
   background: var(--red);
   color: #fff;
}
.cross-btn:active {
   transform: translate(3px, 5px);
   box-shadow: 3px 5px 0 0 #000;
}

.actions {
   width: 100%;
   max-width: 235px;
   display: flex;
   flex-direction: column;
   gap: 10px;
}
.btn-primary {
   padding: 15px;
   display: grid;
   place-items: center;
   text-align: center;
   background: var(--accent);
   border-radius: 15px;

   font-weight: 500;
   font-size: 14px;
   text-transform: lowercase;
   border: 2px solid #000;
   box-shadow: 6px 10px 0 0 #000;
   transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn-primary:hover {
   transform: translate(-2px, -3px);
   box-shadow: 8px 13px 0 0 #000;
   background: #dba999;
}
.btn-primary:active {
   transform: translate(3px, 5px);
   box-shadow: 3px 5px 0 0 #000;
}
.btn-secondary {
   width: 100%;
   padding: 15px;
   display: grid;
   place-items: center;
   text-align: center;
   background: #fff;
   border-radius: 15px;

   color: #000;
   font-weight: 500;
   font-size: 14px;
   border: 2px solid #000;
   box-shadow: 6px 10px 0 0 #000;
   transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn-secondary:hover {
   transform: translate(-2px, -3px);
   box-shadow: 8px 13px 0 0 #000;
   background: #f5f5f5;
}
.btn-secondary:active {
   transform: translate(3px, 5px);
   box-shadow: 3px 5px 0 0 #000;
}
.btn[disabled] {
   opacity: 0.5;
   cursor: not-allowed;
   pointer-events: none;
   text-align: center;
}
.btn[disabled]:hover {
   transform: none;
   box-shadow: 6px 10px 0 0 #000;
}
.card:has(#group-form) {
   min-height: 800px;
   background: url("../img/background-disk.png");
   background-size: 100% auto;
   background-repeat: no-repeat;
   background-position: 0 0;
}
#group-form {
   display: flex;
   gap: 60px;
}
input[type="text"],
textarea,
input[type="file"],
select {
   width: 100%;
   padding: 12px 15px;
   display: flex;
   align-items: center;
   background: #fff;
   color: black;
   font-weight: 400;
   font-size: 14px;
   border-radius: 10px;
   border: 2px solid #000;
   box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.08);
   transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
input[type="text"]:hover,
textarea:hover,
select:hover {
   box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.12);
}
input[type="text"]:focus,
textarea:focus,
select:focus {
   border-color: var(--accent);
   box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.08), 0 0 0 3px rgba(212, 158, 140, 0.25);
   outline: none;
}
input[type="text"]::placeholder,
textarea::placeholder {
   color: rgba(0, 0, 0, 0.4);
   font-weight: 400;
}
textarea {
   min-height: 100px;
   resize: vertical;
   line-height: 1.5;
}
.per-file {
   display: flex;
   flex-direction: column;
   gap: 10px;
}
.row {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 25px;
}
.row > div {
   display: flex;
   flex-direction: column;
   gap: 5px;
}
.right-sets {
   width: 110%;
   height: fit-content;
   display: flex;
   flex-wrap: wrap;
   gap: 18px;
   padding-left: 89px;
}
.disk-text {
   max-width: 500px;
}
.row.right {
   margin-top: 20px;
   margin-bottom: 10px;
}
.disk {
   margin-top: 55px;
   width: 100%;
   max-width: 400px;
   height: 400px;
   display: flex;
   align-items: center;
   justify-content: center;
   position: relative;
   border-radius: 50%;
   overflow: hidden;
   user-select: none;
}
.disk::after {
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   z-index: 1;
   cursor: not-allowed;
}
.disk img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   animation: rotate-disk 15s linear infinite;
}
@keyframes rotate-disk {
   from {
      transform: rotate(0deg);
   }
   to {
      transform: rotate(360deg);
   }
}
.disk .center {
   position: absolute;
   width: 150px;
   height: 150px;
   border-radius: 50%;
   background: url("../img/center.png");
   background-size: contain;
}
.cover {
   display: grid !important;
   grid-template-columns: 128px 1fr;
   column-gap: 20px !important;
   row-gap: 10px !important;
}
.cover .h3 {
   grid-area: 1 / 1 / 1 / 3;
}
#cover-box {
   width: 128px;
   height: 128px;
   display: flex;
   align-items: center;
   justify-content: center;
   overflow: hidden;

   border-radius: 15px;
   border: 3px solid #000;
   box-shadow: 6px 6px 0 0 #000;
   transition: transform 0.15s ease, box-shadow 0.15s ease;
}
#cover-box:hover {
   transform: translate(-2px, -2px);
   box-shadow: 8px 8px 0 0 #000;
}
.cover img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}
#cover-input {
   display: none;
}
.fileload2 {
   width: 100%;
   padding: 25px;

   background: #fff url("../img/gradient.svg");
   background-size: 120px 120px;
   background-position: 0 0px;
   background-repeat: repeat-x;
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;

   border-radius: 15px;
   border: 2px solid #000;
   box-shadow: 6px 10px 0 0 #000;
}
.fileload2 p {
   font-size: 13px;
   font-weight: 500;
   text-transform: lowercase;
   color: black;
   text-align: center;
}
.fileload2 {
   transition: transform 0.15s ease, box-shadow 0.15s ease;
   cursor: pointer;
}
.fileload2:hover {
   transform: translate(-2px, -3px);
   box-shadow: 8px 13px 0 0 #000;
}
.fileload2.dragover {
   border-color: var(--accent);
   background: rgba(76, 175, 80, 0.1);
}
.cover .btns {
   display: flex;
   flex-direction: column;
   gap: 10px;
}
.btn-third {
   width: 100%;
   padding: 15px;
   display: grid;
   place-items: center;
   text-align: center;
   background: #000;
   border-radius: 15px;

   color: white;
   font-weight: 500;
   font-size: 14px;
   border: 2px solid #fff;
   box-shadow: 6px 10px 0 0 #000;
   transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn-third:hover {
   transform: translate(-2px, -3px);
   box-shadow: 8px 13px 0 0 #000;
   background: #222;
}
.btn-third:active {
   transform: translate(3px, 5px);
   box-shadow: 3px 5px 0 0 #000;
}
form:has(.server-del) {
   position: relative;
}
.server-del {
   width: fit-content;
   min-width: 240px;
   position: absolute;
   top: -250px;
   left: 450px;
}
.disk .meta {
   width: 100%;
   aspect-ratio: 1/1;
   object-fit: cover;
   animation: rotate-disk 15s linear infinite;
   background: #41302a;
   display: flex;
   justify-content: center;
   padding-top: 10%;
   font-size: 20px;
   color: var(--accent);
   opacity: 0.3;
}
.done-container {
   margin-bottom: 60px;
   width: 100%;
   display: flex;
   gap: 15px;
}
.plus-gradient {
   width: 100%;
   max-width: 600px;
   position: relative;
}
.card.done {
   position: relative;
   width: 100%;
   flex-direction: column;
   background: #000;
   z-index: 2;
}
.cd-pack {
   width: 100%;
   display: flex;
}
.cd:first-child {
   margin-left: 0;
}
.cd {
   margin-left: -36px;
   width: 80px;
   height: 80px;
   background: url("../img/cd.png") 50% / cover no-repeat;
}
#done-info {
   font-weight: 400;
   font-size: 12px;
   text-transform: lowercase;
   opacity: 0.7;
}
#done-info span {
   font-weight: 700;
}
.done-actions {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 10px;
}
.done form button {
   font-weight: 500;
   font-size: 14px;
   text-transform: lowercase;
}
.plus-gradient .gradient {
   position: absolute;
   bottom: -185px;
   left: 0px;
   z-index: 1;
}
.plus-gradient:has(.tg) {
   max-width: none;
}
.card.done.tg {
   height: 100%;
   gap: 30px;
}
.tg .btn-secondary {
   width: fit-content;
   text-transform: lowercase;
   text-align: center;
   font-size: 14px;
}
#tg-box p {
   font-weight: 400;
   font-size: 13px;
   text-transform: lowercase;
   padding-bottom: 10px;
   line-height: 1.4;
   opacity: 0.85;
}
#tg-box p:nth-child(3) {
   padding-bottom: 16px;
}
#tg-box .btn {
   width: fit-content;
}
#tg-open {
   display: inline-block;
   transition: transform 0.15s ease;
}
#tg-open:hover {
   transform: scale(1.02);
}
#tg-code,
#tg-copy {
   font-weight: 700;
   text-transform: lowercase;
   color: var(--accent);
}
#tg-copy {
   cursor: pointer;
   transition: transform 0.1s ease, color 0.15s ease;
   display: inline-block;
}
#tg-copy:hover {
   color: #fff;
}
#tg-copy:active {
   transform: scale(0.95);
}
#tg-copy.copied {
   color: var(--stripe3);
}
@keyframes copy-pulse {
   0% { transform: scale(1); }
   50% { transform: scale(1.05); }
   100% { transform: scale(1); }
}
.copy-success {
   animation: copy-pulse 0.3s ease;
}

.header_div p a {
   text-decoration: underline;
   transition: color 0.15s ease;
}
.header_div p a:hover {
   color: var(--accent);
}

@media (max-width: 1440px) {
   .card:has(#group-form) {
      flex-direction: column;
      background: #000;
   }
   #group-form {
      flex-direction: column;
   }
   .disk {
      max-height: 400px;
      aspect-ratio: 1/1;
   }
   #group-form .row:last-child {
      gap: 10px;
      width: 100%;
   }
   .cover {
      display: flex !important;
      flex-direction: column;
   }
   .right-sets {
      width: 100%;
   }

   .server-del {
      margin-top: 10px;
      width: 100%;
      position: relative;
      top: 0;
      left: 0;
   }
}
@media (max-width: 700px) {
   main h2 {
      font-size: 20px;
   }
   header .container {
      flex-direction: column;
      align-items: start;
      row-gap: 10px;
      background-position: 0 100px;
      padding-bottom: 20px;
   }
   .logo {
      width: 100%;
      height: auto;
   }
   .header_div_div a:has(img) {
      display: none;
   }
   .card:has(#upload-form) {
      flex-direction: column;
      background: #000;
   }
   footer .logo_imgs img {
      max-width: 120px;
      width: 100%;
      object-fit: contain;
   }
   footer .logo_imgs {
      margin-bottom: 20px;
   }
   .right-flex {
      flex-direction: column;
   }
   .file-list li {
      max-width: calc(100vw - 60px);
   }
   .card:has(#group-form) {
      flex-direction: column;
      background: #000;
   }
   #group-form {
      flex-direction: column;
   }
   .disk {
      max-width: 100%;
      height: auto;
      max-height: none;
   }
   .disk-text {
      max-width: 100%;
   }
   #group-form .row:last-child {
      gap: 10px;
      width: 100%;
   }
   .cover {
      display: flex !important;
      flex-direction: column;
   }
   .right-sets {
      width: 100%;
   }
   .row,
   .row3,
   .grid {
      grid-template-columns: 1fr;
   }
   .done-container {
      flex-direction: column;
   }
   .done-actions {
      display: flex;
      flex-direction: column;
   }
   .card.done.tg {
      width: 100%;
   }
   .cd-pack {
      flex-wrap: wrap;
   }

   .cd {
      width: 50px;
      height: 50px;
      margin-left: -22px;
   }

   form:has(.server-del) {
      width: 100%;
   }
   .server-del {
      margin-top: 10px;
      width: 100%;
      position: relative;
      top: 0;
      left: 0;
   }
   .disk .meta {
      font-size: 5vw;
   }
}

.tg-error {
   margin-top: 12px;
   padding: 10px 14px;
   border-radius: 12px;
   background: rgba(255, 94, 94, 0.12);
   color: #b2262c;
   font-weight: 600;
   line-height: 1.4;
}
