/* soulai sooulai.cn - 灵魂共振舱 · 四色体系: 黑#191327/白/紫#9662F1/橙#F2762E */
:root{
  --paper:#F6F4FB;
  --ink:#191327;
  --panel:#221B36;
  --purple:#9662F1;
  --purple-lt:#D9C8FF;
  --orange:#F2762E;
  --mist:#EEEBF6;
  --line:#DCD5EC;
  --white:#FFFFFF;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;background:var(--paper);color:var(--ink);line-height:1.7;}
img{max-width:100%;height:auto;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
[id]{scroll-margin-top:84px;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0;}

/* ---------- 入场动画 ---------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease;}
.rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .rv{opacity:1;transform:none;transition:none;}
}

/* ---------- 按钮 ---------- */
.sobtn{display:inline-block;padding:12px 28px;font-size:15px;font-weight:800;border:2px solid var(--ink);line-height:1.4;transition:transform .15s ease;}
.sobtn:hover{transform:translate(2px,2px);}
.sobtn-lg{padding:15px 34px;font-size:17px;}
.sobtn-purple{background:var(--purple);color:var(--white);}
.sobtn-orange{background:var(--orange);color:var(--ink);}
.sobtn-line{background:transparent;color:var(--ink);}

/* ---------- 顶栏 ---------- */
.sobar{position:sticky;top:0;z-index:60;background:var(--white);border-bottom:3px solid var(--purple);}
.sobar-in{display:flex;align-items:center;gap:26px;height:70px;}
.sologo{display:flex;align-items:center;gap:10px;}
.sologo img{width:40px;height:40px;object-fit:contain;}
.sologo-t{display:flex;flex-direction:column;line-height:1.25;}
.sologo-t strong{font-size:17px;letter-spacing:1px;}
.sologo-t small{font-size:11px;color:#6A6280;}
.sonav{display:flex;gap:22px;margin-left:auto;}
.sonav a{font-size:14px;font-weight:600;color:#4A4460;padding:6px 2px;border-bottom:3px solid transparent;}
.sonav a.on,.sonav a:hover{color:var(--purple);border-bottom-color:var(--purple);}
.sobar-r{display:flex;align-items:center;gap:14px;}
.sobar-cta{padding:9px 22px;font-size:14px;}
.burger{display:none;width:42px;height:42px;border:2px solid var(--ink);background:var(--white);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;}
.burger span{display:block;width:20px;height:2px;background:var(--ink);}

/* ---------- 英雄区: 灵魂共振舱 ---------- */
.sohe{padding:52px 0 64px;background:var(--paper);}
.sohe-in{background:var(--white);border:2px solid var(--ink);box-shadow:12px 14px 0 var(--purple);padding:46px 48px;display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;}
.sokick{font-size:12px;letter-spacing:2px;color:#6A6280;font-weight:700;margin-bottom:14px;}
.sokick i{font-style:normal;background:var(--purple);color:var(--white);padding:3px 9px;margin-right:10px;font-size:10px;letter-spacing:1px;}
.sohe h1{font-size:56px;font-weight:900;letter-spacing:2px;line-height:1.15;margin-bottom:16px;}
.sohe .lead{font-size:15px;line-height:1.95;color:#3E3850;margin-bottom:24px;}
.sohe-acts{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:20px;}
.sotags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.sotags li{border:1px solid var(--ink);background:var(--mist);padding:5px 13px;font-size:12px;font-weight:600;}
.sonote-line{display:flex;align-items:center;gap:8px;font-size:12px;color:#6A6280;}
.sonote-line .sq{width:10px;height:10px;background:var(--orange);border:1px solid var(--ink);flex:none;}
.sohe-r{min-width:0;}
.cabin{position:relative;background:var(--ink);border:2px solid var(--purple);padding:46px 26px 26px;max-width:400px;margin:0 auto;}
.cplate{position:absolute;top:12px;left:14px;font-size:10px;letter-spacing:2px;color:rgba(255,255,255,.6);}
.cwave{display:block;width:100%;height:84px;margin-bottom:18px;}
.soul-screen{background:var(--white);border:5px solid var(--purple);width:242px;margin:0 auto;}
.soul-screen img{width:100%;}
.soul-screen figcaption{background:var(--ink);color:var(--white);font-size:11px;padding:6px 10px;display:flex;justify-content:space-between;align-items:center;}
.soul-screen figcaption b{color:var(--orange);}
.bars{display:flex;align-items:flex-end;gap:5px;height:46px;margin:18px 6px 12px;}
.bars i{flex:1;background:var(--purple);}
.bars i:nth-child(even){background:var(--orange);}
.cchips{display:flex;gap:10px;justify-content:center;}
.cchip{font-size:11px;font-weight:800;padding:5px 12px;border:2px solid var(--ink);}
.cchip.cp{background:var(--purple);color:var(--white);}
.cchip.cw{background:var(--white);color:var(--ink);}

/* ---------- 区块标题 ---------- */
.sosech{margin-bottom:30px;}
.sosech h2{font-size:29px;font-weight:900;line-height:1.4;margin-bottom:8px;}
.sosech .sosub{font-size:13px;color:#6A6280;}

/* ---------- 读数带（深色·单行五格） ---------- */
.sodata{background:var(--ink);padding:52px 0;}
.sodata-in{background:var(--panel);border:2px solid var(--purple);box-shadow:-10px 8px 0 var(--orange);display:grid;grid-template-columns:repeat(5,1fr);}
.sost{padding:24px 10px;text-align:center;border-left:1px dashed rgba(255,255,255,.22);}
.sost:first-child{border-left:none;}
.sost b{display:block;font-size:26px;font-weight:900;color:var(--purple-lt);letter-spacing:1px;}
.sost span{font-size:12px;color:rgba(255,255,255,.68);}

/* ---------- 同频频道（浅色·双列条目） ---------- */
.sofeat{background:var(--white);padding:64px 0;}
.sofeat-grid{background:var(--mist);border:2px solid var(--ink);box-shadow:10px -8px 0 var(--purple);padding:26px;display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.sfreq{background:var(--white);border:1px solid var(--line);border-left:5px solid var(--purple);padding:18px 20px 16px;}
.sfreq.alt{border-left-color:var(--orange);}
.sfq-h{display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.sf-no{font-size:24px;font-weight:900;color:var(--purple);letter-spacing:1px;}
.sfreq.alt .sf-no{color:var(--orange);}
.sfreq h3{font-size:15px;font-weight:800;}
.sfreq p{font-size:13px;line-height:1.85;color:#4A4460;}

/* ---------- 舱内实录（浅色·双轨交错） ---------- */
.soshot{background:var(--mist);padding:64px 0;}
.sreel{background:var(--white);border:2px solid var(--ink);box-shadow:-8px 12px 0 var(--purple);padding:26px;}
.sreel-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.strack{display:flex;flex-direction:column;gap:22px;}
.strack.down{margin-top:44px;}
.sot{background:var(--white);border:1px solid var(--line);}
.sot .cap{display:block;height:6px;background:var(--purple);}
.strack.down .sot .cap{background:var(--orange);}
.sot img{max-width:230px;margin:0 auto;padding:10px 10px 0;}
.sot.wide img{max-width:320px;}
.sot figcaption{border-top:1px solid var(--line);font-size:12px;font-weight:600;color:#4A4460;padding:8px 12px;}
.sreel-low{margin-top:24px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:stretch;}
.snote{background:var(--mist);border-left:6px solid var(--orange);padding:22px;}
.snote h3{font-size:18px;font-weight:800;margin-bottom:8px;}
.snote p{font-size:13px;line-height:1.85;color:#4A4460;margin-bottom:14px;}
.sreel-low .sot{display:flex;flex-direction:column;}
.sreel-low .sot figcaption{margin-top:auto;}

/* ---------- 入舱四步（深色·2x2棋盘） ---------- */
.sostep{background:var(--ink);padding:64px 0;}
.sostep .sosech h2{color:var(--white);}
.sostep .sosub,.sostep .sokick{color:rgba(255,255,255,.65);}
.sostep-grid{background:var(--panel);border:2px solid var(--purple);box-shadow:8px 8px 0 var(--orange);padding:26px;display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.sostc{background:var(--white);border-top:6px solid var(--purple);padding:20px 20px 18px;}
.sostc.alt{border-top-color:var(--orange);}
.sost-no{display:inline-block;background:var(--purple);color:var(--white);font-size:12px;font-weight:800;padding:3px 11px;margin-bottom:10px;letter-spacing:1px;}
.sostc.alt .sost-no{background:var(--orange);color:var(--ink);}
.sostc h3{font-size:16px;font-weight:800;margin-bottom:6px;}
.sostc p{font-size:13px;line-height:1.85;color:#4A4460;}

/* ---------- 共振问答（浅色·宽幅手风琴） ---------- */
.soask{background:var(--white);padding:64px 0;}
.soask-book{max-width:880px;margin:0 auto;background:var(--mist);border:2px solid var(--ink);box-shadow:0 12px 0 var(--orange);padding:12px 30px;}
.soq{border-bottom:1px solid var(--line);}
.soq:last-child{border-bottom:none;}
.soq summary{display:flex;align-items:center;gap:10px;padding:16px 4px;cursor:pointer;list-style:none;font-weight:700;font-size:14px;}
.soq summary::-webkit-details-marker{display:none;}
.soq-no{flex:none;background:var(--purple);color:var(--white);font-size:11px;font-weight:800;padding:2px 8px;letter-spacing:1px;}
.soq:nth-child(even) .soq-no{background:var(--orange);color:var(--ink);}
.soq-t{flex:1;}
.soq-x{flex:none;position:relative;width:16px;height:16px;}
.soq-x::before,.soq-x::after{content:"";position:absolute;background:var(--ink);top:50%;left:50%;}
.soq-x::before{width:14px;height:2px;transform:translate(-50%,-50%);}
.soq-x::after{width:2px;height:14px;transform:translate(-50%,-50%);transition:transform .2s ease;}
.soq[open] .soq-x::after{transform:translate(-50%,-50%) rotate(90deg);}
.soq[open] summary{background:var(--white);}
.soq-a{padding:2px 4px 16px;}
.soq-a p{font-size:13px;line-height:1.9;color:#4A4460;}

/* ---------- 舱友留言（浅色·瀑布双列） ---------- */
.sotalk{background:var(--mist);padding:64px 0;}
.sotalk-flow{columns:2;column-gap:18px;}
.som{break-inside:avoid;background:var(--white);border:1px solid var(--line);border-left:5px solid var(--purple);padding:18px 18px 14px;margin-bottom:18px;}
.som.alt{border-left-color:var(--orange);}
.som-h{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#6A6280;letter-spacing:1px;margin-bottom:10px;}
.som-h b{background:var(--purple);color:var(--white);font-size:10px;font-weight:800;padding:2px 9px;letter-spacing:2px;}
.som.alt .som-h b{background:var(--orange);color:var(--ink);}
.som p{font-size:13px;line-height:1.9;color:#2E2840;margin-bottom:12px;}
.som footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;border-top:1px solid var(--line);padding-top:10px;}
.som footer b{font-weight:700;}
.som footer time{color:#6A6280;}

/* ---------- 底部CTA ---------- */
.socta{background:var(--paper);padding:0 0 64px;}
.socta-box{background:var(--purple);border:2px solid var(--ink);box-shadow:6px 8px 0 var(--ink);padding:40px 44px;display:flex;align-items:center;gap:34px;}
.socta-l{flex:1;}
.socta-sign{font-size:12px;letter-spacing:2px;margin-bottom:10px;color:rgba(255,255,255,.85);font-weight:700;}
.socta-sign .sq{display:inline-block;width:10px;height:10px;background:var(--orange);border:1px solid var(--ink);margin-right:8px;}
.socta-box h2{font-size:26px;font-weight:900;line-height:1.4;margin-bottom:10px;color:var(--white);}
.socta-p{font-size:14px;line-height:1.85;color:rgba(255,255,255,.9);}
.socta-box .sobtn{flex:none;}

/* ---------- 页脚 ---------- */
.sofoot{background:var(--ink);color:rgba(255,255,255,.78);border-top:6px solid var(--orange);padding:36px 0 26px;}
.sofoot-brand{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--white);margin-bottom:16px;}
.sofoot-brand img{width:34px;height:34px;object-fit:contain;}
.sofoot-nav{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:16px;}
.sofoot-nav a{font-size:12px;color:rgba(255,255,255,.7);}
.sofoot-nav a:hover{color:var(--orange);}
.sofoot-icp{font-size:12px;color:rgba(255,255,255,.6);margin-bottom:6px;}
.sofoot-c{font-size:12px;color:rgba(255,255,255,.45);}

/* ---------- 返回顶部 ---------- */
.backtop{position:fixed;right:24px;bottom:20px;width:46px;height:46px;background:var(--purple);border:2px solid var(--ink);color:var(--white);font-size:20px;font-weight:900;cursor:pointer;opacity:0;visibility:hidden;transition:opacity .25s ease;z-index:70;}
.backtop.show{opacity:1;visibility:visible;}
.backtop:hover{background:var(--orange);color:var(--ink);}

/* ---------- 移动端 ---------- */
@media (max-width:960px){
  .sonav{position:absolute;top:70px;left:0;right:0;background:var(--white);border-bottom:3px solid var(--purple);display:none;flex-direction:column;gap:0;padding:8px 0;}
  .sonav.open{display:flex;}
  .sonav a{padding:13px 24px;border-bottom:none;border-left:4px solid transparent;}
  .sonav a.on,.sonav a:hover{border-left-color:var(--purple);background:var(--mist);}
  .burger{display:flex;}
  .sobar-cta{display:none;}
}
@media (max-width:900px){
  [id]{scroll-margin-top:72px;}
  .sohe{padding:36px 0 44px;}
  .sohe-in{grid-template-columns:1fr;padding:30px 22px;gap:34px;box-shadow:9px 10px 0 var(--purple);}
  .sohe h1{font-size:40px;}
  .cabin{padding:42px 18px 22px;}
  .soul-screen{width:min(242px,84%);}
  .sodata-in{grid-template-columns:repeat(2,1fr);}
  .sost:nth-child(5){grid-column:1 / -1;border-top:1px dashed rgba(255,255,255,.22);}
  .sost:nth-child(3){border-left:none;}
  .sost:nth-child(1),.sost:nth-child(2){border-bottom:1px dashed rgba(255,255,255,.22);}
  .sosech h2{font-size:23px;}
  .sofeat-grid{grid-template-columns:1fr;padding:18px;}
  .sreel-grid{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:18px;}
  .strack{flex:0 0 auto;gap:18px;}
  .strack.down{margin-top:0;}
  .sreel-low{grid-template-columns:1fr;}
  .sostep-grid{grid-template-columns:1fr;padding:18px;}
  .soask-book{padding:8px 18px;}
  .sotalk-flow{columns:1;}
  .socta-box{flex-direction:column;align-items:flex-start;padding:30px 24px;}
  .backtop{bottom:142px;right:16px;}
}
@media (max-width:640px){
  .sohe h1{font-size:34px;}
  .sohe .lead{font-size:14px;}
  .sobtn-lg{padding:13px 26px;font-size:15px;}
  .sost b{font-size:22px;}
  .sot img{max-width:200px;}
  .sot.wide img{max-width:240px;}
}
