/* =========================================================
   SOFTWARE PRODUCT DETAIL V1
   Public record view — no source/download exposure.
   ========================================================= */
.sp-main{
    position:relative;
    overflow:hidden;
}
.sp-hero{
    position:relative;
    min-height:calc(82vh - 98px);
    display:grid;
    align-items:center;
    overflow:hidden;
    border-bottom:1px solid rgba(255,255,255,.055);
}
.sp-hero::before{
    content:"";
    position:absolute;
    inset:-10%;
    pointer-events:none;
    background:
        radial-gradient(circle at 12% 24%,rgb(var(--world-accent)/.15),transparent 27%),
        radial-gradient(circle at 86% 18%,rgb(var(--world-accent-2)/.11),transparent 30%),
        radial-gradient(circle at 74% 88%,rgba(255,114,183,.045),transparent 30%);
    filter:blur(34px) saturate(1.15);
}
.sp-hero-grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);
    gap:64px;
    align-items:center;
    padding:82px 0 74px;
}
.sp-kicker{
    display:flex;
    align-items:center;
    gap:9px;
    color:rgb(var(--world-accent)/.86);
    font:650 .45rem/1 monospace;
    letter-spacing:.1em;
}
.sp-kicker::before{
    content:"";
    width:7px;
    height:7px;
    border-radius:50%;
    background:rgb(var(--world-accent));
    box-shadow:0 0 14px rgb(var(--world-accent)/.46);
}
.sp-hero h1{
    margin:20px 0 18px;
    max-width:980px;
    font-size:clamp(3rem,6.4vw,7rem);
    line-height:.87;
    letter-spacing:-.068em;
    background:linear-gradient(
        104deg,
        #fff 0%,
        #eefbff 38%,
        rgb(var(--world-accent)/.95) 68%,
        rgb(var(--world-accent-2)/.88) 91%
    );
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}
.sp-lead{
    max-width:760px;
    margin:0;
    color:var(--ws-muted);
    font-size:.7rem;
    line-height:1.72;
}
.sp-actions{
    margin-top:25px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.sp-action{
    min-height:43px;
    padding:0 15px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:999px;
    color:rgba(248,251,255,.68);
    background:rgba(255,255,255,.025);
    font-size:.52rem;
    font-weight:700;
}
.sp-action.primary{
    color:#071017;
    border-color:rgba(255,255,255,.20);
    background:linear-gradient(
        105deg,
        rgb(var(--world-accent)/.94),
        rgb(var(--world-accent-2)/.90)
    );
}
.sp-record{
    padding:20px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.11);
    border-radius:26px;
    background:
        radial-gradient(circle at 0 0,rgb(var(--world-accent)/.10),transparent 35%),
        linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.014)),
        rgba(14,28,41,.76);
    box-shadow:
        0 30px 92px rgba(0,0,0,.20),
        inset 0 1px 0 rgba(255,255,255,.055);
    backdrop-filter:blur(22px) saturate(165%);
}
.sp-record-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-bottom:14px;
    border-bottom:1px solid rgba(255,255,255,.07);
}
.sp-record-head span{
    color:rgb(var(--world-accent)/.75);
    font:650 .4rem/1 monospace;
    letter-spacing:.08em;
}
.sp-record-head i{
    padding:6px 8px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:999px;
    color:rgba(184,255,104,.68);
    background:rgba(184,255,104,.025);
    font:650 .36rem/1 monospace;
    font-style:normal;
}
.sp-record-visual{
    position:relative;
    height:210px;
    margin-top:14px;
    overflow:hidden;
    border-radius:18px;
    background:#07121c;
}
.sp-record-visual img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    filter:brightness(.83) saturate(1.05);
}
.sp-record-visual::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg,transparent 38%,rgba(5,12,18,.72)),
        radial-gradient(circle at 0 0,rgb(var(--world-accent)/.08),transparent 34%);
}
.sp-facts{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-top:12px;
}
.sp-fact{
    min-height:76px;
    padding:11px;
    border:1px solid rgba(255,255,255,.075);
    border-radius:14px;
    background:rgba(255,255,255,.014);
}
.sp-fact span{
    display:block;
    color:var(--ws-dim);
    font:600 .36rem/1 monospace;
    letter-spacing:.06em;
}
.sp-fact strong{
    display:block;
    margin-top:7px;
    color:#fff;
    font-size:.66rem;
    line-height:1.28;
}
.sp-section{
    padding:80px 0;
    border-bottom:1px solid rgba(255,255,255,.055);
}
.sp-section-head{
    display:grid;
    grid-template-columns:1fr minmax(260px,.62fr);
    gap:40px;
    align-items:end;
    margin-bottom:22px;
}
.sp-section-head span{
    color:rgb(var(--world-accent)/.82);
    font:650 .42rem/1 monospace;
    letter-spacing:.09em;
}
.sp-section-head h2{
    margin:10px 0 0;
    font-size:clamp(2rem,4vw,4rem);
    line-height:.93;
    letter-spacing:-.055em;
}
.sp-section-head p{
    margin:0;
    color:var(--ws-muted);
    font-size:.58rem;
    line-height:1.68;
}
.sp-access-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
}
.sp-access-card{
    min-height:190px;
    padding:16px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:20px;
    background:
        radial-gradient(circle at 0 0,rgb(var(--world-accent)/.065),transparent 38%),
        rgba(12,24,36,.70);
}
.sp-access-card span{
    color:rgb(var(--world-accent)/.72);
    font:650 .38rem/1 monospace;
    letter-spacing:.07em;
}
.sp-access-card h3{
    margin:13px 0 7px;
    color:#fff;
    font-size:.88rem;
}
.sp-access-card p{
    margin:0;
    color:rgba(238,246,255,.46);
    font-size:.5rem;
    line-height:1.57;
}
.sp-related{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}
.sp-related a{
    min-height:115px;
    padding:13px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    border:1px solid rgba(255,255,255,.085);
    border-radius:17px;
    background:rgba(255,255,255,.014);
    transition:.2s ease;
}
.sp-related a:hover{
    transform:translateY(-2px);
    border-color:rgb(var(--world-accent)/.24);
    background:rgb(var(--world-accent)/.035);
}
.sp-related span{
    color:rgb(var(--world-accent)/.65);
    font:650 .36rem/1 monospace;
}
.sp-related strong{
    color:#fff;
    font-size:.67rem;
    line-height:1.3;
}
.sp-evidence-note{
    padding:14px 15px;
    border:1px solid rgba(255,172,104,.13);
    border-radius:15px;
    color:rgba(255,214,176,.58);
    background:rgba(255,172,104,.025);
    font:600 .42rem/1.6 monospace;
}
@media(max-width:980px){
    .sp-hero-grid{
        grid-template-columns:1fr;
        gap:34px;
    }
    .sp-record{max-width:760px}
    .sp-section-head{grid-template-columns:1fr;gap:14px}
}
@media(max-width:720px){
    .sp-hero{min-height:auto}
    .sp-hero-grid{padding:66px 0 54px}
    .sp-hero h1{font-size:clamp(2.6rem,12vw,5rem)}
    .sp-access-grid,
    .sp-related{
        grid-template-columns:1fr;
    }
    .sp-facts{
        grid-template-columns:1fr;
    }
}
