body{
margin:0;
padding:0;
box-sizing:border-box;
}

body.printing-page{
margin:0;
font-family:Arial, sans-serif;
background:#1b4dd8;
display:flex;
align-items:center;
justify-content:center;
height:100vh;
}

.printing-message{
text-align:center;
background:white;
padding:50px;
border-radius:12px;
position:relative;
}

.printer-scene{
position:relative;
display:inline-block;
}

.printing-message h1{
color:#1b4dd8;
margin-top:30px;
}

.printing-message p{
margin-top:10px;
font-size:18px;
}

/* принтер */

.printing-page .printer{
width:240px;
}

/* блок печати */

.printing-page .print-animation{
position:absolute;
left:50%;
transform:translateX(-50%);
bottom:50px;

width:70px;
height:90px;

overflow:hidden;
}

/* HEADER */

header{
padding:6px 0;
height:70px;
background:rgba(255,255,255,0.9);
backdrop-filter:blur(10px);
box-shadow:0 2px 10px rgba(0,0,0,0.05);
position:sticky;
top:0;
z-index:100;
}

.header-container{
display:flex;
align-items:center;
justify-content:space-between;
}

.logo img{
height:90px;
}

nav{
display:flex;
gap:30px;
}

nav a{
text-decoration:none;
color:#333;
font-weight:500;
position:relative;
}

nav a:hover{
color:#2f6edb;
}

nav a::after{
content:"";
position:absolute;
left:0;
bottom:-4px;
width:0;
height:2px;
background:#1b4dd8;
transition:.3s;
}

nav a:hover::after{
width:100%;
}

/* HERO */

.hero{
background:
linear-gradient(135deg,#1b4dd8,#3aa2ff),
radial-gradient(circle at 1px 1px, rgba(255,255,255,0.2) 1px, transparent 1px);
background-size:100%,30px 30px;
color:white;
padding:80px 20px;
overflow:hidden;
}

.hero-container{
max-width:1200px;
margin:0 auto;
display:flex;
align-items:center;
justify-content:space-between;
gap:60px;
padding:0 20px;
}

.hero-text{
max-width:500px;
}

.hero-text p{
font-size:20px;
margin-bottom:30px;
}

/* BUTTON */

.order-btn{
display:inline-block;
padding:16px 32px;
background:#ff7a00;
color:white;
font-size:18px;
font-weight:600;
border-radius:8px;
text-decoration:none;
transition:.3s;
}

.order-btn:hover{
background:#ff932e;
transform:translateY(-2px);
}

/* PRINTER */

.hero-image{
position:relative;
display:flex;
justify-content:flex-end;
align-items:center;
pointer-events:none;
}

.printer{
width:360px;
max-width:100%;
filter:drop-shadow(0 30px 60px rgba(0,0,0,.35));
animation:float 6s ease-in-out infinite;
}

/* PRINT ANIMATION */

.print-animation{
position:absolute;
left:39%;
bottom:104px;
transform:translateX(-50%);
width:75px;
height:120px;
overflow:hidden;
z-index:3;
}

.print-model{
width:115%;
display:block;
animation:printModel 10s linear infinite;
filter:drop-shadow(0 8px 15px rgba(0,0,0,.4));
}

.print-line{
position:absolute;
left:0;
bottom:0;
width:100%;
height:2px;

background:linear-gradient(
90deg,
transparent,
#ff7a00,
#ffd199,
#ff7a00,
transparent
);

box-shadow:
0 0 6px #ff7a00,
0 0 12px rgba(255,122,0,0.6);

animation:printHead 10s linear infinite;
}

/* ANIMATIONS */

@keyframes printModel{

0%{clip-path: inset(100% 0 0 0);}
60%{clip-path: inset(0 0 0 0);}
100%{clip-path: inset(0 0 0 0);}

}

@keyframes printHead{

0%{bottom:0;}
60%{bottom:100%;}
100%{bottom:100%;}

}

@keyframes float{

0%{transform:translateY(0);}
50%{transform:translateY(-5px);}
100%{transform:translateY(0);}

}

/* SECTIONS */

.section{
padding:50px 20px;
text-align:center;
}

.cards{
display:flex;
justify-content:center;
gap:25px;
flex-wrap:wrap;
margin-top:40px;
}

.card{
background:white;
padding:30px;
width:220px;
border-radius:14px;
box-shadow:0 10px 30px rgba(0,0,0,.08);
transition:.4s;
}

.card:hover{
transform:translateY(-8px);
box-shadow:0 20px 40px rgba(0,0,0,.2);
}

/* SERVICES LINKS */

.services-links{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:15px;
max-width:900px;
margin:30px auto;
list-style:none;
padding:0;
}

.services-links li{
text-align:center;
}

.services-links a{
display:block;
padding:12px 18px;
background:#3d7df0;
color:white;
border-radius:8px;
box-shadow:0 4px 10px rgba(0,0,0,0.1);
text-decoration:none;
font-weight:500;
transition:0.2s;
}

.services-links a:hover{
background:#2f63c4;
transform:translateY(-2px);
}

/* GALLERY */

.gallery{
max-width:1200px;
margin:40px auto;
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:20px;
}

.gallery-item{
overflow:hidden;
border-radius:14px;
box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.gallery-item img{
width:100%;
height:200px;
object-fit:contain;
transition:.4s;
}

.gallery-item:hover img{
transform:scale(1.08);
}

/* FORM */

.upload-form{
max-width:500px;
margin:auto;
display:flex;
flex-direction:column;
gap:15px;
margin-top:30px;
}

.upload-form input,
.upload-form textarea{
padding:12px;
border-radius:6px;
border:1px solid #ddd;
font-size:16px;
}

.upload-form textarea{
min-height:120px;
resize:vertical;
}

.upload-form button{
padding:14px;
border:none;
background:#ff7a00;
color:white;
font-size:18px;
border-radius:6px;
cursor:pointer;
}

.upload-form button:hover{
background:#ff932e;
}

/* CONTACT */

.contact{
background:#1b4dd8;
color:white;
}

.contact p{
margin:10px 0;
}

/* FOOTER */

footer{
text-align:center;
padding:30px;
background:#111;
color:white;
font-size:14px;
}

/* LIGHTBOX */

.lightbox{
display:none;
position:fixed;
z-index:999;
left:0;
top:0;
width:100%;
height:100%;
background:rgba(0,0,0,0.9);
align-items:center;
justify-content:center;
}

.lightbox-content{
max-width:90%;
max-height:90%;
}

.close{
position:absolute;
top:20px;
right:35px;
color:white;
font-size:40px;
cursor:pointer;
}

.prev,
.next{
position:absolute;
top:50%;
font-size:50px;
color:white;
cursor:pointer;
padding:10px;
user-select:none;
}

.prev{left:30px;}
.next{right:30px;}

/* MOBILE */

@media (max-width:768px){

.hero-container{
flex-direction:column;
text-align:center;
}

.hero-text h1{
font-size:38px;
line-height:1.2;
}

.printer{
width:300px;
}

.print-animation{
left:39%;
bottom:80px;
width:60px;
height:100px;
}

nav{
gap:12px;
font-size:14px;
}

ul{
list-style:none;
padding:0;
margin:0;
}

}

/* THANKYOU PAGE FIX */

body.printing-page .printer{
width:260px;
}

body.printing-page .print-animation{
position:absolute;
left:40%;
transform:translateX(-50%);
bottom:72px;
width:65px;
height:95px;
overflow:hidden;
}

body.printing-page .print-model{
width:65px;
display:block;
}

body.printing-page .print-line{
height:3px;
}

.gallery img{
width:100%;
max-width:400px;
border-radius:10px;
}

.hero-figur .print-model{
transform: translateY(-10px);
}

@media (max-width:768px){

.services-links{
grid-template-columns:repeat(2,1fr);
}

}

/* EASTER EGG PRODUCT */

.egg-product{

text-align:center;

padding:80px 20px;

}

.egg-text{

max-width:600px;

margin:auto;

margin-bottom:40px;

font-size:18px;

}

.egg-container{

width:200px;
height:260px;

margin:auto;

position:relative;

cursor:pointer;

}

/* SHELL */

.egg-shell{

width:200px;
height:120px;

background:#ffd6d9;

border-radius:100px 100px 0 0;

position:absolute;

left:0;

transition:0.6s;

}

.egg-shell.bottom{

top:120px;

border-radius:0 0 100px 100px;

}

.egg-shell.top{

top:0;

}

/* INSIDE */

.egg-inside{

position:absolute;

top:90px;

left:0;

width:100%;

text-align:center;

font-size:60px;

opacity:0;

transition:0.6s;

}

/* HOVER EFFECT */

.egg-container:hover .top{

transform:translateY(-40px);

}

.egg-container:hover .bottom{

transform:translateY(40px);

}

.egg-container:hover .egg-inside{

opacity:1;

}

.product{

display:grid;

grid-template-columns:1fr 1fr;

gap:50px;

align-items:center;

margin-bottom:80px;

}

.product-image{

height:380px;

border-radius:20px;

background:linear-gradient(
135deg,
#ffe9e2,
#fff4ef
);

box-shadow:0 20px 40px rgba(0,0,0,0.08);

}

/* заглушка рисунка */

.placeholder::after{

content:"3D модель";

display:flex;

align-items:center;

justify-content:center;

height:100%;

font-size:22px;

color:#c9a7a1;

}

.product-text h2{

font-size:36px;

margin-bottom:15px;

}

.product-text p{

font-size:18px;

line-height:1.6;

}