@php $gridVersion = request()->query('grid') === 'v2' ? 'v2' : 'v1'; @endphp {{ $page_title ?? 'Skinbase' }} @isset($page_robots) @endisset @isset($page_canonical) @endisset @isset($page_rel_prev) @endisset @isset($page_rel_next) @endisset {{-- Global RSS feed discovery --}} @vite(['resources/css/app.css','resources/css/nova-grid.css','resources/scss/nova.scss','resources/js/nova.js','resources/js/entry-search.jsx']) @stack('head') @if(config('services.google_adsense.publisher_id')) {{-- Google AdSense — consent-gated loader --}} {{-- Script is only injected after the user accepts all cookies. --}} {{-- If consent was given on a previous visit it fires on page load. --}} @endif @php $authBgRoutes = [ 'login', 'register', 'register.notice', 'password.request', 'password.reset', 'verification.notice', 'registration.verify', 'setup.password.create', 'setup.username.create', 'password.confirm' ]; $useAuthBackground = request()->route() && in_array(request()->route()->getName(), $authBgRoutes); $authBackgrounds = [ '/gfx/skinbase_back_001.webp', '/gfx/skinbase_back_002.webp', '/gfx/skinbase_back_003.webp', '/gfx/skinbase_back_004.webp', ]; $selectedAuthBg = $useAuthBackground ? $authBackgrounds[array_rand($authBackgrounds)] : null; @endphp
@include('layouts.nova.toolbar')
@yield('content')
@include('layouts.nova.footer') {{-- Toast notifications (Alpine) --}} @php $toastMessage = session('status') ?? session('error') ?? null; $toastType = session('error') ? 'error' : 'success'; $toastBorder = session('error') ? 'border-red-500' : 'border-green-500'; @endphp @if($toastMessage)
@if(session('error')) @else @endif
{!! nl2br(e($toastMessage)) !!}
@endif {{-- Cookie Consent Banner --}} @stack('scripts')