/* ambience.css —— 氛围引擎装饰层（v0.23.69 P1，规格书唯一事实源）
   铁律：只动背景/插画/点缀——文字颜色、对比度、字号、布局、组件结构一寸不动；
   降级链永不破图（地标缺失=纯色渐变）；性能：粒子 ≤12 纯 CSS 动画，prefers-reduced-motion 全静止，
   Save-Data 降到纯色兜底；暗色模式有对应压暗变体；运行时零 AI、零外部图床（全本地自托管）。 */

/* ---------- ① 四季背景渐变（登录页全屏 / 页头轻带） ---------- */
:root{
  --amb-sky1:#FBF7EE; --amb-sky2:#FBF7EE;            /* 季节渐变两端（默认=品牌纸底） */
  --amb-accent:#2E6B4F;                              /* 当季点缀色（取品牌色谱，不新造） */
  --amb-lm-op:.2;                                    /* 地标水印不透明度（15~25% 规格书口径） */
  --amb-card-tint:transparent;
}
html[data-amb-season="spring"]{--amb-sky1:#EAF3E6;--amb-sky2:#FBF7EE;--amb-accent:#2E6B4F;--amb-card-tint:rgba(46,107,79,.06)}
html[data-amb-season="summer"]{--amb-sky1:#F7EFD8;--amb-sky2:#FBF7EE;--amb-accent:#8A5A12;--amb-card-tint:rgba(138,90,18,.06)}
html[data-amb-season="autumn"]{--amb-sky1:#F3E8D3;--amb-sky2:#FBF0E3;--amb-accent:#B03A2E;--amb-card-tint:rgba(176,58,46,.05)}
html[data-amb-season="winter"]{--amb-sky1:#E8EEF4;--amb-sky2:#F7F9FB;--amb-accent:#1F4E79;--amb-card-tint:rgba(31,78,121,.06)}

/* E1 四时流转：仅背景层渐变偏移（不动任何文字色） */
html[data-amb-part="dawn"]{--amb-sky1:color-mix(in srgb, var(--amb-sky1) 78%, #F7E7C3)}
html[data-amb-part="day"]{/* 正午=本色 */}
html[data-amb-part="dusk"]{--amb-sky1:color-mix(in srgb, var(--amb-sky1) 75%, #EFC9A8);--amb-sky2:color-mix(in srgb, var(--amb-sky2) 88%, #F2D8C2)}
html[data-amb-part="night"]{--amb-sky1:#1C2433;--amb-sky2:#242E40;--amb-lm-op:.28}
/* 暗色模式：装饰层自动压暗（不亮瞎） */
html[data-theme="dark"]{--amb-lm-op:.16}
html[data-theme="dark"][data-amb-season]{--amb-sky1:#232B38;--amb-sky2:#1E2530}
html[data-theme="dark"][data-amb-part="night"]{--amb-sky1:#171D28;--amb-sky2:#1B2230}

/* ---------- ② 登录页全屏氛围（渐变+地标水印+粒子） ---------- */
.amb-bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;
  background:linear-gradient(160deg, var(--amb-sky1), var(--amb-sky2))}
.amb-landmark{position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:min(920px,96vw);opacity:var(--amb-lm-op);filter:grayscale(.35) contrast(.92)}
.amb-landmark img{width:100%;display:block}
html[data-amb-part="night"] .amb-landmark{filter:grayscale(.6) brightness(1.12)}

/* 粒子层（≤12 个，纯 CSS 动画） */
.amb-particles{position:absolute;inset:0}
.amb-particles i{position:absolute;display:block;width:9px;height:9px;border-radius:50%;
  background:var(--amb-accent);opacity:.5;animation:amb-fall 11s linear infinite}
html[data-amb-season="summer"] .amb-particles i{border-radius:50%;box-shadow:0 0 10px 2px rgba(138,90,18,.35);animation-name:amb-float}
html[data-amb-season="autumn"] .amb-particles i{border-radius:0 60% 60% 60%;animation-name:amb-sway}
html[data-amb-season="winter"] .amb-particles i{background:#FFF;opacity:.85;box-shadow:0 0 3px rgba(31,78,121,.25)}
.amb-particles i:nth-child(1){left:6%;animation-delay:-1s}
.amb-particles i:nth-child(2){left:14%;animation-delay:-5s;animation-duration:13s}
.amb-particles i:nth-child(3){left:23%;animation-delay:-8s}
.amb-particles i:nth-child(4){left:31%;animation-delay:-3s;animation-duration:9s}
.amb-particles i:nth-child(5){left:40%;animation-delay:-10s}
.amb-particles i:nth-child(6){left:49%;animation-delay:-6s;animation-duration:12s}
.amb-particles i:nth-child(7){left:57%;animation-delay:-2s}
.amb-particles i:nth-child(8){left:65%;animation-delay:-9s;animation-duration:10s}
.amb-particles i:nth-child(9){left:73%;animation-delay:-4s}
.amb-particles i:nth-child(10){left:81%;animation-delay:-11s;animation-duration:14s}
.amb-particles i:nth-child(11){left:88%;animation-delay:-7s}
.amb-particles i:nth-child(12){left:95%;animation-delay:-12s;animation-duration:12s}
@keyframes amb-fall{0%{top:-4%;transform:translateX(0) rotate(0)}100%{top:104%;transform:translateX(4vw) rotate(300deg)}}
@keyframes amb-sway{0%{top:-4%;transform:translateX(0) rotate(0)}50%{transform:translateX(3vw) rotate(160deg)}100%{top:104%;transform:translateX(-2vw) rotate(320deg)}}
@keyframes amb-float{0%{top:104%;transform:translateY(0) scale(.8)}50%{transform:translateY(-46vh) scale(1.05)}100%{top:-4%;transform:translateY(-100vh) scale(.8)}}

/* ---------- ③ 页头/工作台氛围（渐变轻带+卡片边角点缀，正文区一寸不动） ---------- */
html[data-amb-on="1"] .page-h{position:relative;background:linear-gradient(90deg, var(--amb-card-tint), transparent 55%);border-radius:10px}
html[data-amb-on="1"] .page-h::after{content:"";position:absolute;right:10px;top:8px;width:26px;height:26px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%, var(--amb-accent), transparent 70%);opacity:.28;pointer-events:none}
html[data-amb-on="1"] .card{border-color:color-mix(in srgb, var(--amb-accent) 14%, var(--bd))}

/* ---------- ⑤ P2 节日主题粒子（v0.23.70；生日优先级最高盖过节日——bday 时不设 data-amb-fest） ---------- */
/* 春节：中国红金灯笼（红圆点+金光晕） */
html[data-amb-fest="cny"]{--amb-accent:#B03A2E;--amb-card-tint:rgba(176,58,46,.07)}
html[data-amb-fest="cny"] .amb-particles i{background:#B03A2E;box-shadow:0 0 8px 2px rgba(217,164,65,.55);border-radius:45% 45% 50% 50%}
/* 圣诞：白雪+松绿金 */
html[data-amb-fest="christmas"]{--amb-accent:#2E6B4F;--amb-card-tint:rgba(46,107,79,.07)}
html[data-amb-fest="christmas"] .amb-particles i{background:#FFF;opacity:.9;box-shadow:0 0 3px rgba(46,107,79,.3)}
/* 新年：金色礼花（上升光点） */
html[data-amb-fest="newyear"]{--amb-accent:#8A5A12;--amb-card-tint:rgba(138,90,18,.07)}
html[data-amb-fest="newyear"] .amb-particles i{background:#D9A441;box-shadow:0 0 10px 2px rgba(217,164,65,.6);animation-name:amb-float}
/* 感恩节：暖橙麦穗（旋落） */
html[data-amb-fest="thanksgiving"]{--amb-accent:#B03A2E;--amb-card-tint:rgba(176,58,46,.06)}
html[data-amb-fest="thanksgiving"] .amb-particles i{background:#C77B2E;border-radius:0 60% 60% 60%;animation-name:amb-sway}
/* 狂欢节：彩带（三色轮换小方块） */
html[data-amb-fest="carnival"]{--amb-accent:#8A5A12;--amb-card-tint:rgba(138,90,18,.06)}
html[data-amb-fest="carnival"] .amb-particles i{border-radius:2px;animation-name:amb-sway}
html[data-amb-fest="carnival"] .amb-particles i:nth-child(3n){background:#2E6B4F}
html[data-amb-fest="carnival"] .amb-particles i:nth-child(3n+1){background:#B03A2E}
html[data-amb-fest="carnival"] .amb-particles i:nth-child(3n+2){background:#D9A441}
/* 亡灵节：万寿菊橙紫 */
html[data-amb-fest="marigold"]{--amb-accent:#C77B2E;--amb-card-tint:rgba(199,123,46,.07)}
html[data-amb-fest="marigold"] .amb-particles i{background:#D98E2B;box-shadow:0 0 6px 1px rgba(107,63,160,.35)}
html[data-amb-fest="marigold"] .amb-particles i:nth-child(4n){background:#6B3FA0}
/* 啤酒节：麦芽金+蓝白菱格感（金/白轮换） */
html[data-amb-fest="malt"]{--amb-accent:#8A5A12;--amb-card-tint:rgba(138,90,18,.07)}
html[data-amb-fest="malt"] .amb-particles i{background:#D9A441;border-radius:2px}
html[data-amb-fest="malt"] .amb-particles i:nth-child(3n){background:#F4F7FB;box-shadow:0 0 3px rgba(31,78,121,.35)}
/* 黑五：深底金纹（促销联动时再加强边框） */
html[data-amb-fest="bf"]{--amb-accent:#8A5A12;--amb-sky1:#EFE6D2;--amb-card-tint:rgba(138,90,18,.08)}
html[data-amb-fest="bf"] .amb-particles i{background:#8A5A12;box-shadow:0 0 8px 2px rgba(217,164,65,.5)}
html[data-amb-promo="1"] .card{border-color:color-mix(in srgb, #8A5A12 38%, var(--bd))}
/* 生日：气球（多色上升，盖过一切主题） */
html[data-amb-bday="1"]{--amb-accent:#B03A2E;--amb-card-tint:rgba(176,58,46,.07)}
html[data-amb-bday="1"] .amb-particles i{border-radius:50% 50% 48% 52%;animation-name:amb-float;animation-duration:9s}
html[data-amb-bday="1"] .amb-particles i:nth-child(4n){background:#B03A2E}
html[data-amb-bday="1"] .amb-particles i:nth-child(4n+1){background:#D9A441}
html[data-amb-bday="1"] .amb-particles i:nth-child(4n+2){background:#2E6B4F}
html[data-amb-bday="1"] .amb-particles i:nth-child(4n+3){background:#1F4E79}

/* ---------- ⑥ P2 横幅层（门户页头一行，可关闭；优先级叠放：生日→周年→节日→旅途） ---------- */
.amb-banners{position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:900;
  display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none;max-width:94vw}
.amb-ban{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:999px;
  background:var(--card,#FFFDF6);border:1px solid color-mix(in srgb, var(--amb-accent) 35%, var(--bd));
  box-shadow:0 2px 10px rgba(31,78,121,.12);font-size:12.5px;color:var(--tx);white-space:nowrap;max-width:94vw;overflow:hidden;text-overflow:ellipsis}
.amb-ban button{border:0;background:transparent;color:var(--tx2,#8a8a8a);cursor:pointer;font-size:10.5px;padding:2px 4px;border-radius:50%}
.amb-ban button:hover{color:var(--tx)}
.amb-ban-bday{border-color:rgba(176,58,46,.45);background:linear-gradient(90deg, rgba(176,58,46,.08), var(--card,#FFFDF6))}
.amb-ban-anniv{border-color:rgba(138,90,18,.45);background:linear-gradient(90deg, rgba(217,164,65,.12), var(--card,#FFFDF6))}
.amb-ban-travel{border-color:rgba(31,78,121,.4)}
/* E7 节气小标签（页头角落，不喧哗） */
.amb-st-chip{margin-left:auto;font-size:10.5px;color:var(--amb-accent);border:1px solid color-mix(in srgb, var(--amb-accent) 40%, var(--bd));
  border-radius:999px;padding:1px 8px;opacity:.85}
@media (max-width:760px){
  .amb-banners{top:4px;width:96vw}
  .amb-ban{font-size:11.5px;padding:5px 10px}
}

/* ---------- ④ 降级与无障碍（铁律） ---------- */
html[data-amb-on="0"] .amb-bg, html[data-amb-on="0"] .amb-landmark{display:none}   /* 用户关闭=纯色兜底 */
@media (prefers-reduced-motion: reduce){
  .amb-particles i{animation:none !important;top:6% !important;opacity:.25}      /* 减弱动效=全静止 */
}
@media (prefers-reduced-data: reduce){
  .amb-landmark{display:none}                                                     /* Save-Data=不要背景图 */
}
/* 移动端：地标锚下中不压表单不压按钮，窄屏等比缩小不裁主体 */
@media (max-width:760px){
  .amb-landmark{width:130vw;left:50%;bottom:-2vw}
  html[data-amb-on="1"] .page-h::after{display:none}
}
