async function generateDarkTale() {
    const token = document.getElementById("apiToken").value.trim() || localStorage.getItem("hf_token");
    const storySelect = document.getElementById("storySelect").value;
    const storyName = storySelect === "custom" ? document.getElementById("customStoryInput").value : storySelect;
    const perspective = document.getElementById("perspectiveSelect").value;
    const extra = document.getElementById("extraPrompt").value;

    if (!storyName) {
        alert("바탕이 될 동화를 선택하거나 입력해주세요.");
        return;
    }

    const resultSection = document.getElementById("resultSection");
    const loadingSpinner = document.getElementById("loadingSpinner");
    const resultContent = document.getElementById("resultContent");
    const resultTitle = document.getElementById("resultTitle");

    resultSection.classList.remove("hidden");
    loadingSpinner.classList.remove("hidden");
    resultContent.classList.add("hidden");
    resultTitle.innerText = `[재해석] ${storyName} - ${perspective}`;

    const systemPrompt = `당신은 전래동화를 현대 사회적 이슈나 음울하고 잔혹한 시선으로 재해석하는 인문학적 문학 작가입니다. 
다음 요청에 따라 기존 동화를 단편 서사 형태로 다시 작성하세요.

[작성 지침]
1. 제목: 감각적이고 잔혹한 느낌의 새로운 제목을 붙이세요.
2. 관점: ${perspective}의 시각에서 사건을 조명하세요.
3. 구성: 
   - 1장: 통념 뒤에 숨겨진 진실 (기존 동화의 비틀기)
   - 2장: 사건의 전개 및 서늘한 마찰
   - 3장: 잔혹한 반전 결말 및 현대 사회에 던지는 시사점/메시지
4. 문체: 어둡고 서늘하지만 문학적이고 깊이 있는 어조로 한국어로 작성하세요.

바탕 동화: ${storyName}
추가 요구사항: ${extra}`;

    // Updated Hugging Face Inference Router Endpoint
    const API_URL = "https://router.huggingface.co/v1/chat/completions";

    const headers = {
        "Content-Type": "application/json"
    };

    if (token) {
        headers["Authorization"] = `Bearer ${token}`;
    }

    try {
        const response = await fetch(API_URL, {
            method: "POST",
            headers: headers,
            body: JSON.stringify({
                model: "Qwen/Qwen2.5-72B-Instruct",
                messages: [
                    { role: "user", content: systemPrompt }
                ],
                max_tokens: 1200,
                temperature: 0.8
            })
        });

        if (!response.ok) {
            const errData = await response.json().catch(() => ({}));
            throw new Error(errData.error?.message || errData.error || `HTTP ${response.status} 오류`);
        }

        const data = await response.json();
        const textResult = data.choices?.[0]?.message?.content || "생성된 결과가 없습니다.";

        resultContent.innerText = textResult;
        loadingSpinner.classList.add("hidden");
        resultContent.classList.remove("hidden");

    } catch (err) {
        loadingSpinner.classList.add("hidden");
        resultContent.classList.remove("hidden");
        resultContent.innerText = `❌ 오류 발생: ${err.message}\n\n💡 해결 방법:\n1. Hugging Face에서 무료 Access Token(Read 권한)을 발급받아 상단에 입력해 주세요.\n2. 토큰을 입력하지 않고 직접 API 요청 시 CORS 또는 Rate Limit 제한이 발생할 수 있습니다.`;
    }
}