*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:'Inter',sans-serif;
}

body{
background:#fff;
color:#000;
overflow-x:hidden;
position:relative;
}

.halftone{
position:fixed;
inset:0;
background-image:radial-gradient(#000 1px, transparent 1px);
background-size:18px 18px;
opacity:.05;
z-index:-1;
}

nav{
display:flex;
justify-content:space-between;
align-items:center;
padding:28px 8%;
border-bottom:5px solid #000;
background:#fff;
}

.logo{
display:flex;
align-items:center;
gap:12px;
font-weight:900;
letter-spacing:1px;
}

.logo img{
width:42px;
transition:.3s;
}

.logo img:hover{
transform:rotate(-12deg) scale(1.15);
}

nav ul{
list-style:none;
display:flex;
gap:35px;
}

nav a{
text-decoration:none;
color:#000;
font-weight:800;
padding:6px 16px;
border:4px solid #000;
box-shadow:8px 8px 0 #000;
transition:.15s;
position:relative;
}

nav a:hover{
transform:translate(-6px,-6px) rotate(-2deg);
box-shadow:14px 14px 0 #000;
}

.hero{
min-height:90vh;
display:flex;
align-items:center;
justify-content:space-between;
padding:0 8%;
gap:60px;
}

.hero-text{
max-width:540px;
}

.hero h1{
font-size:4.5rem;
font-weight:900;
margin-bottom:15px;
-webkit-text-stroke:2px #000;
color:#fff;
text-shadow:8px 8px 0 #000;
}

.pop-in{
animation:pop .8s cubic-bezier(.2,1.5,.5,1) forwards;
}

@keyframes pop{
0%{transform:scale(.6) rotate(-6deg);opacity:0;}
100%{transform:scale(1) rotate(0);opacity:1;}
}

.typewriter{
font-weight:900;
font-size:1.8rem;
height:48px;
display:flex;
align-items:center;
margin-bottom:20px;
}

.cursor{
display:inline-block;
width:3px;
height:1.2em;
background:#000;
animation:blink .8s infinite;
margin-left:6px;
}

@keyframes blink{
0%,50%,100%{opacity:1;}
25%,75%{opacity:0;}
}

.speech{
font-weight:800;
border:4px solid #000;
padding:20px;
box-shadow:8px 8px 0 #000;
position:relative;
margin-bottom:25px;
background:#fff;
animation:wiggle 3s infinite;
}

@keyframes wiggle{
0%,100%{transform:rotate(0);}
50%{transform:rotate(-1deg);}
}

.speech::after{
content:"";
position:absolute;
bottom:-20px;
left:40px;
border-left:15px solid transparent;
border-right:15px solid transparent;
border-top:20px solid #000;
}

.hero-buttons{
display:flex;
gap:20px;
flex-wrap:wrap;
}

.hero-buttons a{
text-decoration:none;
color:#000;
font-weight:900;
border:4px solid #000;
padding:10px 24px;
box-shadow:8px 8px 0 #000;
transition:.15s;
}

.hero-buttons a:hover{
transform:translate(-8px,-8px) rotate(2deg);
box-shadow:16px 16px 0 #000;
}

.hero-img{
width:340px;
animation:bounce 3s infinite;
}

@keyframes bounce{
0%,100%{transform:translateY(0);}
50%{transform:translateY(-25px);}
}

section{
padding:120px 8%;
border-top:5px solid #000;
opacity:0;
transform:translateY(60px) rotate(-1deg);
transition:1s ease;
background:#fff;
}

section:nth-child(even){
transform:translateY(60px) rotate(1deg);
}

section.show{
opacity:1;
transform:translateY(0) rotate(0);
}

h2{
font-size:2.6rem;
font-weight:900;
margin-bottom:25px;
-webkit-text-stroke:2px #000;
color:#fff;
text-shadow:6px 6px 0 #000;
}

section p{
font-weight:700;
margin-bottom:15px;
}

.links{
display:flex;
gap:25px;
flex-wrap:wrap;
}

.links a{
text-decoration:none;
color:#000;
font-weight:900;
border:4px solid #000;
padding:8px 20px;
box-shadow:8px 8px 0 #000;
transition:.15s;
}

.links a:hover{
transform:translate(-6px,-6px) rotate(-2deg);
box-shadow:14px 14px 0 #000;
}

.mail{
display:inline-block;
margin-top:10px;
text-decoration:none;
color:#000;
font-weight:900;
border-bottom:4px solid #000;
}

footer{
padding:50px 8%;
border-top:5px solid #000;
text-align:center;
font-weight:800;
background:#fff;
}

@media(max-width:900px){
.hero{
flex-direction:column;
text-align:center;
}
.hero-img{
width:220px;
}
}