@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&family=Rubik:wght@300;400;500;600;700&display=swap');

:root{
  --paper:#f5e6c8;
  --tan:#d4a574;
  --ink:#262117;
  --card:#fbf2e0;
  --soft:#6b573c;
  --line:#cbb08a;
  --deep:#8a4a22;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--paper);
  background-image:linear-gradient(180deg,#f8ecd4,#f2e2c2 55%,#eedbb7);
  color:var(--ink);
  font-family:Rubik,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  font-size:17px;
  line-height:1.8;
  overflow-x:hidden;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:60;
  pointer-events:none;
  opacity:.3;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.5'/%3E%3C/svg%3E");
  background-size:160px 160px;
}

body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:59;
  pointer-events:none;
  mix-blend-mode:soft-light;
  background:
    radial-gradient(circle at 90% 4%,rgba(212,165,116,.7),transparent 40%),
    radial-gradient(circle at 3% 78%,rgba(212,165,116,.5),transparent 38%),
    radial-gradient(circle at 55% 45%,rgba(255,247,228,.5),transparent 62%);
}

/* ---------- 页头 ---------- */
.mast{
  position:sticky;
  top:0;
  z-index:40;
  background:linear-gradient(#f8ecd4,#f0dfbe);
  border-bottom:2px solid var(--ink);
}

.mastIn{
  max-width:1180px;
  margin:0 auto;
  padding:10px 20px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
}

.navBox{position:relative;justify-self:start}
.navBoxEnd{justify-self:end}

.navBox summary{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:44px;
  padding:10px 15px;
  border:2px solid var(--ink);
  border-radius:10px;
  background:var(--card);
  font-family:Outfit,system-ui,sans-serif;
  font-weight:600;
  font-size:16px;
  letter-spacing:.12em;
  color:var(--ink);
  cursor:pointer;
  list-style:none;
  user-select:none;
  transition:background .18s ease,transform .18s ease;
}
.navBox summary::-webkit-details-marker{display:none}
.navBox summary::after{
  content:"";
  width:0;height:0;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
  border-top:6px solid var(--ink);
  transition:transform .2s ease;
}
.navBox summary:hover{transform:translateY(-1px)}
.navBox[open] summary{background:var(--tan)}
.navBox[open] summary::after{transform:rotate(180deg)}

.navBox menu{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  min-width:190px;
  margin:0;
  padding:8px;
  list-style:none;
  background:var(--card);
  border:2px solid var(--ink);
  border-radius:10px;
  z-index:45;
  animation:drop .18s ease both;
}
.navBoxEnd menu{left:auto;right:0}
.navBox menu li a{
  display:flex;
  align-items:center;
  min-height:42px;
  padding:8px 12px;
  border-radius:7px;
  color:var(--ink);
  text-decoration:none;
  font-size:16px;
}
.navBox menu li a:hover{background:var(--tan)}

@keyframes drop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

.brand{
  justify-self:center;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  font-family:Outfit,system-ui,sans-serif;
  font-weight:700;
  font-size:24px;
  letter-spacing:.06em;
  color:var(--ink);
  text-decoration:none;
}
.brandDot{
  width:16px;height:16px;
  flex:none;
  border:2px solid var(--ink);
  border-radius:50% 50% 50% 3px;
  background:var(--tan);
  transition:background .18s ease;
}
.brand:hover .brandDot{background:var(--ink)}

.mastRight{display:flex;align-items:center;gap:10px;justify-self:end}
.search{display:flex}
.search input{
  width:158px;
  min-height:44px;
  padding:9px 12px;
  font:inherit;
  font-size:16px;
  color:var(--ink);
  background:var(--card);
  border:2px solid var(--ink);
  border-radius:10px;
}
.search input::placeholder{color:var(--soft)}
.search input:focus{outline:2px solid var(--tan);outline-offset:1px}

/* ---------- 主区 ---------- */
main.page{
  max-width:1180px;
  margin:0 auto;
  padding:0 20px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 248px;
  gap:36px;
  align-items:start;
}

article{padding-bottom:44px;min-width:0}

article section{
  padding:34px 0;
  border-top:2px dashed var(--line);
  scroll-margin-top:132px;
  animation:fadeUp .6s cubic-bezier(.2,.7,.3,1) both;
}
article section:nth-of-type(2){animation-delay:.05s}
article section:nth-of-type(3){animation-delay:.1s}
article section:nth-of-type(4){animation-delay:.15s}
article section:nth-of-type(5){animation-delay:.2s}
article section:nth-of-type(6){animation-delay:.25s}
article section:nth-of-type(7){animation-delay:.3s}
article section:nth-of-type(8){animation-delay:.35s}

@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- 首屏 ---------- */
.hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:32px;
  align-items:center;
  min-height:70vh;
  padding:56px 0 44px;
  border-top:0;
  position:relative;
  isolation:isolate;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:14px;
  opacity:.6;
  background-image:radial-gradient(var(--line) 1.2px,transparent 1.2px);
  background-size:16px 16px;
  -webkit-mask-image:linear-gradient(120deg,#000 55%,transparent 96%);
  mask-image:linear-gradient(120deg,#000 55%,transparent 96%);
}

.heroTag{
  margin:0 0 14px;
  font-family:Outfit,system-ui,sans-serif;
  font-size:16px;
  font-weight:600;
  letter-spacing:.28em;
  color:var(--soft);
}
.heroTag span{display:inline-block;padding-bottom:3px;border-bottom:3px solid var(--tan)}

h1{
  margin:0 0 18px;
  font-family:Outfit,system-ui,sans-serif;
  font-weight:700;
  font-size:clamp(30px,5vw,52px);
  line-height:1.22;
  letter-spacing:-.01em;
}

.lead{
  margin:0;
  max-width:44ch;
  font-size:18px;
  color:var(--soft);
}

.polaroid{
  margin:0;
  padding:12px 12px 46px;
  min-height:220px;
  border:2px solid var(--ink);
  border-radius:10px;
  background:linear-gradient(140deg,#e9cfa6,#f8e8c9);
  box-shadow:7px 7px 0 rgba(38,33,23,.14);
  transform:rotate(-1.8deg);
  position:relative;
  overflow:hidden;
  animation:floaty 7.5s ease-in-out infinite;
}
.polaroid img{
  display:block;
  width:100%;
  height:auto;
  border-radius:6px;
  filter:sepia(.2) contrast(1.05) saturate(.82);
}
.polaroid::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,transparent 40%,rgba(255,244,214,.75) 52%,transparent 62%);
  animation:leak 9s ease-in-out infinite;
}
.polaroidBare::before{
  content:"";
  position:absolute;
  inset:12px 12px 46px;
  border-radius:6px;
  background:
    radial-gradient(circle at 30% 30%,rgba(255,255,255,.5),transparent 55%),
    repeating-linear-gradient(90deg,rgba(38,33,23,.13) 0 2px,transparent 2px 6px);
}

@keyframes floaty{0%,100%{transform:rotate(-1.8deg) translateY(0)}50%{transform:rotate(-1.8deg) translateY(-7px)}}
@keyframes leak{0%,100%{transform:translateX(-8%)}50%{transform:translateX(8%)}}

/* ---------- 正文排版 ---------- */
article h2{
  display:flex;
  align-items:baseline;
  gap:12px;
  margin:0 0 14px;
  font-family:Outfit,system-ui,sans-serif;
  font-weight:700;
  font-size:clamp(23px,3.3vw,31px);
  line-height:1.3;
}
article h2 span{position:relative;padding-left:18px}
article h2 span::before{
  content:"";
  position:absolute;
  left:0;
  top:.3em;
  width:6px;
  height:.86em;
  border-radius:2px;
  background:var(--tan);
}

article h3{
  margin:26px 0 10px;
  font-family:Outfit,system-ui,sans-serif;
  font-weight:600;
  font-size:21px;
  line-height:1.35;
}
article h3 span{position:relative;padding-left:14px}
article h3 span::before{
  content:"";
  position:absolute;
  left:0;top:.35em;
  width:5px;height:.8em;
  border-radius:2px;
  background:var(--line);
}

article p{margin:0 0 16px;max-width:70ch}
article a{color:var(--deep);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
article a:hover{background:rgba(212,165,116,.45)}
article strong{color:#4a3a24}
article ul,article ol{max-width:70ch;padding-left:22px;margin:0 0 16px}
article li{margin:6px 0}
article blockquote{
  margin:22px 0;
  padding:14px 18px;
  border-left:6px solid var(--tan);
  border-radius:0 10px 10px 0;
  background:var(--card);
}
article blockquote p:last-child{margin-bottom:0}
article img{
  max-width:100%;
  height:auto;
  border:2px solid var(--ink);
  border-radius:10px;
  filter:sepia(.15) contrast(1.03) saturate(.9);
}
article figure{margin:22px 0}
article hr{border:0;border-top:2px dashed var(--line);margin:26px 0}
article table{
  display:block;
  overflow-x:auto;
  margin:0 0 18px;
  border-collapse:collapse;
  font-size:16px;
}
article th,article td{border:1px solid var(--line);padding:9px 11px;text-align:left}
article th{background:var(--card);font-weight:600}
article code{
  font-family:"SFMono-Regular",Consolas,monospace;
  font-size:.94em;
  padding:2px 5px;
  border-radius:5px;
  background:rgba(38,33,23,.09);
}
article pre{
  overflow-x:auto;
  padding:14px 16px;
  border:2px solid var(--ink);
  border-radius:10px;
  background:var(--card);
  font-size:16px;
}
article pre code{background:none;padding:0}
article time{color:var(--soft);font-variant-numeric:tabular-nums}
article div > *:last-child{margin-bottom:0}

/* ---------- 侧栏 ---------- */
aside{
  position:sticky;
  top:132px;
  align-self:start;
  margin:56px 0 40px;
  padding:16px 16px 14px;
  background:var(--card);
  border:2px solid var(--ink);
  border-radius:10px;
}
.asideTitle{
  margin:0 0 8px;
  font-family:Outfit,system-ui,sans-serif;
  font-size:17px;
  font-weight:600;
  letter-spacing:.18em;
  color:var(--soft);
}
.asideTitle span{display:inline-block;padding-bottom:3px;border-bottom:3px solid var(--tan)}
.toc{list-style:none;margin:6px 0 0;padding:0}
.toc li a{
  display:flex;
  align-items:center;
  min-height:42px;
  padding:8px 8px;
  border-bottom:1px dotted var(--line);
  color:var(--ink);
  text-decoration:none;
  font-size:16px;
}
.toc li:last-child a{border-bottom:0}
.toc li a:hover{background:var(--tan);border-radius:8px}
.top{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  margin-top:10px;
  padding:8px 12px;
  border:2px solid var(--ink);
  border-radius:8px;
  color:var(--ink);
  font-size:16px;
  text-decoration:none;
}
.top:hover{background:var(--tan)}

/* ---------- 页脚 ---------- */
.foot{
  max-width:1180px;
  margin:16px auto 0;
  padding:34px 20px 26px;
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:20px;
  align-items:start;
  border-top:2px solid var(--ink);
  background:linear-gradient(#f7ead0,#efdcb9);
}
.footCta{
  margin:0;
  font-family:Outfit,system-ui,sans-serif;
  font-weight:700;
  font-size:clamp(22px,3vw,30px);
  line-height:1.3;
}
.footCta a{
  display:inline-block;
  padding:6px 0 3px;
  color:var(--ink);
  text-decoration:none;
  border-bottom:4px solid var(--tan);
}
.footCta a:hover{border-bottom-color:var(--ink)}
.footCol{margin:0}
.footCol a{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:8px 0;
  color:var(--soft);
  font-size:16px;
  text-decoration:none;
}
.footCol a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.copy{
  grid-column:1/-1;
  display:block;
  padding-top:14px;
  border-top:1px dashed var(--line);
  text-align:center;
  font-size:16px;
  color:var(--soft);
}

/* ---------- 断点 ---------- */
@media (max-width:900px){
  main.page{grid-template-columns:minmax(0,1fr);gap:0}
  aside{position:static;margin:8px 0 36px}
}

@media (max-width:780px){
  body{font-size:17px}
  .mast{position:static}
  .mastIn{grid-template-columns:1fr 1fr;padding:10px 14px;gap:8px}
  .brand{grid-column:1/-1;order:-1;justify-self:center;font-size:22px}
  .mastRight{display:contents}
  .navBox{justify-self:stretch}
  .navBoxEnd{justify-self:stretch}
  .navBox summary{width:100%;justify-content:center}
  .navBoxEnd menu{right:0;left:auto}
  .search{grid-column:1/-1}
  .search input{width:100%}
  .hero{grid-template-columns:minmax(0,1fr);min-height:0;padding:32px 0 26px;gap:24px}
  .polaroid{max-width:280px}
  article div{padding:26px 0;scroll-margin-top:20px}
  .foot{grid-template-columns:1fr 1fr;padding:26px 14px 22px}
  .footCta{grid-column:1/-1}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}

button[aria-expanded]{min-width:44px;min-height:44px}
