/* 泥金与光。开关由 lux.js 跟随 InkFX；没载入脚本时不改变页面。 */
@property --lux-reveal{syntax:'<percentage>';inherits:false;initial-value:0%}
/* 金箔的纸上阴影与深底高光已烘焙进离屏图，不对全屏画布逐帧跑滤镜。 */
.lux-gold{position:fixed;inset:0;width:100%;height:100%;z-index:83;pointer-events:none;visibility:hidden;contain:strict}
.lux-sheen{position:absolute;z-index:-1;pointer-events:none;overflow:hidden;border-radius:inherit;opacity:0}
.lux-sheen i{position:absolute;top:-60%;left:-50%;width:42%;height:220%;transform:translateX(-180%) skewX(-24deg);
  background:linear-gradient(90deg,transparent,rgba(242,200,107,.1) 12%,rgba(255,236,177,.6) 50%,rgba(217,164,65,.12) 83%,transparent)}
html.lux-on .lux-shine>.lux-sheen{opacity:1}
html.lux-on .lux-shine>.lux-sheen i{animation:lux-sweep 1.3s cubic-bezier(.2,.6,.3,1) both}
.btn:not(.enter):hover>.lux-sheen{transform:scaleX(1.04)}
.home .go .btn.enter:hover>.lux-sheen{transform:scaleX(1.06)}
html.lux-on .btn.lux-press{translate:0 1px}
html.lux-on .btn.lux-press::before{filter:drop-shadow(0 2px 3px rgba(28,27,24,.22))}
@keyframes lux-sweep{from{transform:translateX(-180%) skewX(-24deg)}to{transform:translateX(600%) skewX(-24deg)}}

/* 暖光是透明叠色，不盖字，不占用卡片已有的祥云、金线与笔刷框。 */
.lux-paper{position:relative}
.lux-paper-light{position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;z-index:2;
  background:radial-gradient(ellipse 300px 210px at var(--lux-x,70%) var(--lux-y,30%),#d99b38,transparent 76%);transition:opacity .28s}
html.lux-fine .lux-lit>.lux-paper-light{opacity:.09}
html.lux-fine .lux-work{transform:perspective(900px) rotateX(var(--lux-rx,0deg)) rotateY(var(--lux-ry,0deg));
  transition:transform .5s cubic-bezier(.2,.8,.2,1);transform-origin:center}
html.lux-fine .lux-work.lux-lit{transition:transform .16s ease-out}

/* 保留系统游标；细圈的断笔只来自一小段虚线，不额外画轨迹。 */
.lux-cursor{position:fixed;left:0;top:0;width:28px;height:28px;border:1px solid var(--ink,#1c1b18);border-radius:48% 53% 46% 51%;
  pointer-events:none;z-index:90;opacity:0;transition:opacity .15s,border-radius .23s,border-color .23s;will-change:transform}
.lux-cursor::after{content:"";position:absolute;inset:2px -2px -1px 1px;border:1px dashed currentColor;color:var(--ink,#1c1b18);border-radius:inherit;opacity:.2;transform:rotate(24deg)}
html.lux-dark .lux-cursor{border-color:var(--gold)}
html.lux-dark .lux-cursor::after{color:var(--gold)}
html.lux-on.lux-fine .lux-cursor.lux-visible{opacity:.48}
.lux-cursor.lux-point{border-radius:3px;border-color:var(--red)}
.lux-cursor.lux-point::after{border-radius:1px;color:var(--red);transform:rotate(-3deg);inset:3px;opacity:.3}
html.lux-dark .lux-cursor.lux-point{border-color:var(--red)}

/* 渐层推进墨线，第二层细噪声让湿边有纸纤维。结束后彻底移除遮罩和模糊。 */
.lux-title{opacity:1!important;animation:none!important}
html.lux-on .lux-title.lux-revealing{animation:lux-ink 1.5s cubic-bezier(.2,.65,.3,1) both!important;
  -webkit-mask-image:linear-gradient(100deg,#000 calc(var(--lux-reveal) - 16%),rgba(0,0,0,.65) calc(var(--lux-reveal) - 8%),transparent var(--lux-reveal)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.13 .6' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .12 .88'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mask-image:linear-gradient(100deg,#000 calc(var(--lux-reveal) - 16%),rgba(0,0,0,.65) calc(var(--lux-reveal) - 8%),transparent var(--lux-reveal)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.13 .6' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .12 .88'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  -webkit-mask-composite:source-in;mask-composite:intersect}
@keyframes lux-ink{from{--lux-reveal:-6%;filter:blur(6px);letter-spacing:calc(var(--lux-spacing,0px) + .04em)}to{--lux-reveal:124%;filter:blur(0);letter-spacing:var(--lux-spacing,0px)}}
@media (pointer:coarse),(prefers-reduced-motion:reduce){.lux-cursor,.lux-sheen,.lux-paper-light{display:none!important}.lux-work{transform:none!important}}
@media (prefers-reduced-motion:reduce){.lux-gold{display:none!important}html.lux-on .lux-title.lux-revealing{animation:none!important;filter:none!important;-webkit-mask:none!important;mask:none!important}html.lux-on .lux-press{translate:none!important}}
html:not(.lux-on) .lux-sheen,html:not(.lux-on) .lux-paper-light,html:not(.lux-on) .lux-cursor{opacity:0!important}
html.fx-paused .lux-revealing,html.fx-idle .lux-revealing,html.fx-hold .lux-revealing{animation-play-state:paused!important}
