.line-lp{
    --line-ink:#26353c;
    --line-muted:#64727a;
    --line-green:#147c77;
    --line-green-soft:#e8f5f2;
    --line-yellow:#f5cb53;
    --line-warm:#fff8e9;
    --line-border:rgba(38,53,60,.10);
    color:var(--line-ink);
}
.line-lp *{box-sizing:border-box}
.line-hero,
.line-section,
.line-member{
    width:min(1080px,calc(100% - 32px));
    margin-inline:auto;
}
.line-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) 400px;
    gap:40px;
    align-items:center;
    padding:58px 0 66px;
}
.line-kicker{
    margin:0 0 12px;
    color:var(--line-green);
    font-size:13px;
    font-weight:900;
    letter-spacing:.08em;
}
.line-hero h1{
    margin:0;
    font-size:clamp(38px,5.2vw,66px);
    line-height:1.25;
    letter-spacing:-.04em;
}
.line-hero h1 span{color:var(--line-green)}
.line-lead{
    margin:26px 0 20px;
    max-width:700px;
    font-size:18px;
    line-height:1.9;
}
.line-zero{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 24px;
}
.line-zero span{
    padding:7px 12px;
    border-radius:999px;
    background:var(--line-green-soft);
    color:var(--line-green);
    font-size:13px;
    font-weight:900;
}
.line-main-cta{
    display:inline-flex;
    min-height:56px;
    align-items:center;
    justify-content:center;
    padding:14px 24px;
    border-radius:16px;
    background:var(--line-ink);
    color:#fff!important;
    text-decoration:none!important;
    font-weight:900;
    box-shadow:0 10px 26px rgba(38,53,60,.14);
}
.line-main-cta:hover{transform:translateY(-1px)}
.line-small{
    margin:10px 0 0;
    color:var(--line-muted);
    font-size:12px;
}
.line-hero-visual{
    position:relative;
    min-height:460px;
    border-radius:36px;
    background:
        radial-gradient(circle at 50% 25%,rgba(245,203,83,.25),transparent 34%),
        linear-gradient(145deg,#f5fbf9 0%,#fff9ed 100%);
    overflow:hidden;
}
.line-character{
    position:absolute;
    bottom:22px;
    width:185px;
    height:355px;
}
.line-character-left{left:12px}
.line-character-right{right:12px}
.line-avatar{
    position:absolute;
    left:0;
    bottom:0;
    width:135px;
    height:240px;
    object-fit:contain;
    filter:drop-shadow(0 12px 15px rgba(38,53,60,.10));
}
.line-pet{
    position:absolute;
    right:0;
    bottom:4px;
    width:82px;
    height:82px;
    object-fit:contain;
    filter:drop-shadow(0 10px 13px rgba(38,53,60,.10));
}
.line-medal{
    position:absolute;
    width:90px;
    height:90px;
    left:50%;
    top:30px;
    transform:translateX(-50%);
    object-fit:contain;
    filter:drop-shadow(0 8px 12px rgba(38,53,60,.10));
}

.line-section{
    padding:68px 0;
    border-top:1px solid var(--line-border);
}
.line-section h2,
.line-member h2{
    margin:0 0 22px;
    font-size:clamp(30px,3.8vw,48px);
    line-height:1.4;
    letter-spacing:-.035em;
    text-wrap:balance;
}
.line-section p,
.line-member p{
    font-size:16px;
    line-height:1.95;
}
.line-subject-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin-top:28px;
}
.line-subject-grid a{
    display:flex;
    min-height:110px;
    flex-direction:column;
    justify-content:center;
    padding:18px;
    border:1px solid var(--line-border);
    border-radius:18px;
    background:#fff;
    color:inherit;
    text-decoration:none;
}
.line-subject-grid strong{
    color:var(--line-green);
    font-size:18px;
}
.line-subject-grid span{
    margin-top:5px;
    color:var(--line-muted);
    font-size:13px;
}

.line-reward-section{
    display:grid;
    grid-template-columns:minmax(0,1fr) 300px;
    gap:44px;
    align-items:center;
}
.line-reward-visual{
    position:relative;
    min-height:330px;
    border-radius:28px;
    background:var(--line-warm);
}
.line-reward-medal{
    position:absolute;
    width:78px;
    height:78px;
    left:22px;
    top:38px;
    object-fit:contain;
}
.line-reward-pair{
    position:absolute;
    inset:40px 0 0 58px;
}
.line-reward-avatar{
    position:absolute;
    width:145px;
    height:258px;
    left:8px;
    bottom:10px;
    object-fit:contain;
}
.line-reward-pet{
    position:absolute;
    width:90px;
    height:90px;
    left:134px;
    bottom:4px;
    object-fit:contain;
}

.line-origin{
    max-width:880px;
}
.line-nowrap{white-space:nowrap}
.line-text-link{
    display:inline-block;
    margin-top:8px;
    color:var(--line-green)!important;
    font-weight:900;
    text-decoration:none!important;
}

.line-try{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:36px;
    align-items:center;
    padding:42px;
    border:0;
    border-radius:30px;
    background:var(--line-green-soft);
}
.line-try h2{font-size:clamp(30px,3.5vw,44px)}
.line-try p{margin-bottom:0}

.line-member{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:32px;
    align-items:center;
    margin-top:60px;
    margin-bottom:66px;
    padding:30px 34px;
    border:1px solid var(--line-border);
    border-radius:26px;
    background:#fff;
}
.line-member h2{
    margin-bottom:12px;
    font-size:clamp(25px,3vw,34px);
}
.line-member p{margin:0;color:var(--line-muted)}
.line-member-link{
    color:var(--line-green)!important;
    font-weight:900;
    text-decoration:none!important;
    white-space:nowrap;
}

@media(max-width:860px){
    .line-hero{
        grid-template-columns:1fr;
        padding-top:40px;
    }
    .line-hero-visual{
        min-height:380px;
        max-width:430px;
        width:100%;
        margin:0 auto;
    }
    .line-reward-section{
        grid-template-columns:1fr;
    }
    .line-reward-visual{
        max-width:320px;
        width:100%;
        margin:0 auto;
    }
    .line-subject-grid{
        grid-template-columns:1fr 1fr;
    }
    .line-try,
    .line-member{
        grid-template-columns:1fr;
    }
    .line-member-link{
        white-space:normal;
    }
}
@media(max-width:560px){
    .line-hero,
    .line-section,
    .line-member{
        width:min(100% - 24px,1080px);
    }
    .line-subject-grid{
        grid-template-columns:1fr;
    }
    .line-zero{
        gap:6px;
    }
    .line-main-cta{
        width:100%;
    }
    .line-nowrap{
        white-space:normal;
    }
    .line-try{
        padding:28px 20px;
    }
    .line-member{
        padding:24px 20px;
    }
    .line-hero-visual{
        min-height:330px;
    }
    .line-character{
        width:155px;
        height:280px;
    }
    .line-avatar{
        width:112px;
        height:199px;
    }
    .line-pet{
        width:70px;
        height:70px;
    }
}
