{{-- Public Event attendance — phone + OTP gate. MIRROR OF: web.demo-attendance.start. Same layout, same `.cmt-att-*` CSS surface and the same Alpine flow, so investors meet one consistent identity gate across every public portal. Differences are only: - routes are event-scoped (the event id is in every endpoint) - copy comes from `web.event_attendance.*` - closed states (expired / schedule incomplete / unavailable) are rendered instead of the form, because an Event can be closed in ways a demo cannot. NOTHING protected is shown here — only the title and a closed-state message. Description, schedule, location and join details appear solely on the post-OTP page. --}} @extends('web.signup.layout') @section('title', __('web.event_attendance.title')) @section('page_title', __('web.event_attendance.page_title')) @section('page_subtitle', '') @section('body_class', 'has-sticky-logo') @push('styles') @endpush @section('content')
{{-- The title is the ONLY event detail shown before verification. --}}

{{ $event->title }}

{{ __('web.event_attendance.subtitle') }}

@if ($closedReason) {{-- Closed: expired, schedule not finalised, or withdrawn. Each says which, because "we never set an end" and "it is over" are different facts to the investor. --}}

{{ __('web.event_attendance.closed.' . $closedReason . '.title') }}

{{ __('web.event_attendance.closed.' . $closedReason . '.body') }}

@elseif ($verified) {{-- Already through the gate in this session — go straight in. --}}

{{ __('web.event_attendance.already_verified') }}

{{ __('web.event_attendance.continue') }}

@else
{{-- STEP 1 — phone --}}

{{ __('web.event_attendance.phone_hint') }}

{{-- STEP 2 — OTP --}}

{{-- Each box renders from `digits[]` in component state and never gets read back out of the DOM — see onDigit(). --}}

@endif
@endsection {{-- Emitted ONLY when the gate is actually on screen. A closed or already-verified page has no form to drive, and shipping the error dictionary regardless put copy like "This event has ended" into the source of a page that is deliberately saying something else. --}} @if (! $closedReason && ! $verified) @push('scripts') @endpush @endif