#guelOnboardingStopBtn.is-disabled,
#guelOnboardingNextBtn.is-disabled {
    opacity: .34;
    cursor: not-allowed;
    pointer-events: auto;
}

#guelOnboardingNextBtn:not(.is-disabled) {
    background: transparent;
    color: var(--ink, #0f0f0f);
    border-color: rgba(15, 15, 15, .14);
}

#guelOnboardingNextBtn.is-loading {
    opacity: .55;
    pointer-events: none;
}

#guelOnboardingNextBtn.is-nudge,
#guelOnboardingStopBtn.is-nudge {
    animation: guelNextBtnNudge 1.15s ease-in-out infinite;
}

@keyframes guelNextBtnNudge {
    0%, 100% { box-shadow: 0 0 0 0 rgba(124, 58, 237, .38); }
    50% { box-shadow: 0 0 0 8px rgba(124, 58, 237, 0); }
}

/* 정지 버튼이 눌릴 수 있게 되는 순간을 진한 보라색 채우기 대신
   넘어가기 버튼과 같은 은은한 펄스 애니메이션으로 알린다. */
#guelOnboardingStopBtn:not(.is-disabled) {
    background: transparent;
    color: var(--ink, #0f0f0f);
    border-color: rgba(15, 15, 15, .14);
}

/* 검증 대상 문장: 얇은 밑줄로만 구분한다 — 사용자가 직접 칠하는
   형광펜(배경색)과 안내 표식(밑줄)이 겹쳐도 서로 침범하지 않는다. */
.guel-validation-target-sentence {
    text-decoration-line: underline;
    text-decoration-color: rgba(15, 15, 15, .42);
    text-decoration-thickness: 1px;
    text-underline-offset: .22em;
    text-decoration-skip-ink: auto;
}

/* 검증 문단에는 대상 문장이 정확히 하나 들어온다. 그 문장이 존재하는
   본문에서만 나머지 문장의 포인터 입력을 차단해, 화면상 허용 동작과
   scoring_sentence_id 판정 규칙을 일치시킨다. 자연 읽기 본문은 영향 없음. */
#bo_v_con:has(.guel-validation-target-sentence)
.guel-sentence:not(.guel-validation-target-sentence) {
    cursor: text;
    pointer-events: none;
    -webkit-tap-highlight-color: transparent;
}

#bo_v_con:has(.guel-validation-target-sentence)
.guel-validation-target-sentence {
    cursor: pointer;
    pointer-events: auto;
}

/* 전환 잠금: 넘어가기 클릭부터 다음 단계 렌더까지 본문·하단 버튼·툴바를
   잠가 이전 상태가 순간 노출되는 깜빡임을 막는다(gomgom_adaptive_lect_flow.js). */
#bo_v_con,
.guel-reader-bottom-actions,
.guel-reader-toolbar-dock {
    transition: opacity .22s ease;
}

body.gomgom-adaptive-transition #bo_v_con {
    opacity: .45;
    pointer-events: none;
}

body.gomgom-adaptive-transition .guel-reader-bottom-actions,
body.gomgom-adaptive-transition .guel-reader-toolbar-dock {
    opacity: .34;
    pointer-events: none;
}

body.gomgom-adaptive-transition #guel-reader-toolbar {
    opacity: 0 !important;
    pointer-events: none !important;
}

@media (prefers-reduced-motion: reduce) {
    #bo_v_con,
    .guel-reader-bottom-actions,
    .guel-reader-toolbar-dock {
        transition: none;
    }
}