"use client";
import { useState } from "react";
const LEAVE_MS = 2300; // 연출 총 길이 (인트로 페이드 + 구름 걷힘)
// 구름 안쪽 가장자리의 뭉게 퍼프 (top%, size(vh), edgeOffset(%))
const PUFFS: Array<[number, number, number]> = [
[-4, 26, -8],
[12, 34, -3],
[30, 28, -10],
[46, 38, -2],
[63, 30, -9],
[78, 36, -4],
[92, 27, -8],
];
function CloudHalf({ side }: { side: "left" | "right" }) {
return (
{/* 구름 본체 */}
{/* 안쪽 가장자리 뭉게뭉게 */}
{PUFFS.map(([top, size, off], i) => (
))}
);
}
/** 시작 화면: 타이틀 일러스트 + 시작하기 → 구름이 걷히며 마을 진입 */
export default function IntroScreen({ onDone }: { onDone: () => void }) {
const [leaving, setLeaving] = useState(false);
const start = () => {
if (leaving) return;
setLeaving(true);
setTimeout(onDone, LEAVE_MS);
};
return (
{/* 구름 레이어 (인트로 아래) — 인트로가 투명해지면 드러나고, 양옆으로 걷힘 */}
{/* 타이틀 일러스트 */}
{/* eslint-disable-next-line @next/next/no-img-element */}

{/* 시작하기 버튼 */}
);
}