/* ── GuizhouWare × InternalBeyond 设计语言层（共享 token + 氛围 + 主题切换）── */
:root{
  --serif:'Cormorant Garamond',Georgia,'Noto Serif SC','Songti SC',STZhongsong,SimSun,serif;
  --sans:'Raleway','Noto Sans SC','PingFang SC','Microsoft YaHei UI','Segoe UI',system-ui,sans-serif;
  --mono:Consolas,'Cascadia Mono',monospace;
  --ease:cubic-bezier(.4,0,.2,1);
}
:root[data-theme="infernal"]{
  --bg-deep:#10162a;--bg-lift:#181e32;
  --glass:rgba(155,180,218,.10);--glass-strong:rgba(155,180,218,.16);
  --glass-brd:rgba(165,188,230,.20);--glass-brd-soft:rgba(165,188,230,.12);
  --pill:linear-gradient(180deg,rgba(168,192,230,.085),rgba(146,170,208,.028));
  --pill-on:linear-gradient(180deg,rgba(80,128,176,.30),rgba(80,128,176,.12));
  --tx:#e0e6f2;--tx2:#adb8d0;--mute:#7e90b2;
  --acc:#72a8d8;--acc-hi:#9cc4e8;--acc-deep:#5080b0;
  --ember:#a05252;--ember-deep:#7a2e2e;
  --glow-a:rgba(114,168,216,.14);--glow-b:rgba(240,244,255,.10);
  --shadow:0 8px 32px rgba(4,12,34,.45);
  --rain:rgba(190,210,240,.24);--sh:rgba(0,0,0,.18);
}
:root[data-theme="internal"]{
  --bg-deep:#e9eef6;--bg-lift:#f2f5fa;
  --glass:rgba(255,255,255,.52);--glass-strong:rgba(255,255,255,.72);
  --glass-brd:rgba(80,120,180,.20);--glass-brd-soft:rgba(80,120,180,.12);
  --pill:linear-gradient(180deg,rgba(255,255,255,.66),rgba(235,242,250,.32));
  --pill-on:linear-gradient(180deg,rgba(80,128,176,.26),rgba(80,128,176,.10));
  --tx:#16294f;--tx2:#2b487a;--mute:#647b9c;
  --acc:#5080b0;--acc-hi:#3a6798;--acc-deep:#2b487a;
  --ember:#9a5a5a;--ember-deep:#7a3a3a;
  --glow-a:rgba(176,204,248,.35);--glow-b:rgba(255,255,255,.5);
  --shadow:0 8px 32px rgba(80,110,160,.16);
  --rain:rgba(110,140,185,.20);--sh:rgba(46,60,88,.12);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg-deep);color:var(--tx);
  font-family:var(--sans);font-weight:300;line-height:1.75;
  min-height:100vh;overflow-x:hidden;
  transition:background .8s var(--ease),color .8s var(--ease);
}
a{color:inherit}
#atmos{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
#atmos::before{content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 55% at 18% -8%,var(--glow-a) 0%,transparent 62%),
    radial-gradient(ellipse 60% 45% at 88% 12%,var(--glow-b) 0%,transparent 58%),
    linear-gradient(180deg,var(--bg-lift) 0%,var(--bg-deep) 46%,var(--bg-deep) 100%);
}
.orb{position:absolute;border-radius:50%;filter:blur(46px);opacity:.55;
  animation:drift 26s var(--ease) infinite alternate}
.orb.o1{width:340px;height:340px;left:6%;top:12%;background:var(--glow-a)}
.orb.o2{width:220px;height:220px;right:9%;top:30%;background:var(--glow-b);animation-duration:34s;animation-delay:-9s}
.orb.o3{width:260px;height:260px;left:38%;bottom:-4%;background:var(--glow-a);opacity:.32;animation-duration:40s;animation-delay:-18s}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(48px,-36px) scale(1.12)}}
#rain{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
#rain i{position:absolute;top:-160px;width:1px;height:110px;
  background:linear-gradient(180deg,transparent,var(--rain) 42%,transparent);
  animation:fall linear infinite}
#rain i.far{width:1px;opacity:.4;animation-duration:2.6s!important;filter:blur(.6px)}
#rain i.near{width:1.5px;opacity:1;filter:blur(.2px)}
@keyframes fall{to{transform:translateY(112vh)}}
#fog{position:fixed;top:0;left:0;right:0;height:34vh;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,var(--glow-b) 0%,transparent 100%);opacity:.5}
#themeBtn{position:fixed;top:22px;right:24px;z-index:9;width:40px;height:40px;
  border-radius:50%;border:1px solid var(--glass-brd);background:var(--pill);
  color:var(--tx2);font-size:17px;cursor:pointer;
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:var(--shadow);transition:all .3s var(--ease)}
#themeBtn:hover{color:var(--acc-hi);border-color:var(--acc);transform:scale(1.08)}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* 共享顶栏（子页用） */
.topnav{position:fixed;top:0;left:0;right:0;z-index:8;
  display:flex;align-items:center;gap:18px;padding:14px 84px 14px 26px;
  background:var(--glass);border-bottom:1px solid var(--glass-brd-soft);
  backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2)}
.topnav .brand{font-family:var(--serif);font-size:20px;letter-spacing:.04em;text-decoration:none;color:var(--tx)}
.topnav .brand em{font-style:normal;color:var(--acc)}
.topnav .links{margin-left:auto;display:flex;gap:6px}
.topnav .links a{font-size:12.5px;letter-spacing:.1em;color:var(--mute);text-decoration:none;
  padding:6px 14px;border-radius:999px;transition:all .25s var(--ease)}
.topnav .links a:hover{color:var(--tx);background:var(--glass-strong)}
.topnav .links a.on{color:var(--acc-hi);background:var(--pill-on)}
/* 氛围浓度修饰：子页按需降雨 */
body.calm #rain i{opacity:.35}
body.calm .orb{opacity:.3}
/* 用户胶囊（boot.js 注入） */
.userpill{font-size:12.5px;letter-spacing:.06em;color:var(--acc-hi);padding:6px 14px;
  border-radius:999px;background:var(--pill-on);border:1px solid var(--glass-brd)}
.topnav .links a.logout:hover{color:var(--ember)}
/* 表单通用（login/admin） */
input.gin,select.gin{padding:12px 16px;border-radius:999px;border:1px solid var(--glass-brd-soft);
  background:var(--glass);color:var(--tx);font-family:var(--sans);font-size:14px;outline:none;
  transition:border-color .3s;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
input.gin:focus,select.gin:focus{border-color:var(--acc)}
.btn{padding:12px 30px;border-radius:999px;border:1px solid var(--glass-brd);
  background:var(--pill-on);color:var(--tx);font-size:14px;letter-spacing:.1em;cursor:pointer;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:all .3s var(--ease)}
.btn:hover{border-color:var(--acc);color:var(--acc-hi);transform:translateY(-1px)}
.btn.subtle{background:var(--pill);font-size:12.5px;padding:8px 18px}
.btn.danger{color:var(--ember);border-color:color-mix(in srgb,var(--ember) 40%,transparent)}
.err{color:var(--ember);font-size:12.5px;letter-spacing:.04em;min-height:18px;margin-top:10px}
