/* 刘橙绿 · 首页（2026-10 升级）：入场、首屏、文章拼贴、作品卡片、页尾。 */
body.sx-home{overflow-x:clip}
.sx-home main.shell{padding-top:0}

/* ---------- 入场遮罩 ---------- */
html.sx-intro-pending body::before{content:"";position:fixed;inset:0;z-index:200;background:var(--bg);animation:sx-cover-safety 0s 3.4s forwards}
@keyframes sx-cover-safety{to{visibility:hidden;opacity:0}}
.sx-intro{position:fixed;inset:0;z-index:210;background:var(--bg);background-image:radial-gradient(var(--texture-ink) .6px,transparent .7px);background-size:8px 8px;overflow:hidden;cursor:pointer}
.sx-intro canvas{position:absolute;inset:0;width:100%;height:100%}
.sx-intro-mark{position:absolute;left:50%;top:50%;width:min(34vmin,320px);height:auto;transform:translate(-50%,-50%) scale(.92);opacity:0;will-change:transform,opacity,filter;pointer-events:none}
.sx-intro-name{position:absolute;left:50%;top:calc(50% + min(19vmin,180px));transform:translateX(-50%);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.32em;color:var(--ink-2);white-space:nowrap;opacity:0;transition:opacity .5s ease}
.sx-intro-count{position:absolute;right:clamp(16px,4.8vw,64px);bottom:clamp(16px,4vh,44px);font-family:var(--font-mono);font-size:clamp(2.6rem,7vw,5.2rem);line-height:1;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.sx-intro-count small{display:block;font-size:.66rem;letter-spacing:.3em;color:var(--ink-2);margin-bottom:.6rem;text-align:right}
.sx-intro-skip{position:absolute;left:clamp(16px,4.8vw,64px);bottom:clamp(16px,4vh,44px);appearance:none;border:1px solid var(--line);border-radius:40px;background:transparent;color:var(--ink-2);font:.8rem var(--font-serif);padding:.5em 1.1em;cursor:pointer}
.sx-intro-skip:hover,.sx-intro-skip:focus-visible{color:var(--accent);border-color:var(--accent);outline:none}

/* ---------- 首屏 ---------- */
.sx-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);min-height:min(calc(100svh - 6.5rem),820px);padding:clamp(2.5rem,6vh,4.5rem) 0 clamp(4.5rem,9vh,6.5rem)}
.sx-field{position:absolute;top:0;bottom:0;left:calc(50% - 50vw);width:100vw;height:100%;pointer-events:none;z-index:0}
.sx-hero-copy,.sx-object,.sx-controls,.sx-ticker{position:relative;z-index:1}
.sx-eyebrow{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.32em;color:var(--ink-2);margin:0 0 1.4rem}
.sx-eyebrow span{color:var(--ink-3)}
.sx-hero h1{font-size:clamp(2.8rem,5.3vw,5.1rem);line-height:1.12;font-weight:600;letter-spacing:.01em;margin:0 0 1.6rem;color:var(--ink)}
.sx-hero h1 .sx-w{display:inline-block;white-space:nowrap}
.sx-human{background:linear-gradient(100deg,var(--accent) 0 38%,color-mix(in srgb,var(--accent) 35%,#fff6e4) 50%,var(--accent) 62% 100%);background-size:260% 100%;background-position:0 0;-webkit-background-clip:text;background-clip:text;color:transparent;margin-right:.08em}
.sx-identity{font-size:clamp(1.05rem,1.5vw,1.3rem);color:var(--ink);margin:0 0 .35rem;letter-spacing:.03em}
.sx-proof{font-size:clamp(.98rem,1.3vw,1.12rem);color:var(--ink-2);margin:0}
.sx-proof strong{color:var(--ink);font-weight:600;margin:0 .12em}
.sx-stats{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:0 clamp(2rem,5vw,4.5rem);margin:2.1rem 0 0;padding-top:1.3rem;border-top:1px solid var(--line)}
.sx-stats div{min-width:0}
.sx-stats dt{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.22em;color:var(--ink-2);margin-bottom:.45rem}
.sx-stats dd{margin:0;font-size:clamp(2rem,3.6vw,3rem);line-height:1;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:.08em;white-space:nowrap}
.sx-stats dd small{font-size:.5em;font-weight:500;margin-left:.08em;color:var(--ink)}
.sx-stats .sx-now{font-size:clamp(1.5rem,2.6vw,2.15rem);gap:.5em}
.sx-live{position:relative;width:.42em;height:.42em;border-radius:50%;background:var(--accent);flex:none}
.sx-live::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--accent);animation:sx-ping 2.2s var(--sx-ease) infinite}
@keyframes sx-ping{from{transform:scale(1);opacity:.55}to{transform:scale(3.2);opacity:0}}

/* 主物件 */
.sx-object{margin:0;justify-self:center;width:min(100%,520px);aspect-ratio:1;perspective:1100px;cursor:grab}
.sx-object-tilt{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .5s var(--sx-ease)}
.sx-object-float{position:absolute;inset:0;animation:sx-float 7s ease-in-out infinite}
.sx-object img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .5s ease;user-select:none;-webkit-user-drag:none}
.sx-object .sx-o-34,.sx-object .sx-o-glow{opacity:0}
.sx-object.is-left .sx-o-34{opacity:1}
.sx-object.is-left .sx-o-front{opacity:0}
.sx-object.is-lit .sx-o-glow{opacity:.85}
.sx-object.is-bounce .sx-object-float{animation:sx-bounce .7s var(--sx-ease)}
@keyframes sx-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes sx-bounce{0%{transform:scale(1)}35%{transform:scale(.94)}70%{transform:scale(1.04)}100%{transform:scale(1)}}
.sx-note{position:absolute;left:-2%;bottom:6%;display:flex;align-items:flex-end;gap:.3rem;color:var(--ink-2);font-style:italic;font-size:.95rem;transform:rotate(-5deg);pointer-events:none}
.sx-note svg{width:64px;height:44px;overflow:visible}
.sx-note path{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}
.sx-note .t-touch{display:none}
@media (hover:none){.sx-note .t-hover{display:none}.sx-note .t-touch{display:inline}}

/* 字幕带 + 控件 */
.sx-ticker{grid-column:1/-1;position:absolute;left:calc(50% - 50vw);width:100vw;bottom:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:.75rem 0;background:color-mix(in srgb,var(--bg) 82%,transparent)}
.sx-ticker-track{display:flex;width:max-content;animation:sx-marquee 46s linear infinite}
.sx-ticker:hover .sx-ticker-track{animation-play-state:paused}
.sx-ticker-set{display:flex;align-items:center;flex:none}
.sx-ticker-set p{margin:0;padding:0 1.6rem;white-space:nowrap;font-size:.98rem;color:var(--ink-2);letter-spacing:.06em}
.sx-ticker-set p br{display:none}
.sx-ticker-set p span{margin-left:.35em}
.sx-ticker-set p.is-en{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.24em}
.sx-ticker-set i{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}
@keyframes sx-marquee{to{transform:translateX(-50%)}}
.sx-controls{position:absolute;right:0;bottom:3.6rem;display:flex;align-items:center;gap:.9rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;color:var(--ink-2)}
.sx-controls button{appearance:none;border:0;background:transparent;color:var(--ink-2);font:inherit;letter-spacing:inherit;padding:.2em 0;cursor:pointer;border-bottom:1px solid transparent}
.sx-controls button:hover,.sx-controls button:focus-visible{color:var(--accent);border-bottom-color:var(--accent);outline:none}

/* 首屏逐词升起 */
html.sx-hero-wait .sx-rise{opacity:0;transform:translateY(.55em);animation:sx-show 0s 3.8s forwards}
html.sx-hero-wait .sx-object.sx-rise{transform:scale(.88);filter:blur(10px)}
html.sx-hero-play .sx-rise{animation:sx-rise .95s var(--sx-ease) both;animation-delay:calc(var(--i,0) * 75ms)}
html.sx-hero-play .sx-object.sx-rise{animation:sx-rise-obj 1.3s var(--sx-ease) both;animation-delay:.1s}
html.sx-hero-play .sx-human{animation:sx-rise .95s var(--sx-ease) both,sx-sweep 1.5s var(--sx-ease-io) both;animation-delay:calc(var(--i,0) * 75ms),.55s}
@keyframes sx-rise{from{opacity:0;transform:translateY(.55em)}to{opacity:1;transform:none}}
@keyframes sx-rise-obj{from{opacity:0;transform:scale(.88);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}
@keyframes sx-sweep{from{background-position:100% 0}to{background-position:0 0}}
@keyframes sx-show{to{opacity:1;transform:none;filter:none}}

/* ---------- 区块通用 ---------- */
.sx-section{margin-top:clamp(4.5rem,10vw,8.5rem)}
.sx-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:clamp(1.4rem,2.6vw,2.2rem)}
.sx-kicker{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.28em;color:var(--ink-2);margin:0 0 .7rem}
.sx-kicker b{font-weight:400;color:var(--accent);margin-right:.9em}
.sx-head h2{font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.15;font-weight:600;letter-spacing:.04em;margin:0}
.sx-more{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.16em;color:var(--ink);text-decoration:none;white-space:nowrap;padding-bottom:.2rem;border-bottom:1px solid var(--line-strong)}
.sx-more:hover{color:var(--accent);border-color:var(--accent)}
.sx-arrow{display:inline-block;transition:transform .35s var(--sx-ease)}
a:hover .sx-arrow{transform:translateX(4px)}

/* 卡片 */
.sx-card{display:flex;flex-direction:column;background:color-mix(in srgb,var(--bg-raised) 70%,var(--bg));border:1px solid var(--line);border-radius:18px;text-decoration:none;color:var(--ink);overflow:hidden}
.sx-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--ink)}
.sx-card-meta{display:flex;gap:.9rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.14em;color:var(--ink-2)}
.sx-card-meta .c{color:var(--accent)}

/* 最新文章：一大两小 */
.sx-bento{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);grid-template-rows:auto auto;gap:clamp(.9rem,1.6vw,1.3rem)}
.sx-bento li{min-width:0;display:flex}
.sx-bento li:first-child{grid-row:span 2}
.sx-bento .sx-card{flex:1}
.sx-feature-img{aspect-ratio:2.35/1;overflow:hidden;background:var(--bg-raised);border-bottom:1px solid var(--line)}
.sx-feature-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--sx-ease)}
.sx-card:hover .sx-feature-img img{transform:scale(1.035)}
.sx-card-body{display:flex;flex-direction:column;gap:.7rem;padding:clamp(1.1rem,2vw,1.6rem);flex:1}
.sx-card-title{font-size:clamp(1.12rem,1.6vw,1.3rem);line-height:1.5;font-weight:600;letter-spacing:.02em}
.sx-bento li:first-child .sx-card-title{font-size:clamp(1.35rem,2.4vw,1.95rem);line-height:1.38}
.sx-card-sum{font-size:.93rem;line-height:1.75;color:var(--ink-2)}
.sx-card:hover .sx-card-title{color:var(--accent)}

/* 我做过的事 */
.sx-making-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.9rem,1.6vw,1.3rem)}
.sx-making-art{aspect-ratio:16/9;display:grid;place-items:center;border-bottom:1px solid var(--line);overflow:hidden}
.sx-making-art.is-olive{background:color-mix(in srgb,var(--olive) 13%,var(--bg))}
.sx-making-art.is-orange{background:color-mix(in srgb,var(--orange) 10%,var(--bg))}
.sx-making-art img{width:72%;height:100%;object-fit:contain;transition:transform 1.1s var(--sx-ease)}
.sx-card:hover .sx-making-art img{transform:translateY(-4px) scale(1.04)}
.sx-making-icon{width:2rem;height:2rem;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;font-size:.95rem;color:var(--ink-2)}
.sx-making-title{font-size:clamp(1.35rem,2.2vw,1.75rem);font-weight:600;letter-spacing:.06em}
.sx-making-link{margin-top:auto;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.16em;color:var(--ink)}
.sx-card:hover .sx-making-link{color:var(--accent)}
.sx-data-note{margin-top:1.2rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.2em;color:var(--ink-3);text-align:right}
.sx-latest-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.6rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sx-latest-links a{display:flex;align-items:baseline;gap:1rem;padding:1.05rem .2rem;text-decoration:none;color:var(--ink)}
.sx-latest-links a+a{border-left:1px solid var(--line);padding-left:1.4rem}
.sx-latest-links strong{font-weight:600}
.sx-latest-links a:hover strong{color:var(--accent)}

/* 页尾：谢谢你读到这里 */
.sx-coda{position:relative;margin-top:clamp(5rem,11vw,9rem);border-radius:22px;overflow:hidden;min-height:clamp(320px,38vw,460px);display:flex;align-items:flex-end;isolation:isolate}
.sx-coda img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;z-index:-2}
.sx-coda::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 8%,transparent) 0%,color-mix(in srgb,var(--bg) 25%,transparent) 45%,color-mix(in srgb,var(--bg) 92%,transparent) 100%)}
.sx-coda-copy{padding:clamp(1.4rem,3.4vw,2.6rem);width:100%;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.2rem}
.sx-coda h2{font-size:clamp(1.8rem,3.6vw,2.9rem);margin:0;font-weight:600;letter-spacing:.06em;color:var(--ink)}
.sx-coda-links{display:flex;flex-wrap:wrap;gap:.6rem}
.sx-coda-links a,.sx-coda-links button{appearance:none;display:inline-flex;align-items:center;gap:.45em;border:1px solid var(--line-strong);border-radius:40px;padding:.55em 1.15em;background:color-mix(in srgb,var(--bg) 70%,transparent);color:var(--ink);font:inherit;font-size:.92rem;text-decoration:none;cursor:pointer;backdrop-filter:blur(6px);transition:background .25s,color .25s,border-color .25s}
.sx-coda-links a:hover,.sx-coda-links button:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
:root[data-theme=night] .sx-coda img{filter:brightness(.55) saturate(.85)}

/* 暂停动效 */
body.motion-paused .sx-object-float,body.motion-paused .sx-ticker-track,body.motion-paused .sx-live::after{animation-play-state:paused}

/* ---------- 窄屏 ---------- */
@media (max-width:820px){
  .sx-hero{grid-template-columns:1fr;min-height:0;gap:.5rem;padding:1.2rem 0 6.8rem}
  .sx-object{order:-1;width:min(64vw,300px);margin-top:.4rem}
  .sx-note{left:auto;right:-6%;bottom:0;font-size:.85rem}
  .sx-note svg{width:44px;height:32px}
  .sx-hero h1{font-size:clamp(2.5rem,11.5vw,3.6rem);margin-bottom:1.2rem}
  .sx-eyebrow{margin-bottom:1rem}
  .sx-stats{margin-top:1.6rem}
  .sx-controls{position:static;margin-top:1.6rem;gap:.75rem;flex-wrap:wrap}
  .sx-hero{padding-bottom:5.2rem}
  .sx-head{flex-wrap:wrap}
  .sx-bento,.sx-making-grid,.sx-latest-links{grid-template-columns:1fr}
  .sx-bento li:first-child{grid-row:auto}
  .sx-latest-links a+a{border-left:0;border-top:1px solid var(--line);padding-left:.2rem}
  .sx-data-note{text-align:left}
  .sx-coda{min-height:360px}
}

@media (prefers-reduced-motion:reduce){
  .sx-object-float,.sx-ticker-track,.sx-live::after{animation:none}
  .sx-ticker-track{width:auto;flex-wrap:wrap}
  .sx-ticker-set[aria-hidden]{display:none}
  .sx-ticker-set{flex-wrap:wrap;row-gap:.4rem}
  .sx-object-tilt,.sx-feature-img img,.sx-making-art img{transition:none}
}
/* 首屏插画（替换立体印记） */
.sx-object.sx-object-art{aspect-ratio:4/3;width:min(100%,560px)}
.sx-object-art .sx-note{left:2%;bottom:-2%}
@media (max-width:820px){.sx-object.sx-object-art{width:min(86vw,380px)}}
.sx-object.sx-object-art{width:min(112%,660px);justify-self:end}
@media (max-width:820px){.sx-object.sx-object-art{width:min(100%,420px);justify-self:center}.sx-object-art .sx-note{display:none}}
