/*
 * トップLP専用の演出レイヤー。
 * コンポーネント本体の色・書体・情報設計は変えず、写真とQRコードを連想する
 * 幾何学模様、カードの奥行き、スクロール表示を追加する。
 */

.home-landing {
    --font-sans: "LINE Seed JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-serif: "LINE Seed JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --home-paper: #faf7f2;
    --home-paper-deep: #f5f0e8;
    --home-coral-soft: rgba(255, 61, 92, .1);
    --home-yellow-soft: rgba(255, 201, 61, .2);
    --home-mint: #70bfae;
    background: var(--home-paper);
    font-family: var(--font-sans);
}

.home-landing .section,
.home-landing .audience-switcher-section,
.home-landing .final-cta-section {
    isolation: isolate;
}

.home-landing .section > .container,
.home-landing .audience-switcher-section > .container,
.home-landing .final-cta-section > .container {
    position: relative;
    z-index: 2;
}

/* セクション見出しを、撮影フレームの下辺を思わせる短いラインでつなぐ。 */
.home-landing .section-header h2,
.home-landing .audience-switcher-heading h2 {
    position: relative;
    display: inline-block;
    padding-bottom: .85rem;
}

.home-landing .section-header h2::after,
.home-landing .audience-switcher-heading h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 4.6rem;
    height: .35rem;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--primary) 0 66%, var(--secondary) 66% 100%);
    transform: translateX(-50%);
}

/* Hero: 写真、ファインダー、QRのピクセルを一つの背景にまとめる。 */
.home-landing .hero-section {
    min-height: min(820px, calc(100vh - 74px));
    display: flex;
    align-items: center;
    background:
        radial-gradient(circle at 3% 10%, var(--home-yellow-soft) 0 15rem, transparent 15.1rem),
        radial-gradient(circle at 96% 84%, var(--home-coral-soft) 0 22rem, transparent 22.1rem),
        var(--home-paper);
}

.home-landing .hero-section::before {
    background-image:
        linear-gradient(90deg, rgba(112, 191, 174, .18) 1px, transparent 1px),
        linear-gradient(rgba(112, 191, 174, .18) 1px, transparent 1px);
    background-position: calc(100% - 4rem) 4rem;
    background-size: 88px 88px;
    -webkit-mask-image: linear-gradient(135deg, transparent 50%, #000 84%);
    mask-image: linear-gradient(135deg, transparent 50%, #000 84%);
    opacity: .65;
}

.home-landing .hero-section::after {
    content: '';
    position: absolute;
    top: 8%;
    left: -2rem;
    width: clamp(170px, 18vw, 280px);
    height: 52px;
    border-radius: 12px;
    background: linear-gradient(90deg, var(--home-mint), #9bd3c7);
    opacity: .18;
    pointer-events: none;
    transform: rotate(-10deg);
    animation: homeTapeDrift 6s ease-in-out infinite;
}

.home-landing .hero-visual {
    position: relative;
    animation: homePhotoFloat 7s ease-in-out infinite;
}

.home-landing .hero-visual::after {
    content: '';
    position: absolute;
    z-index: -1;
    pointer-events: none;
}

.home-landing .hero-visual::after {
    right: -6rem;
    bottom: 4%;
    width: clamp(8rem, 12vw, 12rem);
    aspect-ratio: 1;
    border: 22px solid var(--secondary);
    border-radius: 50%;
    opacity: .38;
}

.home-landing .hero-image-wrapper {
    position: relative;
    box-shadow:
        0 5px 16px rgba(76, 62, 51, .12),
        0 28px 60px rgba(76, 62, 51, .16);
}

.home-landing .hero-image-wrapper::before {
    content: '';
    position: absolute;
    z-index: 3;
    top: -10px;
    left: 50%;
    width: 92px;
    height: 25px;
    border-radius: 2px;
    background: rgba(255, 218, 113, .82);
    box-shadow: 0 2px 5px rgba(96, 69, 28, .08);
    transform: translateX(-50%) rotate(-2deg);
    pointer-events: none;
}

.home-landing .hero-badges .badge {
    background: #fffdf8;
    box-shadow: 0 5px 16px rgba(84, 72, 61, .08);
}

/* クリエイターLPと同じ、導入行＋アクセント行のヒーロータイポグラフィ。 */
.home-landing .hero-title {
    max-width: 720px;
    margin-bottom: 1.5rem;
    font-size: clamp(3rem, 4.6vw, 3.85rem);
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -.025em;
}

.home-landing .hero-title-accent {
    color: var(--primary);
    background: linear-gradient(105deg, var(--primary) 5%, #ff7b50 55%, #e9ad00 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.home-landing .hero-title::after {
    content: '';
    display: block;
    width: 5.5rem;
    height: .45rem;
    margin-top: 1.15rem;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--primary) 0 62%, var(--secondary) 62% 100%);
}

/* 3つの入口: それぞれ違う体験だが、同じ写真サービスのカードとして揃える。 */
.home-landing .audience-switcher-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at -2% 18%, rgba(112, 191, 174, .11) 0 18rem, transparent 18.1rem),
        #fff;
}

.home-landing .audience-switcher-section::before {
    content: '';
    position: absolute;
    right: -14rem;
    bottom: -16rem;
    width: 34rem;
    aspect-ratio: 1;
    border: 3px dashed rgba(255, 61, 92, .16);
    border-radius: 50%;
    pointer-events: none;
}

.home-landing .audience-switcher-section::after {
    content: '';
    position: absolute;
    top: -5rem;
    right: 5%;
    width: 16rem;
    height: 16rem;
    background:
        linear-gradient(90deg, var(--primary) 34%, transparent 34% 66%, var(--secondary) 66%),
        linear-gradient(var(--primary) 34%, transparent 34% 66%, var(--secondary) 66%);
    background-blend-mode: multiply;
    opacity: .075;
    transform: rotate(8deg);
    pointer-events: none;
}

.home-landing .audience-switcher-card {
    position: relative;
    overflow: hidden;
    border-color: color-mix(in srgb, var(--switcher-color) 18%, white);
    box-shadow: 0 12px 32px rgba(91, 74, 62, .1);
}

.home-landing .audience-switcher-card::before {
    content: '';
    position: absolute;
    top: -2.4rem;
    right: -2.4rem;
    width: 7rem;
    aspect-ratio: 1;
    border: 1.2rem solid color-mix(in srgb, var(--switcher-color) 12%, transparent);
    border-radius: 50%;
    transition: transform .35s ease;
}

.home-landing .audience-switcher-card::after {
    content: '';
    position: absolute;
    right: 1.1rem;
    bottom: 1.1rem;
    width: 1.2rem;
    aspect-ratio: 1;
    border: 2px solid color-mix(in srgb, var(--switcher-color) 40%, transparent);
    transform: rotate(12deg);
}

.home-landing .audience-switcher-card > * {
    position: relative;
    z-index: 1;
}

@media (hover: hover) {
    .home-landing .audience-switcher-card:hover::before {
        transform: scale(1.14) rotate(8deg);
    }

    .home-landing .audience-switcher-card:hover .audience-switcher-icon {
        transform: rotate(-7deg) scale(1.07);
    }
}

.home-landing .audience-switcher-icon {
    transition: transform .3s ease;
}

/* 3ステップ: QRから撮影までを点線のルートで見せる。 */
.home-landing .how-it-works-section {
    position: relative;
    background:
        linear-gradient(rgba(255, 255, 255, .7), rgba(255, 255, 255, .7)),
        radial-gradient(circle, rgba(112, 191, 174, .25) 3px, transparent 3.2px),
        var(--home-paper-deep);
    background-size: auto, 96px 96px, auto;
}

.home-landing .how-it-works-section.section-pattern::before {
    opacity: .075;
}

.home-landing .steps-container::before {
    content: '';
    position: absolute;
    z-index: 0;
    top: 59px;
    left: 15%;
    right: 15%;
    border-top: 3px dashed rgba(255, 61, 92, .24);
}

.home-landing .step-item {
    z-index: 1;
}

.home-landing .step-icon {
    border: 1px solid rgba(255, 61, 92, .08);
    box-shadow: 0 14px 35px rgba(78, 68, 58, .11);
    transition: transform .3s ease, box-shadow .3s ease;
}

@media (hover: hover) {
    .home-landing .step-item:hover .step-icon {
        box-shadow: 0 20px 42px rgba(78, 68, 58, .16);
        transform: translateY(-7px) rotate(-2deg);
    }
}

/* ユースケース: 多様な場所へ広がる様子を、淡いグリッドとカードのリズムで表現。 */
.home-landing .target-selector-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 103% 4%, var(--home-yellow-soft) 0 20rem, transparent 20.1rem),
        #fff;
}

.home-landing .target-selector-section::before {
    content: '';
    position: absolute;
    inset: auto auto -2rem -12rem;
    width: 34rem;
    height: 26rem;
    background-image:
        linear-gradient(rgba(255, 61, 92, .1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 61, 92, .1) 1px, transparent 1px);
    background-size: 72px 72px;
    transform: rotate(-8deg);
    pointer-events: none;
}

.home-landing .target-card {
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(83, 71, 61, .07);
}

.home-landing .target-card::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 3.2rem;
    height: .35rem;
    border-radius: 0 0 0 999px;
    background: var(--primary);
    opacity: .16;
    transition: width .3s ease, opacity .3s ease;
}

@media (hover: hover) {
    .home-landing .target-card:hover::after {
        width: 7rem;
        opacity: .65;
    }
}

/* 課題→答え→成果は、フレームが組み上がる編集画面のような奥行きに。 */
.home-landing .value-flow-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 2% 94%, rgba(255, 201, 61, .18) 0 22rem, transparent 22.1rem),
        var(--home-paper-deep);
}

.home-landing .value-flow-section::after {
    content: '';
    position: absolute;
    top: 2rem;
    right: -12rem;
    width: 28rem;
    aspect-ratio: 1;
    border: 42px solid rgba(112, 191, 174, .08);
    transform: rotate(14deg);
    pointer-events: none;
}

.home-landing .vf-card,
.home-landing .vf-flow-panel {
    box-shadow: 0 8px 24px rgba(83, 71, 61, .07);
}

/* 料金: 情報量の多い場所は動きを抑え、選択中のカードだけに焦点を作る。 */
.home-landing .pricing-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 101% 15%, rgba(255, 61, 92, .07) 0 22rem, transparent 22.1rem),
        #fff;
}

.home-landing .pricing-section::before {
    content: '';
    position: absolute;
    left: -8rem;
    top: 2rem;
    width: 26rem;
    aspect-ratio: 1;
    border: 3px dashed rgba(112, 191, 174, .18);
    border-radius: 50%;
    pointer-events: none;
}

.home-landing .pricing-card {
    box-shadow: 0 12px 30px rgba(83, 71, 61, .08);
}

.home-landing .pricing-tab {
    box-shadow: 0 5px 14px rgba(83, 71, 61, .06);
}

/* 最後はシャッターが閉じる直前の光と、舞う写真片を抽象化。 */
.home-landing .final-cta-section::before {
    background-image:
        radial-gradient(circle at 8% 65%, rgba(255, 255, 255, .12) 0 20rem, transparent 20.1rem),
        radial-gradient(circle at 92% 5%, rgba(255, 201, 61, .25) 0 16rem, transparent 16.1rem),
        linear-gradient(115deg, transparent 42%, rgba(255, 255, 255, .06) 42% 58%, transparent 58%);
}

.home-landing .final-cta-section::after {
    content: '';
    position: absolute;
    left: -3rem;
    bottom: -5rem;
    width: 12rem;
    height: 16rem;
    border: 3px solid rgba(255, 255, 255, .28);
    transform: rotate(-12deg);
    pointer-events: none;
    animation: homeShapeDrift 6s ease-in-out infinite;
}

/* JSが有効な場合だけ付くクラス。JSなしでは常に本文を表示する。 */
.home-landing.home-motion-ready .home-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity .7s cubic-bezier(.2, .7, .2, 1),
        transform .7s cubic-bezier(.2, .7, .2, 1);
    transition-delay: var(--home-reveal-delay, 0ms);
}

.home-landing.home-motion-ready .home-reveal.is-visible {
    opacity: 1;
    transform: translate(0, 0);
}

@keyframes homePhotoFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

@keyframes homeTapeDrift {
    0%, 100% { transform: rotate(-10deg) translateY(0); }
    50% { transform: rotate(-5deg) translateY(-20px); }
}

@keyframes homeShapeDrift {
    0%, 100% { transform: rotate(-12deg) translateY(0); }
    50% { transform: rotate(-6deg) translateY(-24px); }
}

@media (max-width: 992px) {
    .home-landing .hero-section {
        min-height: auto;
    }

    .home-landing .hero-section::before {
        background-position: calc(100% - 1rem) 2rem;
        opacity: .42;
    }

    .home-landing .hero-visual::after {
        right: -4rem;
        width: 8rem;
        border-width: 16px;
    }

    .home-landing .hero-title,
    .home-landing .hero-description {
        margin-right: auto;
        margin-left: auto;
    }

    .home-landing .hero-title::after {
        margin-right: auto;
        margin-left: auto;
    }

    .home-landing .steps-container::before {
        top: 7%;
        bottom: 7%;
        left: 50%;
        right: auto;
        border-top: 0;
        border-left: 3px dashed rgba(255, 61, 92, .2);
        transform: translateX(-50%);
    }
}

@media (max-width: 768px) {
    .home-landing .hero-section {
        padding-top: 3.2rem;
    }

    .home-landing .hero-section::after {
        top: 5%;
        left: -4rem;
        width: 150px;
        height: 36px;
    }

    .home-landing .hero-visual {
        width: min(100%, 370px);
        margin: 0 auto;
    }

    .home-landing .hero-title {
        font-size: clamp(2.15rem, 9vw, 2.8rem);
        line-height: 1.14;
    }

    .home-landing .audience-switcher-section::after,
    .home-landing .value-flow-section::after,
    .home-landing .pricing-section::before {
        opacity: .18;
        transform: scale(.9) rotate(10deg);
    }

    .home-landing .audience-switcher-card {
        min-height: 0;
    }

    .home-landing .target-card {
        padding: 1.75rem 1.4rem;
    }

    .home-landing .final-cta-section::after {
        left: -5rem;
        opacity: .45;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-landing .hero-section::after,
    .home-landing .hero-visual,
    .home-landing .final-cta-section::after {
        animation: none;
    }

    .home-landing.home-motion-ready .home-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
