{{-- --- Hero (Section 8.4) — Natia-style split hero with orbiting portrait --- --}} @if($sections['hero']?->is_enabled ?? true)
{{-- Diligent-style floating shape chips — crisp, icon-bearing, independent of the blurred background blobs above. --}}
Available for new projects Hi, welcome to my portfolio

Hi, I'm {{ $generalSettings['site_name'] ?? 'a developer' }} — {{ $generalSettings['tagline'] ?? 'Full-Stack Laravel Developer' }}

{{ $generalSettings['description'] ?? '' }}

@if($heroButtons->isNotEmpty()) @endif @if($heroStats->isNotEmpty())
@foreach($heroStats as $stat)
{{ $stat->number }}
{{ $stat->label }}
@endforeach
@endif
@if(!empty($generalSettings['hero_profile_image'])) {{ $generalSettings['site_name'] ?? config('app.name') }} @else {{-- No photo uploaded yet (General settings → Hero Profile Image) — show an initials placeholder instead of leaving this column visually empty next to the text side. --}} @endif
@if($heroStats->isNotEmpty())
{{ $heroStats->first()->number }} {{ $heroStats->first()->label }}
@endif @if($floatingTechnologies->isNotEmpty())
@foreach($floatingTechnologies->take(4) as $tech) @if($tech->icon_class) @endif @endforeach
Tech I use
@endif
@endif {{-- --- Client Logos (Section 8.5) ------------------------------------ --}} @if(($sections['client_logos']?->is_enabled ?? false) && $clientLogos->isNotEmpty())

{{ $sections['client_logos']->setting('heading', 'Trusted by teams and businesses') }}

{{-- Continuous auto-scrolling strip rather than a static row — the track is duplicated once so the loop point is seamless, and the whole list is aria-hidden on the second copy so screen readers only announce each logo once. --}}
@for($copy = 0; $copy < 2; $copy++) @foreach($clientLogos as $logo) @if($logo->website_url) @else @endif @endforeach @endfor
@endif {{-- --- About Preview (PRD 5.6) ---------------------------------------- --}} {{-- Content is static (config/about.php: 'homepage_preview' + 'profile_image_path' + 'resume') — no admin-editable copy or DB-backed highlights for this section anymore. Only the section's on/off toggle stays admin-managed. --}} @if($sections['about_preview']?->is_enabled ?? false)
@if($aboutPreview['profile_image_path']) {{ $aboutPreview['homepage_preview']['heading'] }} @endif
About

{{ $aboutPreview['homepage_preview']['heading'] }}

{{ $aboutPreview['homepage_preview']['subheading'] }}

@if(!empty($aboutPreview['homepage_preview']['highlights']))
    @foreach($aboutPreview['homepage_preview']['highlights'] as $highlight)
  • {{ $highlight['title'] }}
  • @endforeach
@endif
{{ $aboutPreview['homepage_preview']['button_text'] }} @if($aboutPreview['resume']['enabled']) Download CV @endif
@endif {{-- --- Why Choose Me (PRD 5.8) ---------------------------------------- --}} @if(($sections['why_choose_me']?->is_enabled ?? false) && $whyChooseMeFeatures->isNotEmpty())
Why me

{{ $sections['why_choose_me']->setting('heading', 'Why Work With Me') }}

@if($sections['why_choose_me']->setting('subheading'))

{{ $sections['why_choose_me']->setting('subheading') }}

@endif
@foreach($whyChooseMeFeatures as $feature)

{{ $feature['title'] }}

{{ $feature['description'] ?? '' }}

@endforeach
@endif {{-- --- Portfolio / Featured Work (Section 8.9) ------------------------ --}} @if(($sections['portfolio']?->is_enabled ?? false) && $featuredProjects->isNotEmpty())
Portfolio

{{ $sections['portfolio']->setting('heading', 'Featured Work') }}

View All Projects
{{-- Category filter (PRD 6.2). Filters the already-rendered cards client-side so there is no page reload, as the PRD requires. Only rendered when there is more than one category to choose between. --}} @if($portfolioCategories->count() > 1)
@foreach($portfolioCategories as $category) @endforeach
@endif
@foreach($featuredProjects as $project)
@endforeach
@endif {{-- --- Services (Section 11.4/11.15 — Homepage Integration) --------------- --}} @if(($sections['services']?->is_enabled ?? false) && $featuredServices->isNotEmpty())
Featured Services

{{ $sections['services']->setting('heading', 'What I Can Build For You') }}

@if($sections['services']->setting('subheading'))

{{ $sections['services']->setting('subheading') }}

@endif
@endif {{-- --- Development Process (PRD 6.3) ---------------------------------- --}} @if(($sections['development_process']?->is_enabled ?? false) && $processSteps->isNotEmpty())
Process

{{ $sections['development_process']->setting('heading', 'How I Work') }}

@if($sections['development_process']->setting('subheading'))

{{ $sections['development_process']->setting('subheading') }}

@endif
    @foreach($processSteps as $index => $step)
  1. {{ $step['title'] }}

    {{ $step['description'] }}

  2. @endforeach
@endif {{-- --- Skills (PRD 6.4) ------------------------------------------------ --}} @if(($sections['skills']?->is_enabled ?? false) && $skills->isNotEmpty())
Skills

{{ $sections['skills']->setting('heading', 'Technical Skills') }}

{{ $sections['skills']->setting('subheading') ?: 'The tools I reach for most, and how deep that experience goes.' }}

Full background
@foreach($skills as $skill)
{{ $skill['name'] }}
@if($skill['experience_level'] ?? null)
{{ $skill['experience_level'] }}
@endif
@endforeach
@endif {{-- --- Experience (PRD 6.5) -------------------------------------------- --}} @if(($sections['experience']?->is_enabled ?? false) && $experienceEntries->isNotEmpty())
Experience

{{ $sections['experience']->setting('heading', 'Where I have worked') }}

    @foreach($experienceEntries as $entry)
  1. {{ $entry['position'] }}

    @if($entry['is_current'] ?? false) Current @endif

    {{ collect([$entry['company'], $entry['location'] ?? null])->filter()->implode(' · ') }}

    @if($entry['description'] ?? null)

    {{ $entry['description'] }}

    @endif
  2. @endforeach
@endif {{-- --- Testimonials (Section 6.6) ------------------------------------------ --}} @if(($sections['testimonials']?->is_enabled ?? false) && $testimonials->isNotEmpty())

{{ $sections['testimonials']->setting('heading', 'Client Testimonials') }}

@foreach($testimonials as $testimonial)
@for($i = 1; $i <= 5; $i++) @endfor

“{{ $testimonial->review }}”

@if($testimonial->photoUrl()) {{ $testimonial->client_name }} @else {{ mb_substr($testimonial->client_name, 0, 1) }} @endif
{{ $testimonial->client_name }}
{{ collect([$testimonial->company, $testimonial->country])->filter()->implode(', ') }}
@endforeach
@if($testimonials->count() > 1) @endif
@endif {{-- --- Latest Blog (PRD 6.7) ------------------------------------------ --}} @if(($sections['blog']?->is_enabled ?? false) && $latestPosts->isNotEmpty())
Blog

{{ $sections['blog']->setting('heading', 'Latest From the Blog') }}

All articles
@foreach($latestPosts as $post)
@endforeach
@endif {{-- --- FAQ (PRD 6.8) --------------------------------------------------- --}} @if($sections['faq']?->is_enabled ?? false) @endif {{-- --- CTA (PRD 6.9) --------------------------------------------------- --}} @if($sections['cta']?->is_enabled ?? false) @endif {{-- --- Contact preview (PRD 6.10) -------------------------------------- --}} @if($sections['contact']?->is_enabled ?? false)

{{ $sections['contact']->setting('heading', 'Tell me about your project') }}

{{ $sections['contact']->setting('subheading') ?: ($contactSettings['intro'] ?? 'Send over what you are trying to build and I will come back with an honest view on scope, timeline and cost.') }}

Start a conversation @if(!empty($contactSettings['email']))

or email {{ $contactSettings['email'] }}

@endif
@endif @if(($sections['portfolio']?->is_enabled ?? false) && $featuredProjects->isNotEmpty() && $portfolioCategories->count() > 1) @push('scripts') @vite('resources/js/lib/portfolio-filter.js') @endpush @endif @if(($sections['testimonials']?->is_enabled ?? false) && $testimonials->isNotEmpty()) @push('scripts') @vite('resources/js/lib/testimonial-slider.js') @endpush @endif