/* ======================
   ENTRY FLOW
   ====================== */
.entry-flow {
    position: fixed;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: var(--space-xl);
    padding-top: var(--title-y);
    text-align: center;
    z-index: var(--z-entry);
    opacity: 1;
    transition: opacity 0.8s ease;
}

.entry-flow.hidden {
    opacity: 0;
    pointer-events: none;
}

.entry-container {
    max-width: var(--modal-width);
    margin-top: var(--space-3xl);
    opacity: 0;
    animation: fadeIn 1.5s ease-out forwards;
}

@keyframes fadeIn {
    to { opacity: 1; }
}

.title {
    font-size: var(--text-hero);
    font-weight: 300;
    letter-spacing: var(--ls-heading);
    text-transform: lowercase;
    margin-bottom: 0;
}

.system-status {
    position: fixed;
    top: 1.45rem;
    left: 1.25rem;
    width: 6px;
    height: 6px;
    border-radius: var(--radius-full);
    opacity: 0;
    transition: opacity var(--duration-slow) ease;
    z-index: var(--z-header);
}

.system-status.live {
    background: var(--info-attention);
    opacity: 0.5;
}

/* Steps */
.step {
    display: none;
    flex-direction: column;
    align-items: center;
    opacity: 0;
    transition: opacity var(--duration-slow) ease;
}

.step.active { display: flex; }
.step.visible { opacity: 1; }

.step-hint {
    font-size: var(--text-body);
    color: var(--text-primary);
    margin-bottom: var(--space-lg);
    line-height: 1.5;
    -webkit-user-select: text;
    user-select: text;
}

.step-status {
    margin-top: var(--space-lg);
    font-size: var(--text-caption);
    color: var(--text-muted);
    letter-spacing: var(--ls-caption);
    min-height: 1.5em;
}

.step-status.error { color: var(--error); }

/* Entry checkboxes (location + privacy) */
.entry-checkboxes {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.entry-checkbox {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
}

.entry-checkbox input {
    display: none;
}

.entry-checkbox-box {
    width: 20px;
    height: 20px;
    border: 1px solid var(--accent);
    border-radius: var(--radius-sm);
    transition: background var(--duration-normal) ease, border-color var(--duration-normal) ease;
    flex-shrink: 0;
    position: relative;
}

.entry-checkbox input:checked + .entry-checkbox-box {
    background: var(--accent);
    border-color: var(--accent-active);
}

.entry-checkbox input:checked + .entry-checkbox-box::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 6px;
    width: 5px;
    height: 9px;
    border: solid var(--warm-white);
    border-width: 0 1.5px 1.5px 0;
    transform: rotate(45deg);
}

.entry-checkbox input:disabled + .entry-checkbox-box {
    opacity: 0.4;
    cursor: not-allowed;
}

.entry-checkbox-label {
    font-family: 'Cormorant', Georgia, serif;
    font-size: var(--text-body);
    font-weight: 300;
    letter-spacing: var(--ls-button);
    color: var(--text-primary);
}

.entry-checkbox-label a {
    color: var(--text-primary);
    text-underline-offset: 2px;
}

/* Transition flash overlay */
.transition-flash {
    position: fixed;
    inset: 0;
    background: var(--warm-white);
    opacity: 0;
    pointer-events: none;
    z-index: var(--z-flash);
    transition: opacity 0.5s ease;
}

.transition-flash.active {
    opacity: 1;
}

/* Participant counter */
.participant-count {
    position: fixed;
    top: 1.25rem;
    left: 1.9rem;
    font-size: var(--text-small);
    letter-spacing: var(--ls-body);
    color: var(--text-muted);
    opacity: 0.6;
    z-index: var(--z-controls);
}

/* Full state */
.full-message {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: var(--space-lg);
}

.full-message p {
    font-size: var(--text-body);
    color: var(--text-primary);
    line-height: 1.6;
    -webkit-user-select: text;
    user-select: text;
}

.full-message a {
    color: var(--accent);
    text-decoration: none;
}

.full-message.visible { display: flex; }

.retry-btn {
    font-family: 'Cormorant', Georgia, serif;
    font-size: var(--text-button);
    letter-spacing: var(--ls-button);
    text-transform: lowercase;
    background: none;
    border: 1px solid var(--warm-grey);
    color: var(--text-muted);
    padding: var(--space-xs) var(--space-lg);
    cursor: pointer;
    transition: all var(--duration-normal) ease;
}

.retry-btn:hover {
    border-color: var(--accent);
    color: var(--text-primary);
}
