#cookieinfo * {
    margin: 0px;
    padding: 0px;
}

#cookieinfo {
    position: fixed;
    font-size: 12px;
    font-family: Arial, Verdana, sans-serif;
    left: 10px;
    bottom: 15px;
    right: 10px;
    padding: 20px;
    z-index: 1000;
}

#cookieinfo h6 {
    font-size: 16px;
    font-weight: bold;
    color: var(--dark-grey);
    margin-bottom: 7px;
}

#cookieinfo p {
    font-size: 12px;
    color: var(--dark-grey);
    line-height: 1.5em;
}

#cookieinfo a {
    display: block;
    position: absolute;
    right: 10px;
    top: 10px;
    width: 22px;
    height: 22px;
    border-radius: 11px;
    line-height: 22px;
    font-size: 12px;
    color: #ffffff;
    text-align: center;
    text-decoration: none;
    background-color: #00aeef;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.75);
}

#cookieinfo a:hover {
    background-color: #0c6a8d; 
}
/* scrollbar */

/* width */
::-webkit-scrollbar {
  width: 8px;
}

/* Track */
::-webkit-scrollbar-track {
  background: #fdfdfd; 
}
 
/* Handle */
::-webkit-scrollbar-thumb {
  background: #00aeef; 
   -webkit-animation-name: example; /* Safari 4.0 - 8.0 */
  -webkit-animation-duration: 4s; /* Safari 4.0 - 8.0 */
  animation-name: example;
  animation-duration: 4s;
}

/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
  background: #1fc8db; 
}
/* scrollbar */

@font-face {
font-family: "Aleo-Regular";
src: url("../Aleo-Regular.ttf");
}

:root {
	--body-color: #010c23;
	--white: #fff;
	--white-glass: rgba(255, 255, 255, .8);
	--main-radius: 20px;
	--right-radius: 0px 20px 20px 0px;
	--main-shadow: 4px 4px 16px 0px rgba(216, 216, 216, .3);
	--right-shadow: 14px 4px 16px 0px rgba(216, 216, 216, .3);
	--h2-shadow: 4px 4px 6px rgba(240, 240, 240, .6);
	--font-max: clamp(1.3rem, 4vw + 1rem, 7.3rem);
	--light-blue: #00aeef;
	--dark-grey: #010c23;
	--white-box: #fff;
}

html { 
    font-size: 14px;
    font-family: lato, arial, sans-serif;
    color: #555;
    text-align: center;
    scroll-behavior: smooth;
}

body {
    font-size: 1.3rem;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    background-color: transparent; 
}
body::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh; 
    background-color: #ffffff;
    background-image: url("../img/top-left.png"), url("../img/top.jpg");
    background-position: left top, right top;
    background-repeat: no-repeat, no-repeat;
    background-size: auto 100vh, auto 100vh;
    
    z-index: -1; 
}

body.dark {
    --body-color: #555;
	--white: #555;
	--main-shadow: 4px 4px 16px 0px rgba(61, 61, 61, 1);
	--right-shadow: 14px 4px 16px 0px rgba(61, 61, 61, 1);
	--dark-grey: #fff;
	--white-box: #454545;
}
body.dark::before {
    background-color: #010c23;
    background-image: url("../img/top-dark.jpg"); 
	background-position: right top;
}
body.dark .photo-main {
    opacity: 0;
    pointer-events: none; /* Zapobiega interakcjom z niewidocznym elementem */
}
body.dark #portfolio::before {
    background-color: #010c23; 
    background-image: url("../img/tło-portfolio-dark.jpg"); 
}
body.dark .portfolio-back-title {mix-blend-mode: overlay; opacity: .25;}

body.dark .main-about {
	background-color: #010c23; 
	background-image: url(../img/tlo-dark.jpg);
}

body.dark .contact {
	background-color: #010c23;
	width: 100vw;
}

/* =========================================
   DARK MODE - DYMIONE SZKŁO + NOISE + HIGHLIGHT + ANIMACJA HOVER
========================================= */

body.dark .glass {
  /* 1. TŁO: Warstwa szumu SVG połączona z ciemnym gradientem */
  background-image: 
    /* Subtelny szum (opacity w SVG ustawione na 0.06 dla delikatności) */
    url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.06'/%3E%3C/svg%3E"),
    /* Dymione szkło */
    linear-gradient(135deg, rgba(40, 40, 40, 0.65) 0%, rgba(10, 10, 10, 0.85) 100%);
  
  /* Skalujemy szum, aby ziarno było drobne i estetyczne */
  background-size: 150px, auto;
  background-repeat: repeat, no-repeat;
  
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  
  border: none !important; 
  border-radius: var(--main-radius);
  
  /* 2. GŁĘBIA & HIGHLIGHT (Stan spoczynku) */
  box-shadow: 
    0 8px 32px 0 rgba(0, 0, 0, 0.7),                 /* Zewnętrzny, głęboki cień */
    inset 0 1px 1px rgba(255, 255, 255, 0.25),       /* Ostra, jasna linia na samej górze */
    inset 0 24px 32px -24px rgba(255, 255, 255, 0.15); /* Miękki Inner Highlight rozlewający się z góry */
    
  transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* Srebrny rant ze zwiększonym blaskiem (Rim Glow) pozostaje bez zmian */
body.dark .glass::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit; 
  pointer-events: none;
  padding: 2.2px; 
  background: linear-gradient(
    135deg, 
    rgba(255, 255, 255, 0.95) 0%,   
    rgba(192, 192, 192, 0.3) 30%,  
    rgba(100, 100, 100, 0.0) 60%,  
    rgba(230, 230, 230, 0.7) 100%  
  );
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  transition: opacity 0.4s ease;
  opacity: 0.9; 
}

/* --- EFEKT HOVER --- */
body.dark .glass:hover {
  background-image: 
    url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.06'/%3E%3C/svg%3E"),
    linear-gradient(135deg, rgba(60, 60, 60, 0.8) 0%, rgba(20, 20, 20, 0.85) 100%);
    
}

body.dark .glass:hover::before {
  opacity: 1; 
}

a {
	text-decoration: none;
	color: var(--dark-grey);
	top: 0;
	-webkit-transition: top .5s;
    -moz-transition: top .5s;
    -o-transition: top .5s;
	position: relative;
}

h2 {
    position: absolute;
    font-size: 15vw;
    top: 50%;
    transform: translateY(-50%);
    left: 8%;
	margin: 0;
	color: #ffffff;
	text-shadow: var(--h2-shadow);
	mix-blend-mode: multiply;
}

h3, h4 {margin: 0;}

.grid-container-top {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-template-rows: max-content;
	grid-template-areas:
    ". h h h h h h h h h h ."
    ". ha ha ha ha ha ha . p p p ."
	". ha ha ha ha ha ha . p p p ."
	". su su su su su su . p p p ."
	". bu bu bu bu bu . . p p p ."
	". bu bu bu bu bu . . p p p ."
	". bu bu bu bu bu . . p p p ."
	". bu bu bu bu bu . . p p p .";
	margin: auto;
	height: calc(100vh - 105px);
	width: 100%;
	max-width:1920px;
}

.grid-container {
	min-height: 100vh;
}

#h {grid-area: h;}
#ha {grid-area: ha; overflow: hidden;}

#bu {grid-area: bu;}
#p {grid-area: p;}

#su {
    grid-area: su;
    overflow: hidden;
    display: flex;
    align-items: center;
    color: var(--light-blue);
    font-family: "Aleo-Regular";
}

#su .subtitle {
    display: block;
    white-space: nowrap;
    width: max-content;
    font-size: 28px;
    font-weight: 500;
    rotate: -2deg; 
    opacity: 1 !important;
    margin: 0;
    
    /* Odzyskanie animacji */
    animation: marquee 10s linear infinite !important; 
}

/* Upewnij się, że masz też w kodzie te klatki kluczowe: */
@keyframes marquee {
    0%   { transform: translateX(100%); } 
    100% { transform: translateX(-100%); } 
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 40px, 0);
    }
    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fadeInUp {
    animation-name: fadeInUp;
    animation-duration: 0.8s;
    animation-fill-mode: forwards;
}

.box-appearance, .tabs nav {
	border-radius: var(--main-radius);
	box-shadow: var(--main-shadow);
	transition: .2s;
}

.tabs nav {color: var(--white);}

/* EFEKT glass */
/* --- KONTENER SZKŁA --- */
.glass {
  position: relative;
  background: linear-gradient(
    135deg, 
    rgba(255, 255, 255, 0.55) 0%, 
    rgba(255, 255, 255, 0.35) 100%
  );
  
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  
  border: none !important; 
  border-radius: var(--main-radius);
  
  /* 3. Głębia: Cień pod elementem + świetlny refleks wewnątrz */
  box-shadow: 
    0 8px 32px 0 rgba(0, 0, 0, 0.08), 
    inset 0 1px 2px rgba(255, 255, 255, 0.6);
    
  transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}

/* --- ULEPSZONY RIM LIGHT (Ostra krawędź) --- */
.glass::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit; 
  pointer-events: none;
  
  padding: 1.5px; 
  
  /* Gradient światła: Mocny błysk w lewym górnym rogu, wygasający w dół */
  background: linear-gradient(
    135deg, 
    rgba(255, 255, 255, 1) 0%,   
    rgba(255, 255, 255, 0.2) 30%,  
    rgba(255, 255, 255, 0.0) 60%,  
    rgba(255, 255, 255, 0.4) 100%  
  );
  
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  
  transition: opacity 0.4s ease;
  opacity: 0.8; /* Startowo wyraźniejszy obrys */
}

/* Usuwamy stare ::after, bo przenieśliśmy blask do inset box-shadow w głównej klasie */
.glass::after {
  display: none;
}

/* --- EFEKT HOVER --- */
.glass:hover {
  /* Szkło staje się nieco jaśniejsze przy najechaniu */
  background: linear-gradient(
    135deg, 
    rgba(255, 255, 255, 0.85) 0%, 
    rgba(255, 255, 255, 0.55) 100%
  );
}

.glass:hover::before {
  opacity: 1; /* Obrys świeci na 100% */
}

header {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	column-gap: 20px;
	align-items: stretch;
	margin: 20px 0;
	height: 65px;
	position: sticky;
	top: 20px;
	z-index: 666;
}

.logo-header {
	display: grid;
	align-items: center;
	grid-column: 2/5;
	padding-left: 20px;
	padding-right: 20px;
}

.logo {
	display: flex;
	justify-content: space-around;
	align-items: center;
	align-content: center;
}

.logo p {
	color: var(--dark-grey);
	font-size: 1.5rem; 
	letter-spacing: 1px;
}

.svg {
	display: flex;
	justify-content: center;
	align-items: center;
	align-content: center;
	position: relative;
	border-radius: var(--main-radius);
}

.svg-color {fill: var(--dark-grey);}

.svg p {margin-left: 24px;}

nav {
	display: grid;
	align-items: stretch;
	grid-column: 6/-3;
}

nav ul {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
    margin: 0;
	list-style: none;
	text-transform: uppercase;
    letter-spacing: 1px;
}

nav ul li {padding-left: 25px;}

nav ul li:first-child {padding-left: 0;}

nav ul li:hover a{
	color: var(--light-blue);
	top: -5px;
	transition: .5s;
}

nav ul li:hover g {
	fill: var(--light-blue);
}

.menu > li {
    overflow: visible;
}	
.dark-light {
	position: relative;
	display: grid;
	align-items: center;
	grid-column: -3/-2;
}

.haslo {
	display: grid;
    position: relative;
    font-size: var(--font-max);
    text-align: left;
    color: var(--light-blue);
    top: 15%;
    letter-spacing: 3px;
    z-index: 1;
    height: 100%;
	font-family: "Aleo-Regular";
}

.gradient {
  background: linear-gradient(5deg, #039cd5, #0053b9);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.exp {
  background: linear-gradient(90deg, #0053b9, #039cd5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.buttons {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	column-gap: 20px;
	align-items: center;
}

.btn-port {
	grid-column: 1/3;
	padding: 20px;
	border-radius: var(--main-radius);
	box-shadow: var(--main-shadow);
	background: linear-gradient(135deg, #00AEEF, #0053b9);
	box-shadow: 0 5px 10px rgba(0,174,239,0.3);
	text-decoration: none;
	color: #ffffff;
	letter-spacing: 1px;
	position:relative;
	top: 0;
	-webkit-transition: top .5s;
    -moz-transition: top .5s;
    -o-transition: top .5s;
	transition: .2s;
}

.btn-spec {
	grid-column: 3/-2;
	padding: 20px;
	border-radius: var(--main-radius);
	box-shadow: var(--main-shadow);
	text-decoration: none;
	letter-spacing: 1px;
	position:relative;
	top: 0;
	-webkit-transition: top .5s;
    -moz-transition: top .5s;
    -o-transition: top .5s;
	transition: .2s;

	position: relative;
	background: transparent;
	color: #00AEEF;
	z-index: 1;
	overflow: hidden;
}

.btn-spec::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 20px;
  padding: 2px; /* grubość bordera */

  background: linear-gradient(135deg, #6C5CE7, #00AEEF);

  -webkit-mask: 
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;

  z-index: -1;
}

.btn-port:hover, .btn-spec:hover {
	transition: .5s;
	top: -4px;
}

.btn-port:hover a {margin-bottom: 10px;}

.photo {
	display: flex;
    align-items: center;
	position: relative;
}

.photo-main {
	position: relative;
	height: 100%;
    width: 100%;
	margin: auto;
	background: url(../img/glowne.png);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	mix-blend-mode: multiply;
}

.reveal {
	overflow: hidden;
	--duration2: 1s;
	--delay2: .3s;
	--easing: cubic-bezier(0.65, 0.05, 0.36, 1);
}
.reveal-transform {
	transform: translateY(100vh);
	-webkit-animation: loadImg var(--duration2) var(--easing) var(--delay2) forwards;
    animation: loadImg var(--duration2) var(--easing) var(--delay2) forwards;
}
@-webkit-keyframes loadImg {
  0% {
    transform: translateY(100vh);
  }
  100% {
    transform: initial;
  }
}
@keyframes loadImg {
  0% {
    transform: translateY(100vh);
  }
  100% {
    transform: initial;
  }
}

.reveal-h3 {
	overflow: hidden;
	--duration2: 1s;
	--delay2: .3s;
	--easing: cubic-bezier(0.65, 0.05, 0.36, 1);
}

.reveal-transform-h3 {
	transform: translateY(-100vh);
	-webkit-animation: loadH3 var(--duration2) var(--easing) var(--delay2) forwards;
    animation: loadH3 var(--duration2) var(--easing) var(--delay2) forwards;
}

.reveal-name {
	overflow: hidden;
	--duration2: 1s;
	--delay2: .3s;
	--easing: cubic-bezier(0.65, 0.05, 0.36, 1);
}

@-webkit-keyframes loadH3 {
  0% {
    transform: translateY(-100vh);
  }
  100% {
    transform: none;
  }
}
@keyframes loadH3 {
  0% {
    transform: translateY(-100vh);
  }
  100% {
    transform: none;
  }
}

.portfolio {
	position: relative;
	background-color: var(--body-color);
}

.port-box-appearance {
	border-radius: 20px;
	box-shadow: var(--main-shadow);
	background-color: #fff;
	width: fit-content;
	margin: auto;
}

#about {
	position: relative;
	height: 300vh;
	margin-bottom: 70vh;
	background-color: var(--body-color);
}

.main-about {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap: 20px;
	align-items: end;
	position: sticky;
	margin: auto;
	height: 100vh;
	top: 0;
	padding: 0 8.4%;
	background-image: url(../img/tlo.jpg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.my-name, .kontakt-title, .port-title {
	position: relative;
	height: 80%;
	font-size: var(--font-max);
    text-align: left;
    color: var(--light-blue);
    letter-spacing: 1.75px;
	font-family: "Aleo-Regular";
	grid-column: 1;
}

.port-title {
	position: sticky;
	top: 25%;
	margin-bottom: 50%;
}

.my-photos {
	position: relative;
	height: 85%;
	width: 100%;
}

.boxes {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 20px;
	position: absolute;
	top: 60vh;
	width: 100%;
	font-weight: 300;
	font-size: 1.5rem;
}

.box-about {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: stretch;
	align-content: start;
	position: relative;
	grid-column: 2/7;
	color: var(--dark-grey);
	border: 1px solid transparent; 
    transition: background-color 0.3s, border-color 0.3s;
}

.spec {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: stretch;
	align-content: start;
	position: relative;
	grid-column: 7/-2;
	height: 60vh;
	margin-top: 135vh;
}

#portfolio {
    position: relative; /* KLUCZ: Zatrzymuje "przyklejone" tło w obrębie tej sekcji */
    background-color: #ffffff; /* Tylko biały kolor bazy */
    min-height: 100vh;
    
    /* USUŃ stąd background-image, background-position itd. */
}

/* 2. Nowa warstwa tła obrazkowego (To ona będzie się "przyklejać") */
#portfolio::before {
    content: "";
    position: sticky;
    top: 0; /* Mówi przeglądarce: "zatrzymaj się, gdy dotkniesz samej góry ekranu" */
    
    display: block;
    width: 100%;
    height: 100vh; /* Warstwa tła zajmuje 100% wysokości okna po przyklejeniu */
    
    /* Tutaj wrzucasz swoje ustawienia obrazka */
    background-image: url(../img/tło-portfolio.jpg);
    background-position: right top;
    background-repeat: no-repeat;
    
    /* Skalowanie: nie na całą stronę, tylko np. połowa ekranu lub stała wartość w px */
    background-size: contain; 
    
    /* Ustawiamy tło pod spodem, żeby nie blokowało klikania w projekty */
    z-index: 0; 
    pointer-events: none; 
}

#home, #specjalizacje {scroll-margin-top: 20vh;}

.boxes h4, .boxes h1 {
	flex: 1 1 100%;
	display: inline-block;
	font-size: 150%;
	text-align: center;
	color: var(--light-blue);
	letter-spacing: 0.5px;
	font-weight: 500;
	border-radius: var(--main-radius);
	padding: 22px 10px;
	margin-bottom: 40px;
	width: 100%;
}

.dark-shadow {box-shadow: 4px 4px 16px 0px rgba(61, 61, 61, 1);}

.level {
	width: 100%;
	padding: 0 5px;
}

.box50 {
	display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-content: baseline;
    align-items: flex-start;
    flex-wrap: wrap;
    width: 48%;
    color: var(--dark-grey);
    letter-spacing: 1px;
}

.programyBox {
	margin-top: 20px;
    text-align: center;
    padding: 20px 0;
	width: 48%;
}

.programyBox:last-child {margin-left: 10px;}

.programyBox p {margin-bottom: 0;}

.programyIco {	
	display: inline-block;
	font-size: 28px;
	font-weight: bold;
	height: 75px;
	width: 75px;
	text-align: center;
	background: #666;
    border: 1px solid #000;
	border-radius: var(--main-radius);
	box-shadow: var(--main-shadow);
	 filter: grayscale(82%);
    -webkit-filter: grayscale(82%);
}

.programyIco:hover {
	filter: none;
	-webkit-filter: grayscale(0);
	font-size: 32px;
} 

.programyIco:hover svg {
	height: 42px;
	width: 42px;
	
} 

.programyIco p, .programyIco svg {
	position: relative;
	top: 50%;
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
	transition: .7s;
}

.ai {
	background: linear-gradient(55deg, #4e4133 0%, #3a3026 40%);
	background-color: #3a3026;
	box-shadow: 0px 0px 0px 4px #ffaa2a;
}

.ai p {color: #ffaa2a;}

.ps {
	background: linear-gradient(55deg, #3d3297 0%, #2f2674 40%);
	background-color: #2f2674;
	box-shadow: 0px 0px 0px 4px #82befa;
}

.ps p {color: #82befa;}

.id {
	background:  linear-gradient(55deg, #693e55 0%, #402634 40%);
	background-color: #402634;
	box-shadow: 0px 0px 0px 4px #dd3a97;
}

.id p {color: #dd3a97;}

.ar {
	background: linear-gradient(55deg, #cbcbcb 0%, #ffffff 40%);
	background-color: #ffffff;
	box-shadow: 0px 0px 0px 4px #ff0000;
}

.ae {
	background: linear-gradient(55deg, #44398c 0%, #312964 40%);
	background-color: #312964;
	box-shadow: 0px 0px 0px 4px #b882f0;
}

.ae p {color: #b882f0;}

.fl {
	background: linear-gradient(55deg, #682627 0%, #592625 40%);
	background-color: #592625;
	box-shadow: 0px 0px 0px 4px #fe0000;
}

.fl p {color: #fe0000;}

.dw {
	background: linear-gradient(55deg, #4e2761 0%, #290032 40%);
	background-color: #290032;
	box-shadow: 0px 0px 0px 4px #e273f7;
}

.dw p {color: #e273f7;}

.html {
	background: linear-gradient(155deg, #01C3CC 0%, #7428ef 40%);
	background-color: #3c388e;
	box-shadow: 0px 0px 0px 4px #3c388e;
}

.html i {color: #fff;}

.css {
	background: linear-gradient(55deg, #242424 0%, #0b0b0b 40%);
	background-color: #000000;
	box-shadow: 0px 0px 0px 4px #000000;
}

.css i {color: #fff;}

.wp {
	background-color: #28769b;
	box-shadow: 0px 0px 0px 4px #28769b;
}

.programyIco p {
	margin: 0;
}

.box-about p {
	font-size: 1.5rem;
	text-align: center;
}

.about-spec {
	flex: 0 0 5%;
    align-self: stretch;
    align-items: center;
    display: grid;
	padding: 0 20px;
}

.box-appearance strong {
	color: var(--light-blue);
	font-size: 3.7rem;
    font-weight: 900;
    letter-spacing: 2px;;
}

.story-about-me {
	position: relative;
	margin-top: 40px;
	padding: 40px;
}

.story-about-me article {
	text-align: left;
	line-height: 27px;
	letter-spacing: .7px;
}

.contact {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-auto-rows: 80px;
    gap: 20px;
    align-items: stretch;
    align-content: center;
	position: fixed;
	bottom: 0;
	width: 100vw;
	padding-top: 80px;
	height: 65vh;
	color: var(--dark-grey);
	z-index: -666;
}

.kontakt-title {grid-column: 2/4;}

.my-ico, .phone-ico, .mail-ico, .be-ico {
	grid-column: 7/8;
	padding: 20px 0;
}

.my-name-contact, .phone, .mail, .behance {
	grid-column: 8/11;
	font-size: 1.5rem;
    display: grid;
    align-content: center;
    letter-spacing: 1px;
	font-weight: 300;
	padding: 20px;
}

.phone {animation: pulse 3.3s infinite;}


/* dark mode */
.dark-light i {
    position: absolute;
    left: 0;
	right: 0;
	margin: auto;
	color: var(--dark-grey);
    font-size: 22px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.dark-light i.sun{
    opacity: 0;
    pointer-events: none;
}

.dark-light.active i.sun{
    opacity: 1;
    pointer-events: auto;
}

.dark-light.active i.moon{
    opacity: 0;
    pointer-events: none;
}

.dark-light i:hover {
	color: var(--light-blue);
	transition: .5s;
}
/* dark mode end */

/* MENU */
/* MENU */
.menu {
  display: flex;
  flex-direction: row;
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.menu-button-container {
  display: none;
  height: 100%;
  width: 30px;
  margin: auto;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

#menu-toggle {display: none;}

.menu-button,
.menu-button::before,
.menu-button::after {
  display: block;
  background-color: var(--dark-grey);
  position: absolute;
  height: 4px;
  width: 30px;
  transition: transform 400ms cubic-bezier(0.23, 1, 0.32, 1);
  border-radius: 2px;
}

.menu-button::before {
  content: '';
  margin-top: -8px;
}

.menu-button::after {
  content: '';
  margin-top: 8px;
}

.menu-button-container:hover .menu-button {background-color: var(--light-blue);}
.menu-button-container:hover .menu-button::before {background-color: var(--light-blue);}
.menu-button-container:hover .menu-button::after {background-color: var(--light-blue);}

#menu-toggle:checked + .menu-button-container .menu-button::before {
  margin-top: 0px;
  transform: rotate(405deg);
}

#menu-toggle:checked + .menu-button-container .menu-button {background: rgba(255, 255, 255, 0);}

#menu-toggle:checked + .menu-button-container .menu-button::after {
  margin-top: 0px;
  transform: rotate(-405deg);
}
/* MENU */

/* svg */
.svg-button-container {
  margin: auto;
  cursor: pointer;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

#svg-toggle {
  display: none;
}


/* svg */




/* MEDIA */

@media only screen and (max-width: 1020px) {

h2 {
    position: absolute;
    font-size: 19vw;
    top: 25%;
}
	
body::before {
    background-image: url("../img/top.jpg");
    background-size: cover;
    background-position: right;
}

#portfolio::before {
    background-image: url(../img/tło-portfolio.jpg);
    background-size: cover;
    background-position: right;
}

.grid-container-top {
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: max-content;
	grid-template-areas:
    "h h"
    "ha ha"
    "su su"
	"bu bu"
	"p p";
	row-gap: 20px;
	width: 90%;
	height: auto;
	margin-bottom: -120px;
}

header {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	column-gap: 20px;
	margin: 20px;
	z-index: 9999 !important;
}
.logo-header {
	grid-column: 1/ 2;
	padding-left: 0;
	padding-right: 0;
	z-index: 99;
}

.svg p {margin-left: 10px;}

.logo p {font-size: 1.2rem; display:none;}

.reveal-p {display: none;}

nav {grid-column: 2/3;}

.menu > li {
  overflow: hidden;
}

.dark-light {grid-column: 3/-1;}

.buttons {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        column-gap: 10px;
        font-size: 1rem;
        padding: 20px 0;
        margin-top: 10px;
        align-items: stretch; 
    }

.btn-port, .btn-spec {
        display: flex;
        flex-direction: column;
        justify-content: center; 
        align-items: center;
        text-align: center;
        height: 100%;
        box-sizing: border-box;
        padding: 15px; 
    }

.btn-port {grid-column: 1/2;}
.btn-spec {grid-column: 2/3;}

.photo {height: 50vh; z-index: 9;}

/*MENU */
.menu-button-container {display: flex;}

.menu {
    position: absolute;
    top: 0;
    margin-top: 90px;
    left: 0;
    flex-direction: column;
    width: 100%;
    justify-content: center;
    align-items: center;
	z-index: 2;
}

#menu-toggle ~ .menu {
    opacity: 0;
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
}

#menu-toggle:checked ~ .menu {
    opacity: 1;
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
}

#menu-toggle ~ .menu li {
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
}
  
#menu-toggle:checked ~ .menu li {
	display: grid;
    align-items: center;
    height: 3em;
    padding: 0.5em;
    transition: height 400ms cubic-bezier(0.23, 1, 0.32, 1);
}

.menu > li {
    display: flex;
    justify-content: center;
    margin: 0;
    padding: 0.5em 0;
    width: 100%;
}

.menu > li:not(:last-child) {border-bottom: 1px solid #444;}

    
    /* MENU END */
    
   
/* =========================================
   DARK GLASS METAL - ciemniejszy gradient + srebrna ramka
========================================= */

body.dark #h nav.reveal.box-appearance {
    border: 2px solid transparent;
    background:  linear-gradient(
        135deg, 
        rgba(60, 60, 70, 1) 0%,   
        rgba(40, 40, 50, 1) 30%,  
        rgba(25, 25, 35, 1) 60%,  
        rgba(50, 50, 65, 1) 100%
    )  padding-box,
                linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%,   
    rgba(110, 110, 110, 1) 30%,  
    rgba(50, 50, 50, 0.5) 60%,  
    rgba(230, 230, 230, 0.7) 100%  ) border-box;
    background-clip: padding-box, border-box;
    
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-radius: var(--main-radius);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
}

body.dark .logo-header {
    border: 2px solid transparent;
    background:  linear-gradient(
        135deg, 
        rgba(60, 60, 70, 1) 0%,   
        rgba(40, 40, 50, 1) 30%,  
        rgba(25, 25, 35, 1) 60%,  
        rgba(50, 50, 65, 1) 100%
    )  padding-box,
                linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%,   
    rgba(110, 110, 110, 1) 30%,  
    rgba(50, 50, 50, 0.5) 60%,  
    rgba(230, 230, 230, 0.7) 100%  ) border-box;
    background-clip: padding-box, border-box;
    
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-radius: var(--main-radius);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
}

#h nav.reveal.box-appearance {background:  linear-gradient(
        135deg, 
        rgba(255, 255, 255, .98) 0%,   
        rgba(245, 245, 245, .98) 30%,  
        rgba(245, 245, 245, .98) 60%,  
        rgba(250, 250, 250, .98) 100%);
}
 
 
/* wysuwane imie i nazwisko */
/* 1. Zabezpieczenie siatki przed "zgniataniem" */
header {
    display: grid;
    /* Zmieniamy 1fr na minmax(0, 1fr) - to zablokuje zmianę rozmiaru kolumn! */
    grid-template-columns: repeat(3, minmax(0, 1fr)); 
    column-gap: 20px;
    margin: 20px;
}

/* 2. Ustawienia kontenera z logo (domyślnie zwinięty) */
.logo-header {
    grid-column: 1 / 2;
    position: relative;
    z-index: 1000 !important;
    width: 100%; /* Wypełnia swoją kolumnę idealnie tak, jak hamburger i dark mode! */
    height: 65px; /* Równa wysokość */
    overflow: hidden;
    padding: 0;
    transition: width 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}

/* 3. Magia wysuwania (szerokość rośnie, ale nie psuje zablokowanego grida) */
.logo-header:has(#svg-toggle:checked) {
    width: 260px; /* Docelowa szerokość po rozwinięciu - przykryje sąsiadów */
}

/* 4. Środek kontenera z logo */
.logo {
    display: flex;
    justify-content: center; /* Idealne wyśrodkowanie ikony w zwiniętym stanie */
    align-items: center;
    width: 100%; 
    height: 100%;
}

#svg-toggle {
    display: none;
}

/* 5. Kontener na tekst */
.name {
    position: relative;
    display: flex;
    align-items: center;
}

/* 6. Ustawienia dla tekstu (Zwróć uwagę: usuwamy stąd tło i cienie!) */
.name p {
    display: block; 
    margin: 0;
    padding: 0; 
    width: 0; /* Startowo 0, by nie psuć wyśrodkowania samej ikony logo */
    overflow: hidden;
    white-space: nowrap; 
    opacity: 0; 
    transform: translateX(-10px); 
    transition: all 0.3s ease;
    
    /* Nadpisujemy stare style z Twojego kodu, żeby usunąć "podwójny box" */
    background-color: transparent !important;
    box-shadow: none !important;
}

/* 7. Animacja pojawiania się tekstu po rozwinięciu */
.logo-header:has(#svg-toggle:checked) .name p {
    width: 160px; /* Odsłaniamy miejsce na imię i nazwisko */
    padding-left: 15px; /* Odstęp między ikoną a tekstem */
    opacity: 1;
    transform: translateX(0);
    transition-delay: 0.15s; 
}
/* wysuwane imie i nazwisko */

.main-about {grid-template-columns: 1fr; background-position: right;}

.absolute-tg {right: -14%;}

#su .subtitle {margin-top: 20px; font-size: 18px; rotate: none; }

#about {
	position: relative;
	height: 430vh;
	margin-bottom: 100vh;
	
}

#specjalizacje {
	scroll-margin-top: 20vh;
	padding-bottom: 25px;}

.boxes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	row-gap: 20px;
	top: 40vh;
	margin: 20px;
	width: auto;
}

.boxes h4, .boxes h1 {
	font-size: 100%;
    letter-spacing: .5px;
    padding: 20px 10px;
}

.box-about {grid-column: 1/-1;}

.spec {
	grid-column: 1/-1;
	margin-top: 40px;
}

.box50 {
	width: 100%;
	margin-bottom: 20px;
	letter-spacing: 0;
}

.my-name {top: 0%;}

.programyIco {	
	height: 65px;
	width: 65px;
	 filter: none;
    -webkit-filter: grayscale(0);
}

.years {
	width: 100%;
	padding: 0 10px;
	margin-bottom: 20px;
}

.about-spec {
	flex: 1 0 52%;
	margin: 5px 0;
}

.box-about p {
	font-size: 1.3rem;
    letter-spacing: 0;
}
.box-appearance span {
	color: var(--light-blue);
	font-size: 2.7rem;
    font-weight: 900;
    letter-spacing: 2px;;
}

.story-about-me {
	margin-top: 20px;
	padding: 20px;
}

.story-about-me article {
	text-align: left;
	line-height: normal;
	letter-spacing: normal;
	font-size: 18px;
}

body.dark .contact {
	background-color: #010c23;
	width: calc(100vw - 40px);
	margin: 0 auto;
}

.contact {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	height: 100vh;
	padding: 0 20px 20px 20px;
	width: calc(100vw - 40px);
}

.kontakt-title {grid-column: 1/3;}

.my-ico, .phone-ico, .mail-ico, .be-ico {
	grid-column: 1/2;
	padding: 20px 0;
}

.my-name-contact, .phone, .mail, .behance {
	grid-column: 2/-1;
	font-size: 1.5rem;
    display: grid;
    align-content: center;
    letter-spacing: 1px;
}

.phone {color: var(--light-blue);}

.hide {
	opacity:1; 
	display: block;}

.show {
	opacity:0; 
	display: none;}

.hidecontact {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--body-color);
	z-index: 14;
}
}