:root{
  --ls-bg:#faf4ee;
  --ls-bg-2:#f3e6db;
  --ls-paper:rgba(255,250,245,.82);
  --ls-line:rgba(179,155,139,.18);
  --ls-ink:#68584d;
  --ls-muted:#9a8779;
  --ls-accent:#d9b7a2;
  --ls-accent-soft:#f6e7d9;
  --ls-shadow:0 22px 52px rgba(182,154,136,.18);
  --ls-nav-safe:120px;
}

*{box-sizing:border-box}
html,body{margin:0;min-height:100%}

body.light-shell,
body.light-shell-tight{
  min-height:100vh;
  height:100dvh;
  position:relative;
  isolation:isolate;
  font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ls-ink);
  background:
    radial-gradient(circle at 15% 10%, rgba(244,228,216,.95), transparent 24%),
    radial-gradient(circle at 82% 18%, rgba(255,246,239,.95), transparent 22%),
    linear-gradient(160deg,#fffdfa 0%, var(--ls-bg) 46%, var(--ls-bg-2) 100%);
  overflow:hidden;
}

.mist,.mist::before,.mist::after{
  content:"";
  position:fixed;
  border-radius:999px;
  pointer-events:none;
  z-index:-1;
  filter:blur(12px);
}

.mist{width:180px;height:180px;left:-60px;top:20vh;background:rgba(233,209,193,.56)}
.mist::before{width:140px;height:140px;right:-280px;top:9vh;background:rgba(255,255,255,.88)}
.mist::after{width:160px;height:160px;left:220px;bottom:-58vh;background:rgba(244,228,216,.75)}

.shell,
.shell-tight{
  position:relative;
  z-index:1;
  width:min(100%,560px);
  margin:0 auto;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  padding-bottom:calc(var(--ls-nav-safe) + env(safe-area-inset-bottom, 0px));
}

.shell{padding-top:18px;padding-left:12px;padding-right:12px;gap:18px}
.shell-tight{padding-top:18px;padding-left:12px;padding-right:12px;gap:14px}

.top,
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand-copy strong,.header strong{display:block;font-size:1rem}
.brand-copy span,.header span{display:block;margin-top:3px;font-size:.82rem;color:var(--ls-muted)}

.mark{
  width:48px;
  height:48px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f3eee8 url('img/brand-avatar.png') center/cover no-repeat;
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 10px 20px rgba(196,167,147,.14);
  flex:0 0 auto;
  overflow:hidden;
  color:transparent;
  font-size:0;
  text-indent:-9999px;
}

.ghost-btn,
.back{
  min-height:40px;
  padding:0 12px;
  border-radius:14px;
  border:1px solid var(--ls-line);
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(12px);
  color:var(--ls-ink);
  font-size:.84rem;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}

.nav{
  position:fixed;
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  width:min(100% - 12px,520px);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  padding:10px 10px calc(10px + env(safe-area-inset-bottom,0px));
  border-radius:24px;
  background:rgba(255,250,246,.995);
  border:1px solid var(--ls-line);
  backdrop-filter:blur(16px);
  box-shadow:0 14px 28px rgba(182,154,136,.14);
  z-index:1000;
  overflow:hidden;
}

.nav-btn{
  border:0;
  background:transparent;
  border-radius:16px;
  min-height:58px;
  color:#a08d7f;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  font-size:.72rem;
  text-decoration:none;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}

.nav-btn.active{background:rgba(233,209,193,.34);color:#776457;font-weight:700}
.nav-ico{font-size:1.1rem}

@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
