/* Brutalne odcięcie wszystkiego co wystaje poza ekran */
html, body {
    max-width: 100vw;
    overflow-x: hidden;
}

body {
    background-color: #000000;
    color: #ff007f;
    margin: 0;
    padding: 0;
    font-family: 'Courier New', Courier, monospace;
    cursor: url('../img/kursor1.cur'), auto;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* Obsługa kursora na elementach klikalnych */
a, area, button, summary {
    cursor: url('../img/kursor1.cur'), pointer;
}

.banner {
    width: 100%;
    height: auto;
    display: block;
}

.social-container {
    width: 50%; 
    display: flex;
    justify-content: space-around; 
    margin: 4vw auto 0 auto; /* Dodano auto dla lewej i prawej strony */
    box-sizing: border-box;
}

.social-icon {
    width: 50px; 
    height: 50px;
    display: block;
    transition: transform 0.1s ease-in-out;
}

.social-icon:hover {
    transform: scale(1.1);
}

.main-content {
    flex-grow: 1;
    display: flex;
    flex-direction: column; 
    justify-content: center;
    align-items: center;
    padding: 40px 20px;
}

h1 {
    font-size: 4rem;
    text-shadow: 3px 3px 0px #000,
                 5px 5px 0px #00ff00;
    letter-spacing: 5px;
    text-align: center;
    margin: 0 0 2% 0; /* odstęp pod H1 */
}

h2 {
    font-size: 2rem;
    text-shadow: 3px 3px 0px #000,
                 5px 5px 0px #00ff00;
    letter-spacing: 5px;
    text-align: center;
    margin: 0 0 10px 0; /* odstęp pod H1 */
}

/* Nowy kod dla H2 */
.marquee {
    position: relative;
    overflow: hidden;
    width: 100%;
    max-width: 1000px;
    white-space: nowrap;
    margin-top: 10px;
    font-size: 2rem;
    font-weight: 700;
    text-align: center;

    /* dopasowany neon vibe */
    text-shadow: 2px 2px 0px #000,
                 3px 3px 0px #00ff00;
    letter-spacing: 2px;
}

.marquee span {
    display: inline-block;
    padding-left: 100%;
    animation: scroll-left 18s linear infinite;
}

@keyframes scroll-left {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-100%);
    }
}

/* Nowy kontener na manifest wyciągnięty z footera */
.manifest-wrapper {
    text-align: center;
    background: #000;
    padding: 40px 20px 10px 20px; /* 10px na dole robi idealny, stary dystans do adresu email */
    width: 100%;
    box-sizing: border-box;
}

footer {
    padding: 0 20px 40px 20px; /* Wyzerowana góra, żeby nie dublować odstępu */
    text-align: center;
    background: #000;
}

details.manifest-footer {
    display: inline-block;
    width: 100%;
    max-width: 850px;
    margin: 0 auto;
}

details.manifest-footer summary {
    font-size: 0.85rem;
    color: #860d76; /* Dyskretny szary */
    list-style: none;
    outline: none;
    margin-bottom: 5px;
    transition: color 0.3s;
    text-transform: uppercase;
    letter-spacing: 2px;
}

details.manifest-footer summary:hover {
    color: #cbd630;
}

details summary::-webkit-details-marker {
    display: none;
}

.manifest-content {
    text-align: left;
    font-size: 0.9rem;
    color: #999;
    padding: 30px;
    border: 1px solid #ff007f;
    margin: 20px 0;
    line-height: 1.7;
    background-color: #050505;
}

.manifest-content h2 {
    color: #ff007f;
    font-size: 1.2rem;
    margin-top: 0;
    border-bottom: 2px solid #ff007f;
    display: inline-block;
    margin-bottom: 10px;
}

.manifest-content h3 {
    color: #00ff00;
    font-size: 1rem;
    margin-top: 25px;
    margin-bottom: 10px;
}

.manifest-content p {
    margin-bottom: 10px;
}

.email-line {
    display: block;
    font-size: 0.75rem;
    color: #700c6b;
    text-decoration: none;
    margin-top: 10px;
    letter-spacing: 1px;
}

.email-line:hover {
    color: #f0d909;
}

.llm-content {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Responsywność */
@media (max-width: 768px) {
    h1 { font-size: 3rem; }
    .social-container { width: 80%; }
}

@media (max-width: 480px) {
    h1 { font-size: 2rem; }
    .social-container { width: 100%; }
}

/* Hitbox teraz używa procentów, żeby skalować się razem z nagłówkiem */
.myspace-hitbox-link {
  position: absolute;
  /* Te wartości % musisz dobrać eksperymentalnie, 
     żeby idealnie pokrywały się z karteczką na twoim bannerze */
  top: 0%; 
  left: 2%;
  width: 17%; 
aspect-ratio: 4.1 / 4;
  z-index: 999;
  display: block;
  /*background: rgba(255, 0, 0, 0.5);*/
}

.sliding-emo-pic {
  position: absolute;
  top: 8%;
  left: 3%;
  width: 15vw; /* Obrazek będzie o 50% szerszy niż sam hitbox */
  max-width: 350px; /* Zabezpieczenie, żeby nie urósł do absurdalnych rozmiarów na TV */
  height: auto;
  transform: translateX(-120%); 
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  z-index: 1;
  pointer-events: none;
  box-shadow: 0px 0px 0px #ff00ff;
}

/* To jest najważniejsze: animacja i hover zadziałają TYLKO 
   na urządzeniach z normalnym kursorem (myszka/touchpad). 
*/
@media (hover: hover) and (pointer: fine) {
  .myspace-hitbox-link:hover .sliding-emo-pic {
    transform: translateX(0);
  }
}

/* Na telefonach (ekrany dotykowe) całkowicie ukrywamy obrazek. 
   Hitbox nadal tam jest, nadal działa i przeniesie do /o-nas, 
   ale bez prób renderowania zbugowanej animacji na dotyk.
*/
@media (hover: none), (pointer: coarse) {
  .sliding-emo-pic {
    display: none;
  }
}

.blink::after {
  content: ' _'; /* kursor, gwiazdkę, cokolwiek */
  animation: blink-animation 1s steps(5, start) infinite;
}

@keyframes blink-animation {
  to { visibility: hidden; }
}

.content-box {
    background: rgba(0, 0, 0, 0.8); /* Półprzezroczyste czarne tło */
    border: 2px double #ff00ff;   /* Podwójna ramka w kolorze folet*/
    padding: 20px;
    margin-top: 20px;
    color: #00ff00;               /* Klasyczny, "hakerski" zielony lub zostaw biały */
    font-family: "Courier New", Courier, monospace; /* Maszynowy font pasuje do gwiazdek */
    box-shadow: 10px 10px 0px #4b0082; /* Sztywny cień w kolorze indygo */
}

.content-box blockquote {
    border-left: 5px solid #ff00ff;
    padding-left: 15px;
    font-style: italic;
    margin: 20px 0;
}

.content-wrapper {
    width: 98%;          /* Zajmuje prawie całą szerokość na małych ekranach */
    max-width: 1000px;    /* Ale nie rozciąga się w nieskończoność na monitorze 4K */
    margin: 0 auto;      /* Centruje cały blok na środku */
    padding: 5px;       /* Oddech od krawędzi ekranu */
    box-sizing: border-box; /* Gwarantuje, że padding nie powiększa szerokości boxa */
}

.content-box {
    width: 100%;         /* Zawsze wypełnia wrapper */
    word-wrap: break-word; /* Wymusza łamanie bardzo długich słów  */
    overflow-wrap: break-word;
    box-sizing: border-box;
}

/* Przełącznik języka PL/ENG w nagłówku H1 */
.lang-switcher {
    font-size: 2.5rem; /* O połowę mniejsze, żeby nie ryczało na cały ekran */
    vertical-align: middle;
    color: #00ff00; /* Konsolowy zielony z Twojego schematu */
    text-shadow: 2px 2px 0px #000;
    letter-spacing: 2px;
}

.lang-switcher a {
    color: #ff00ff; /* Fuksja z podwójnej ramki jako kolor linku */
    text-decoration: none;
    transition: color 0.2s ease, text-shadow 0.2s ease;
}

.lang-switcher a:hover {
    color: #ff007f; /* Jasnoróżowy z footera przy najechaniu */
    text-shadow: 2px 2px 0px #000, 0 0 10px #ff007f;
}

/* Glitch dla RAWR XD */
.glitch {
    position: relative;
    display: inline-block;
    /* Zachowujemy Twoje cienie, żeby glitch wyłaził "spod" nich */
    text-shadow: 3px 3px 0px #000, 5px 5px 0px #00ff00;
}

.glitch::before,
.glitch::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: black; /* Tło musi być czarne, żeby wycięcia clip-path działały */
    clip: rect(0, 0, 0, 0);
}

.glitch::before {
    left: 3px;
    text-shadow: -3px 0 #ff007f; /* Fuksja */
    animation: glitch-anim-1 2s infinite linear alternate-reverse;
}

.glitch::after {
    left: -3px;
    text-shadow: -3px 0 #00ff00; /* Zieleń */
    animation: glitch-anim-2 3s infinite linear alternate-reverse;
}

@keyframes glitch-anim-1 {
    0% { clip: rect(20px, 9999px, 21px, 0); }
    10% { clip: rect(50px, 9999px, 55px, 0); }
    20% { clip: rect(10px, 9999px, 15px, 0); }
    30% { clip: rect(80px, 9999px, 85px, 0); }
    40% { clip: rect(30px, 9999px, 31px, 0); }
    50% { clip: rect(60px, 9999px, 62px, 0); }
    60% { clip: rect(10px, 9999px, 12px, 0); }
    70% { clip: rect(40px, 9999px, 45px, 0); }
    80% { clip: rect(70px, 9999px, 75px, 0); }
    90% { clip: rect(20px, 9999px, 25px, 0); }
    100% { clip: rect(90px, 9999px, 95px, 0); }
}

@keyframes glitch-anim-2 {
    0% { clip: rect(40px, 9999px, 42px, 0); }
    25% { clip: rect(10px, 9999px, 15px, 0); }
    50% { clip: rect(80px, 9999px, 82px, 0); }
    75% { clip: rect(30px, 9999px, 35px, 0); }
    100% { clip: rect(60px, 9999px, 65px, 0); }
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 2px dashed #00ff00;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}