/* ============================================================
   Sora 自托管（可变字重 100-800，一个文件管全部）
   Bricks 原本挂 https://fonts.googleapis.com/css2?family=Sora:wght@100..800
   的 render-blocking 外链，大陆访问不了会一直等字体白屏。
   外链已在 functions.php 里 dequeue，字体文件在 ./fonts/，共 37KB。
   ============================================================ */
@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;
  src:url(./fonts/sora-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Sora;font-style:normal;font-weight:100 800;font-display:swap;
  src:url(./fonts/sora-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* Global fixes that can't go in Bricks custom CSS */

/* Body overflow prevention */
html, body { overflow-x: hidden; max-width: 100vw; }
*, *::before, *::after { box-sizing: border-box; }

/* ===== 共用手写头尾（parts/site-header.php + site-footer.php） ===== */
.wug-header{background:#fafafa;box-shadow:0 .5px 3px .5px rgba(20,20,20,.06);position:sticky;top:0;z-index:50}
.wug-header-inner{max-width:1400px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap}
.wug-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;line-height:1;color:var(--wug-fg-strong)}
.wug-logo-mark{width:32px;height:32px;flex:0 0 auto;display:block}
.wug-logo-text{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:19px;font-weight:700;color:#363636;letter-spacing:.5px}
.wug-logo:hover .wug-logo-text{color:var(--wug-accent)}
.wug-footer .wug-logo-mark{width:44px;height:44px;display:block;margin-bottom:14px}
.wug-nav{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center}
.wug-nav a{font-size:14px;color:#363636;text-decoration:none;font-weight:500;padding:4px 0;border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease}
.wug-nav a:hover,.wug-nav a:focus-visible{color:#fa7c14;border-bottom-color:#fa7c14}
.wug-footer{background:#1c1c1c;color:#fff;padding:45px 0;margin-top:40px}
.wug-footer-inner{max-width:1400px;margin:0 auto;padding:0 20px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
.wug-footer h4{font-size:14px;font-weight:700;margin:0 0 16px;color:#fff}
.wug-about p{font-size:14px;color:rgba(255,255,255,.7);line-height:1.7;margin:0}
.wug-footer nav a{display:block;font-size:14px;color:rgba(255,255,255,.7);text-decoration:none;margin-bottom:8px;transition:color .2s ease}
.wug-footer nav a:hover{color:#fa7c14}
.wug-foot-note{max-width:1400px;margin:20px auto 0;padding:15px 20px 0;border-top:1px solid rgba(255,255,255,.1);text-align:center;font-size:12px;color:rgba(255,255,255,.4)}
@media(max-width:900px){.wug-footer-inner{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.wug-footer-inner{grid-template-columns:1fr}}

/* ============================================================
   设计阶梯（tastskill 审计后重做）
   shell 1120 / 阅读列 65ch / 侧距 clamp(20px,4vw,40px)
   ============================================================ */
:root{
  /* 宽度阶梯 */
  --wug-shell:1120px;
  --wug-read:65ch;
  --wug-gutter:clamp(20px, 4vw, 40px);
  /* 形状：卡 14 / 交互件 10 / 药丸 999（成文规则，全站一致） */
  --wug-r-card:14px;
  --wug-r-btn:10px;
  /* 色板 · 亮 */
  --wug-accent:#fa7c14;
  --wug-accent-strong:#e36b06;
  --wug-accent-tint:#faf7f4;
  --wug-accent-tint-2:#f6efe7;
  --wug-bg:#ffffff;
  --wug-bg-alt:#fafafa;
  --wug-bg-elev:#faf7f4;
  --wug-fg:#363636;
  --wug-fg-strong:#1a1a1a;
  --wug-fg-muted:#5c5c5c;
  --wug-fg-faint:#6f6f6f;      /* 4.5 需 ≥4.5：#9a9a9a 只有 2.81 */
  --wug-accent-text:#b65a0e;   /* 橙字压白底只有 2.64，深一档到 4.71 */
  --wug-accent-mark:#e06a05;   /* 标识里的「集装箱」：#fa7c14 在亮页头上仅 2.53，低于图形 3:1 要求 */
  --wug-rule:#e6e6e6;
  --wug-rule-strong:#1a1a1a;
  --wug-header-bg:#fafafa;
  --wug-footer-bg:#1c1c1c;
  --wug-code-bg:#f4f2f0;
  --wug-shadow:0 12px 28px rgba(20,20,20,.10);
  --wug-art-filter:none;
}
/* 暗色：跟随系统，或被手动开关覆盖 */
@media (prefers-color-scheme: dark){
  :root:not([data-wug-theme="light"]){
    --wug-bg:#141414;
    --wug-bg-alt:#1b1b1b;
    --wug-bg-elev:#1f1f1f;
    --wug-fg:#e8e6e3;
    --wug-fg-strong:#f4f2f0;
    --wug-fg-muted:#bcb8b3;
    --wug-fg-faint:#a8a49e;
    --wug-accent-text:#fa7c14;  /* 暗底上品牌橙本身就有 6.98 */
    --wug-accent-mark:#fa7c14;
    --wug-rule:#2e2e2e;
    --wug-rule-strong:#f4f2f0;
    --wug-header-bg:#191919;
    --wug-footer-bg:#0f0f0f;
    --wug-code-bg:#232323;
    --wug-accent-tint:#241d16;
    --wug-accent-tint-2:#2b221a;
    --wug-shadow:0 12px 28px rgba(0,0,0,.5);
    /* 黑色线稿插画在暗底会消失：反亮度但保住橙色色相 */
    --wug-art-filter:invert(1) hue-rotate(180deg);
  }
}
:root[data-wug-theme="dark"]{
  --wug-bg:#141414; --wug-bg-alt:#1b1b1b; --wug-bg-elev:#1f1f1f;
  --wug-fg:#e8e6e3; --wug-fg-strong:#f4f2f0; --wug-fg-muted:#b5b1ac; --wug-fg-faint:#8a8681;
  --wug-rule:#2e2e2e; --wug-rule-strong:#f4f2f0; --wug-header-bg:#191919; --wug-footer-bg:#0f0f0f;
  --wug-code-bg:#232323; --wug-accent-tint:#241d16; --wug-accent-tint-2:#2b221a;
  --wug-shadow:0 12px 28px rgba(0,0,0,.5);
  --wug-art-filter:invert(1) hue-rotate(180deg);
}
html,body{background:var(--wug-bg);color:var(--wug-fg)}
#brx-content{color:var(--wug-fg)}
/* Bricks 元素默认继承 body 色，这里只补它写死过的少数几处 */
.brxe-heading,.brxe-text-basic,.brxe-button{color:inherit}
/* 黑色线稿插画 / 图标 / 装饰 blob */
#brxe-iwpmjb,#brxe-fgbuks,#brxe-yjgrpu,#brxe-ejptch,#brxe-kmwjso,
#brxe-hpicwk,#brxe-halyjt,#brxe-hyfvul,#brxe-klsdth{filter:var(--wug-art-filter)}
/* 分类卡外框与内衬跟随 token */
.wug-tile{border-color:var(--wug-rule)}
.wug-tile:hover{box-shadow:var(--wug-shadow)}
.wug-card-glow{background:var(--wug-bg)}
/* 步骤顶边线 */
.wug-step{border-top-color:var(--wug-rule-strong)}
.wug-step:hover{background:var(--wug-accent-tint)}
/* 页头 / 页脚 */
.wug-header{background:var(--wug-header-bg);box-shadow:0 .5px 3px .5px rgba(0,0,0,.10)}
.wug-logo-text,.wug-nav a{color:var(--wug-fg-strong)}
.wug-nav a:hover{color:var(--wug-accent)}
.wug-nav-btn{border-color:var(--wug-rule);color:var(--wug-fg-strong)}
.wug-footer{background:var(--wug-footer-bg)}
/* 主题开关 */
.wug-theme-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
  background:none;border:1px solid var(--wug-rule);border-radius:var(--wug-r-btn);
  color:var(--wug-fg-strong);cursor:pointer;padding:0;flex:0 0 auto}
.wug-theme-btn:hover{border-color:var(--wug-accent);color:var(--wug-accent)}
.wug-theme-btn svg{width:18px;height:18px;display:block}
.wug-theme-btn .i-moon{display:none}
:root[data-wug-theme="dark"] .wug-theme-btn .i-moon,
.wug-theme-btn.is-dark .i-moon{display:block}
:root[data-wug-theme="dark"] .wug-theme-btn .i-sun{display:none}
@media (prefers-color-scheme: dark){
  :root:not([data-wug-theme="light"]) .wug-theme-btn .i-moon{display:block}
  :root:not([data-wug-theme="light"]) .wug-theme-btn .i-sun{display:none}
}
/* 代码块在暗色下与页面同调 */
.wug-prose pre{background:#0f0f0f;color:#f2f2f2}
.wug-prose code{background:var(--wug-code-bg);color:var(--wug-fg-strong)}
/* 图片在暗色下压一点亮度，避免"贴纸感" */
.wug-prose img,.wug-rel-card img{filter:brightness(.92)}
@media (prefers-color-scheme: dark){ :root:not([data-wug-theme="light"]) .wug-prose img{filter:brightness(.88)} }

.wug-shell{width:100%;max-width:var(--wug-shell);margin-inline:auto;padding-inline:var(--wug-gutter)}

/* ---------- 页头：单行 + 移动汉堡 ---------- */
.wug-header-inner{max-width:var(--wug-shell);padding-inline:var(--wug-gutter);flex-wrap:nowrap;gap:16px}
.wug-nav{gap:4px 22px;flex-wrap:nowrap}
.wug-nav-toggle{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.wug-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wug-header-tools{display:flex;align-items:center;gap:10px;margin-left:auto;order:2}
.wug-nav-btn{display:none;position:relative;align-items:center;justify-content:center;
  width:40px;height:36px;background:none;border:1px solid var(--wug-rule);border-radius:var(--wug-r-btn);
  color:var(--wug-fg-strong);cursor:pointer}
.wug-nav-btn::before,.wug-nav-btn::after{content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;
  margin:-1px 0 0 -8px;background:currentColor;transition:transform .2s ease,box-shadow .2s ease}
.wug-nav-btn::before{box-shadow:0 -5px 0 currentColor,0 5px 0 currentColor}
.wug-nav-btn::after{transform:rotate(90deg) scaleX(0)}
.wug-nav-toggle:focus-visible ~ .wug-header-tools .wug-nav-btn{outline:2px solid var(--wug-accent);outline-offset:2px}
@media(max-width:1180px){.wug-nav{gap:4px 15px}}
/* 导航在 960 以下装不下单行（tastskill §4.7：装不下就收进汉堡） */
@media(max-width:960px){
  .wug-header-inner{flex-wrap:wrap}
  .wug-nav{display:none;width:100%;order:3;flex-direction:column;align-items:stretch;gap:0;
    border-top:1px solid var(--wug-rule);margin-top:6px;padding-top:2px}
  .wug-nav{text-align:left}
  .wug-nav a{padding:12px 4px;border-bottom:1px solid var(--wug-rule);font-size:15px}
  .wug-nav a:last-child{border-bottom:0}
  .wug-nav a:hover{border-bottom-color:var(--wug-rule);color:var(--wug-accent)}
  .wug-nav-btn{display:inline-flex}
  .wug-nav-toggle:checked ~ .wug-nav{display:flex}
  .wug-nav-toggle:checked ~ .wug-header-tools .wug-nav-btn::before{box-shadow:none;transform:rotate(45deg)}
  .wug-nav-toggle:checked ~ .wug-header-tools .wug-nav-btn::after{transform:rotate(-45deg) scaleX(1)}
}

/* ---------- 页脚 ---------- */
.wug-footer-inner{max-width:var(--wug-shell);padding-inline:var(--wug-gutter);gap:28px}
.wug-foot-note{max-width:var(--wug-shell);padding-inline:var(--wug-gutter)}

/* ============================================================
   文章列表 / 单篇 / 搜索 / 404（子主题模板，非 Bricks 页）
   ============================================================ */
.wug-listing,.wug-single,.wug-404{background:var(--wug-bg)}
.wug-list-head{padding:64px 0 28px;border-bottom:1px solid var(--wug-rule)}
.wug-list-title{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:40px;font-weight:700;color:var(--wug-fg-strong);margin:0 0 8px;line-height:1.2}
.wug-list-count{margin:0;font-size:14px;color:var(--wug-fg-faint)}
.wug-list{display:flex;flex-direction:column}
.wug-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:2px 24px;align-items:start;
  padding:22px 0;border-bottom:1px solid var(--wug-rule);text-decoration:none;color:inherit;
  transition:background-color .18s ease}
.wug-row:hover{background:var(--wug-accent-tint)}
.wug-row-date{grid-column:1;grid-row:1/3;font-size:13px;color:var(--wug-fg-faint);line-height:1.6;padding-top:5px}
.wug-row-title{grid-column:2;grid-row:1;font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:20px;font-weight:700;color:var(--wug-fg-strong);
  margin:0 0 6px;line-height:1.35;transition:color .18s ease}
.wug-row:hover .wug-row-title{color:var(--wug-accent)}
.wug-row-excerpt{grid-column:2;grid-row:2;margin:0 0 8px;font-size:14px;line-height:1.75;color:var(--wug-fg-muted);max-width:var(--wug-read)}
.wug-row-meta{grid-column:2;grid-row:3;font-size:12.5px;color:var(--wug-fg-faint)}
/* Bricks query loop 的无结果提示 */
.bricks-posts-nothing-found{padding:26px 0;border-bottom:1px solid var(--wug-rule);font-size:15px;line-height:1.8;color:var(--wug-fg-muted)}
.wug-listing .navigation{margin:32px 0 72px}
.wug-listing .nav-links{display:flex;gap:8px;flex-wrap:wrap;font-size:14px}
.wug-listing .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;
  padding:0 12px;border:1px solid var(--wug-rule);border-radius:var(--wug-r-btn);color:var(--wug-fg-muted);text-decoration:none;
  transition:all .18s ease}
.wug-listing .page-numbers:hover{border-color:var(--wug-accent);color:var(--wug-accent)}
.wug-listing .page-numbers.current{background:var(--wug-accent);border-color:var(--wug-accent);color:#fff}

/* 搜索框 */
.wug-search{display:flex;gap:10px;margin-top:18px;max-width:520px}
.wug-search input{flex:1;min-width:0;padding:11px 14px;font:inherit;font-size:15px;color:var(--wug-fg-strong);background:var(--wug-bg);
  border:1px solid var(--wug-rule);border-radius:var(--wug-r-btn)}
.wug-search input:focus{outline:2px solid var(--wug-accent);outline-offset:1px;border-color:var(--wug-accent)}
.wug-search button{padding:11px 20px;font:inherit;font-size:15px;font-weight:700;color:#fff;background:var(--wug-accent);
  border:1px solid var(--wug-accent);border-radius:var(--wug-r-btn);cursor:pointer}
.wug-search button:hover{background:#e36b06}

/* 空状态 */
.wug-empty{padding:72px 0 96px;text-align:center}
.wug-empty svg{margin-bottom:18px}
.wug-empty p{font-size:16px;color:var(--wug-fg-muted);margin:0 0 22px}
.wug-empty-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* 单篇 */
.wug-art-head{padding:60px 0 26px;border-bottom:1px solid var(--wug-rule)}
.wug-art-cats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.wug-art-cats a{font-size:12.5px;font-weight:600;color:var(--wug-accent);text-decoration:none;
  border:1px solid var(--wug-rule);border-radius:999px;padding:4px 12px;transition:all .18s ease}
.wug-art-cats a:hover{border-color:var(--wug-accent);background:var(--wug-accent-tint)}
.wug-art-title{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:38px;font-weight:700;color:var(--wug-fg-strong);
  line-height:1.25;margin:0 0 12px;max-width:22ch}
.wug-art-meta{margin:0;font-size:13.5px;color:var(--wug-fg-faint)}
.wug-art-body{padding:40px 0 8px}
.wug-prose{max-width:var(--wug-read);font-size:16.5px;line-height:1.95;color:var(--wug-fg)}
.wug-prose h2{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:25px;color:var(--wug-fg-strong);margin:44px 0 14px;line-height:1.35}
.wug-prose h3{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:20px;color:var(--wug-fg-strong);margin:32px 0 10px}
.wug-prose p{margin:0 0 20px}
.wug-prose ul,.wug-prose ol{margin:0 0 22px;padding-left:22px}
/* tailwind preflight 把 list-style 清成 none，正文列表必须显式恢复 */
.wug-prose ul{list-style:disc}
.wug-prose ol{list-style:decimal}
.wug-prose li::marker{color:var(--wug-accent-text)}
.wug-prose li{margin-bottom:8px}
.wug-prose a{color:var(--wug-accent);text-decoration:underline;text-underline-offset:2px}
.wug-prose img{max-width:100%;height:auto;border-radius:var(--wug-r-card)}
.wug-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;
  padding:2px 6px;border-radius:5px}
/* 颜色交给上面「代码块在暗色下与页面同调」那组规则；这里不能再写 background:
   var(--wug-fg-strong) —— 暗色下它变成近白色，与 #f2f2f2 的字撞成白底白字 */
.wug-prose pre{padding:18px 20px;border-radius:var(--wug-r-card);overflow:auto;line-height:1.7}
.wug-prose pre code{background:none;color:inherit;padding:0}
.wug-prose blockquote{margin:26px 0;padding:2px 0 2px 20px;border-left:3px solid var(--wug-accent);color:var(--wug-fg-muted)}
.wug-prose hr{border:0;border-top:1px solid var(--wug-rule);margin:36px 0}
.wug-prose table{width:100%;border-collapse:collapse;margin:0 0 24px;font-size:15px}
.wug-prose th,.wug-prose td{border-bottom:1px solid var(--wug-rule);padding:10px 12px;text-align:left}
.wug-prose th{font-weight:700;color:var(--wug-fg-strong)}

.wug-art-nav{padding:28px 0 8px}
.wug-art-nav .wug-shell{display:flex;gap:18px;flex-wrap:wrap}
.wug-navlink{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:4px;text-decoration:none;
  padding:16px 18px;border:1px solid var(--wug-rule);border-radius:var(--wug-r-card);transition:all .18s ease}
.wug-navlink:hover{border-color:var(--wug-accent);background:var(--wug-accent-tint)}
.wug-navlink--next{text-align:right;align-items:flex-end}
.wug-navlink span{font-size:12.5px;color:var(--wug-fg-faint)}
.wug-navlink strong{font-size:15.5px;color:var(--wug-fg-strong);font-weight:700;line-height:1.45}
.wug-rel{padding:56px 0 8px}
.wug-rel-title{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:14px;font-weight:700;color:var(--wug-fg-faint);
  letter-spacing:1.5px;margin:0 0 18px}
.wug-rel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.wug-rel-card{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--wug-rule);
  border-radius:var(--wug-r-card);text-decoration:none;color:inherit;transition:all .18s ease}
.wug-rel-card:hover{border-color:var(--wug-accent);transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,20,20,.07)}
.wug-rel-card h3{font-size:17px;font-weight:700;color:var(--wug-fg-strong);margin:0;line-height:1.4}
.wug-rel-card:hover h3{color:var(--wug-accent)}
.wug-rel-card p{margin:0;font-size:14px;line-height:1.7;color:var(--wug-fg-muted)}
.wug-rel-card span{margin-top:auto;font-size:12.5px;color:var(--wug-fg-faint)}
/* ===== 评论区（Bricks 提供 markup：.bricks-comments-inner / .form-group / #submit.bricks-button） ===== */
.wug-comments{padding:8px 0 8px}
/* shell 保持 1120 居中（左边缘与正文同为 200），阅读列宽度放在内层 */
.wug-comments .wug-shell>#comments,.wug-comments .bricks-comments-inner{max-width:var(--wug-read)}
.comments-area{padding:48px 0 0;border-top:1px solid var(--wug-rule)}
.comments-title,.comment-reply-title{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:22px;
  font-weight:700;color:var(--wug-fg-strong);margin:0 0 4px;line-height:1.4}
.comment-form,.comment-form>p{margin:0}
.comment-form{display:flex;flex-direction:column;gap:20px;margin-top:22px}
.comment-form .form-group{display:flex;flex-direction:column;gap:6px}
.comment-form label,.comment-form .form-group>label{font-size:14px;font-weight:600;color:var(--wug-fg);letter-spacing:.01em}
.comment-form .required{color:var(--wug-accent-text);font-weight:700}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],
.comment-form textarea{width:100%;max-width:440px;padding:11px 13px;font:inherit;font-size:15px;line-height:1.5;
  color:var(--wug-fg-strong);background:var(--wug-bg);border:1px solid var(--wug-rule);border-radius:var(--wug-r-btn);
  transition:border-color .18s ease,box-shadow .18s ease}
.comment-form textarea{max-width:none;min-height:148px;resize:vertical;line-height:1.75}
.comment-form input::placeholder,.comment-form textarea::placeholder{color:var(--wug-fg-faint)}
.comment-form input:hover,.comment-form textarea:hover{border-color:var(--wug-fg-faint)}
.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--wug-accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--wug-accent) 22%,transparent)}
.comment-form input:user-invalid,.comment-form textarea:user-invalid{border-color:#b3261e;
  box-shadow:0 0 0 3px color-mix(in srgb,#b3261e 18%,transparent)}
@supports not selector(:user-invalid){
  .comment-form input:not(:placeholder-shown):invalid,.comment-form textarea:not(:placeholder-shown):invalid{border-color:#b3261e}
}
/* 给没有 placeholder 的字段补上，避免兜底规则在空白表单上误报 */
.comment-form input:placeholder-shown,.comment-form textarea:placeholder-shown{color:var(--wug-fg-strong)}
.comment-form .comment-form-cookies-consent{flex-direction:row;align-items:flex-start;gap:10px;
  max-width:520px;align-self:flex-start;margin:0;text-align:left}
.comment-form .comment-form-cookies-consent input[type=checkbox]{width:17px;height:17px;margin:2px 0 0;
  accent-color:var(--wug-accent);flex:0 0 auto}
.comment-form .comment-form-cookies-consent label{font-size:14px;font-weight:400;color:var(--wug-fg-muted);line-height:1.6}
.comment-form p.form-submit{margin:2px 0 0}
#submit,.comment-form .bricks-button,.comment-form input[type=submit]{display:inline-flex;align-items:center;justify-content:center;
  padding:12px 26px;font:inherit;font-size:15px;font-weight:700;cursor:pointer;
  color:#1a1a1a !important;background:var(--wug-accent);border:1px solid var(--wug-accent);border-radius:var(--wug-r-btn);
  transition:background-color .18s ease,border-color .18s ease,transform .1s ease}
#submit:hover,.comment-form .bricks-button:hover{background:var(--wug-accent-strong);border-color:var(--wug-accent-strong)}
#submit:active,.comment-form .bricks-button:active{transform:translateY(1px)}
#submit:focus-visible,.comment-form .bricks-button:focus-visible{outline:2px solid var(--wug-accent-text);outline-offset:2px}
.comment-notes,.logged-in-as{font-size:13.5px;color:var(--wug-fg-faint);margin:0}
.comment-form .required-field-message,.comment-form .guidelines{display:none}

/* 评论列表（Bricks 结构：.comment-body > .comment-avatar + .comment-data > .comment-author/.comment-content） */
#comments{padding:48px 0 0;border-top:1px solid var(--wug-rule)}
.comments-title{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:22px;font-weight:700;
  color:var(--wug-fg-strong);margin:0 0 6px;line-height:1.4}
.comment-list{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.comment-list .comment{list-style:none}
.comment-body{display:flex;gap:14px;align-items:flex-start;padding:18px 0;border-bottom:1px solid var(--wug-rule)}
.comment-avatar{flex:0 0 auto}
.comment-avatar .avatar{width:34px;height:34px;border-radius:50%;display:block}
.comment-data{flex:1 1 auto;min-width:0}
.comment-author .fn{font-family:inherit;font-size:15px;font-weight:700;color:var(--wug-fg-strong);margin:0;line-height:1.4}
.comment-author .url{color:inherit;text-decoration:none}
.comment-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--wug-fg-faint);margin:2px 0 8px}
.comment-meta a{color:inherit;text-decoration:none}
.comment-meta a:hover{color:var(--wug-accent-text);text-decoration:underline}
.comment-content{font-size:15px;line-height:1.85;color:var(--wug-fg)}
.comment-content p{margin:0 0 10px}
.comment-content p:last-child{margin-bottom:0}
.comment-content a{color:var(--wug-accent-text);text-decoration:underline;text-underline-offset:2px}
.comment-list .reply{margin:0}
.comment-reply-link{display:inline-block;font-size:13px;font-weight:600;color:var(--wug-accent-text);
  text-decoration:none;border:1px solid var(--wug-rule);border-radius:var(--wug-r-btn);padding:4px 11px;
  transition:border-color .18s ease}
.comment-reply-link:hover{border-color:var(--wug-accent-text)}
.comment-list ol.children,.comment-list ul.children{list-style:none;margin:6px 0 0 17px;padding:0 0 0 20px;border-left:1px solid var(--wug-rule)}
li.bypostauthor>.comment-body .fn::after,li.byuser>.comment-body .fn::after{content:"作者";
  display:inline-block;margin-left:8px;font-size:11px;font-weight:700;letter-spacing:.06em;vertical-align:2px;
  color:var(--wug-accent-text);background:var(--wug-accent-tint);border-radius:999px;padding:2px 8px}
.comment-respond{margin-top:26px}
.comment-reply-title{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:19px;font-weight:700;
  color:var(--wug-fg-strong);margin:0 0 2px}
.comment-reply-title small{font-size:14px;font-weight:400}
.comment-reply-title small a{color:var(--wug-fg-muted);text-decoration:none;margin-left:8px}
.comment-reply-title small a:hover{color:var(--wug-accent-text)}
.logged-in-as{font-size:13.5px;color:var(--wug-fg-faint);margin:0 0 4px}
.comment-form .comment-form-author,.comment-form .comment-form-email{max-width:440px}
.comment-list .comment-awaiting-moderation{font-size:13.5px;color:var(--wug-accent-text);margin:0 0 8px}

@media(max-width:767px){
  .wug-comments .wug-shell>#comments,.wug-comments .bricks-comments-inner{max-width:none}
  .comment-body{gap:11px}
  .comment-avatar .avatar{width:28px;height:28px}
  .comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],
  .comment-form textarea{max-width:none}
  .comment-list ol.children,.comment-list ul.children{margin-left:0;padding-left:14px}
  .comments-area{padding-top:36px}
}

/* 404 */
.wug-404{padding:96px 0 110px;text-align:center}
.wug-404 svg{margin-bottom:22px}
.wug-404 h1{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:38px;color:var(--wug-fg-strong);margin:0 0 10px}
.wug-404 p{font-size:16px;color:var(--wug-fg-muted);margin:0 0 26px}
.wug-404-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.wug-404 .wug-search{margin:26px auto 0}

@media(max-width:767px){
  .wug-list-head{padding:40px 0 20px}
  .wug-list-title{font-size:29px}
  .wug-row{grid-template-columns:minmax(0,1fr) !important;gap:3px;padding:18px 0}
  .wug-row-date{grid-column:1;grid-row:3;padding-top:2px}
  .wug-row-title{grid-column:1;grid-row:1}
  .wug-row-excerpt{grid-column:1;grid-row:2}
  .wug-row-meta{grid-column:1;grid-row:4}
  .wug-art-title{font-size:27px}
  .wug-art-head{padding:36px 0 20px}
  .wug-prose{font-size:16px;line-height:1.9}
  .wug-rel-grid{grid-template-columns:minmax(0,1fr)}
  .wug-404{padding:56px 0 72px}
  .wug-404 h1{font-size:29px}
}

/* ===== 主/次按钮（全站共用：首页 hero、分类页 hero、空状态、404） ===== */
.btn-hero-primary,.btn-hero-ghost,.btn-blog-all{display:inline-flex !important;align-items:center;justify-content:center;
  text-decoration:none !important;border-radius:var(--wug-r-btn);padding:12px 26px;font-size:15px;font-weight:700;
  width:fit-content;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.btn-hero-primary{background:var(--wug-accent) !important;color:#fff !important;border:1px solid var(--wug-accent)}
.btn-hero-primary:hover{background:#e36b06 !important;border-color:#e36b06}
.btn-hero-ghost{background:transparent !important;color:var(--wug-accent-text) !important;border:1px solid var(--wug-rule)}
.btn-hero-ghost:hover{background:var(--wug-accent-tint) !important;border-color:var(--wug-accent)}
.btn-blog-all{background:transparent !important;color:var(--wug-accent-text) !important;border:1px solid var(--wug-rule);padding:10px 20px;font-size:14px}
.btn-blog-all:hover{background:var(--wug-accent-tint) !important;border-color:var(--wug-accent)}

/* 分类卡上的 chip：两种模式都保持白底（卡本身是饱和色，白 chip 在亮/暗下对比都成立）。
   用重复类提特异性，压过 page 9 customCss 里同特异性的 !important（源码顺序在它之后）。 */
.btn-custom-xhbcwk.btn-custom-xhbcwk,
.btn-custom-iyauwq.btn-custom-iyauwq,
.btn-custom-evrglh.btn-custom-evrglh,
.btn-custom-xylqzd.btn-custom-xylqzd,
.btn-custom-rsvzpw.btn-custom-rsvzpw,
.btn-custom-klmtds.btn-custom-klmtds{background:#fff !important}
/* WCAG AA 修正：橙字在白 chip 上只有 2.64:1，压深到 4.71:1 */
.btn-custom-rsvzpw.btn-custom-rsvzpw{color:#b65a0e !important;border-color:#b65a0e !important}

/* 坐在「固定饱和色面」上的文字不跟随主题翻转 —— 那些面本身在两种模式下都不变。
   （批量 token 化时把 #212121 换成了 --wug-fg-strong，会让黄卡/白 chip 在暗色下变成浅字浅底） */
#brxe-heakot#brxe-heakot{color:#212121 !important}
#brxe-uzpagw#brxe-uzpagw{color:rgba(33,33,33,.85) !important}
.btn-custom-xylqzd.btn-custom-xylqzd{color:#212121 !important;border-color:#212121 !important}

/* ===== WCAG AA 收尾 ===== */
/* 分类页/文章里的橙色文字与链接统一走 --wug-accent-text（亮 4.71 / 暗 6.98） */
.wug-prose a,.wug-art-cats a,.wug-rel-card:hover h3,.wug-row:hover .wug-row-title,
.wug-navlink:hover strong,.wug-listing .page-numbers:hover,.wug-footer nav a:hover,
.wug-nav a:hover,.wug-logo:hover .wug-logo-text,.wug-empty-actions .btn-hero-ghost,
.wug-404-actions .btn-hero-ghost,.wug-search button{color:var(--wug-accent-text)}
.wug-art-cats a{border-color:var(--wug-rule)}
.wug-art-cats a:hover{border-color:var(--wug-accent-text)}
/* 跳转链接：只在聚焦时可见，聚焦态必须自身达标 */
.skip-link{position:absolute;left:8px;top:-48px;z-index:100;background:var(--wug-fg-strong);color:var(--wug-bg);
  padding:10px 16px;border-radius:var(--wug-r-btn);font-size:14px;font-weight:700;text-decoration:none;transition:top .18s ease}
.skip-link:focus{top:8px}
/* 视觉隐藏文本不参与配色 */
.wug-sr{color:var(--wug-fg)}
/* 主按钮：橙底 + 墨字 = 6.60，保住品牌橙的饱和度同时达标 */
.btn-hero-primary.btn-hero-primary{color:#1a1a1a !important}
.wug-prose a{text-decoration-color:color-mix(in srgb,var(--wug-accent-text) 45%,transparent)}

/* 橙「填充」按钮：文字用墨（白字压橙底只有 2.64，墨字 6.60） */
.wug-search button{color:#1a1a1a !important}
/* 橙色分类卡上的文字同理（白字压橙底 2.64） */
#brxe-geozkv#brxe-geozkv,#brxe-gdyzvl#brxe-gdyzvl{color:#1a1a1a !important}

/* 页头标识：线条走 currentColor（暗色下不再隐形），集装箱走 --wug-accent-mark 保证图形对比 ≥3:1 */
.wug-logo-mark{color:var(--wug-fg-strong)}
.wug-logo-mark path[fill="#fa7c14"]{fill:var(--wug-accent-mark)}
.wug-logo:hover .wug-logo-mark{color:var(--wug-accent-text)}

/* ============================================================
   chuhai.nephen.cn 迁移内容（套餐 / 资料清单 / 案例 / 关于 / 联系）
   页面结构 = Bricks section.wug-page > post-content（正文在 WP 编辑器里改）
   宽度、圆角、配色一律走已有 token，不新造值
   ============================================================ */
/* Bricks 的 section 是 flex 列且 align-items:center，正文必须自己撑满 */
.wug-page > .brxe-post-content{width:100%}

/* ===== 全站内页 Banner（分类 hub 页 + 迁移内容页共用同一套结构与样式） =====
   结构：header|section.wug-pagehead
           > .wug-shell                     (flex 行，窄屏 wrap 成单列)
               > .wug-pagehead-mark > img   (可选：产品/品牌标识，移动端 48px 徽标，≥900px 移到右侧 160px)
               > .wug-pagehead-copy
                   > h1.wug-list-title / .wug-lede / .wug-actions
   Banner 文案元素上限 3 个（标题 + 导语 + 按钮组），不加 eyebrow 小标签。
   底部分隔线：1px var(--wug-rule) 灰发丝线，与文章页头 .wug-art-head / 归档页头 .wug-list-head 同一条；
   不用 2px --wug-rule-strong（那是黑线，暗色下是白线，在 banner 上太抢）。banner 自身的辨识度靠 --wug-bg-alt 底色。 */
.wug-pagehead{padding:clamp(30px,6vw,56px) 0 28px;background:var(--wug-bg-alt);border-bottom:1px solid var(--wug-rule)}
.wug-pagehead > .wug-shell{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:18px clamp(24px,5vw,56px)}
.wug-pagehead-copy{flex:1 1 300px;min-width:0}
.wug-pagehead-mark{flex:0 0 auto;width:48px;height:48px;color:var(--wug-fg-strong)}
.wug-pagehead-mark img,.wug-pagehead-mark svg{display:block;width:100%;height:100%;object-fit:contain}
.wug-pagehead .wug-list-title{font-size:clamp(28px,4.4vw,40px);margin:0}
.wug-pagehead .wug-lede{margin:12px 0 0}
.wug-pagehead .wug-actions{margin:22px 0 0}
@media(min-width:900px){
  .wug-pagehead-mark{width:160px;height:160px;order:2}
  .wug-pagehead .wug-lede{max-width:56ch}
}
/* 单色品牌标识（WordPress）在暗色底上会看不见；彩色标识（Woo / Elementor / Bricks）不要加这个类。 */
@media (prefers-color-scheme: dark){ :root:not([data-wug-theme="light"]) .wug-pagehead-mark--mono img{filter:invert(1)} }
:root[data-wug-theme="dark"] .wug-pagehead-mark--mono img{filter:invert(1)}
.wug-sec{padding:52px 0}
.wug-sec--tint{background:var(--wug-bg-elev)}
.wug-lede{max-width:var(--wug-read);margin:14px 0 0;font-size:17px;line-height:1.85;color:var(--wug-fg-muted)}
.wug-h2{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:26px;font-weight:700;
  color:var(--wug-fg-strong);margin:0 0 6px;line-height:1.3}
.wug-h2 + p{margin:0 0 26px;font-size:15px;line-height:1.8;color:var(--wug-fg-muted);max-width:var(--wug-read)}

/* 按钮：与站内 #submit / .btn-hero-primary 同一套（橙底墨字 6.60，圆角 --wug-r-btn） */
.wug-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 0}
.wug-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 26px;
  font-size:15px;line-height:1.2;font-weight:700;text-decoration:none;color:#1a1a1a;
  background:var(--wug-accent);border:1px solid var(--wug-accent);border-radius:var(--wug-r-btn);
  transition:background-color .18s ease,border-color .18s ease,transform .1s ease}
.wug-btn:hover{background:var(--wug-accent-strong);border-color:var(--wug-accent-strong)}
.wug-btn:active{transform:translateY(1px)}
.wug-btn:focus-visible{outline:2px solid var(--wug-accent-text);outline-offset:2px}
.wug-btn--ghost{background:transparent;color:var(--wug-fg-strong);border-color:var(--wug-rule)}
.wug-btn--ghost:hover{background:var(--wug-accent-tint);border-color:var(--wug-accent);color:var(--wug-accent-text)}

/* 套餐：1 个整行主推 + 2 个并排，共 3 格（不留空格） */
.wug-plans{display:grid;gap:18px}
.wug-plan{padding:26px 28px;border:1px solid var(--wug-rule);border-radius:var(--wug-r-card);
  background:var(--wug-bg);display:flex;flex-direction:column;gap:18px}
.wug-plan--feature{background:var(--wug-accent-tint);border-color:var(--wug-accent-tint-2)}
.wug-plan h3{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:21px;font-weight:700;
  color:var(--wug-fg-strong);margin:0;line-height:1.35}
.wug-plan-note{margin:6px 0 0;font-size:14px;line-height:1.7;color:var(--wug-fg-muted)}
.wug-plan-meta{display:grid;gap:10px;margin:0}
.wug-plan-meta > div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:baseline}
.wug-plan-meta dt{font-size:13px;color:var(--wug-fg-faint)}
.wug-plan-meta dd{margin:0;font-size:14.5px;line-height:1.65;color:var(--wug-fg-strong);font-weight:600}
.wug-plan-sub{font-size:13.5px;font-weight:700;letter-spacing:.02em;color:var(--wug-fg-faint);margin:0 0 12px}
/* 长清单：分栏，不给每行画线（tastskill §4.9） */
.wug-specs{list-style:none;margin:0;padding:0;display:grid;gap:14px 24px}
.wug-specs li{display:grid;gap:2px;font-size:14px;line-height:1.7;color:var(--wug-fg-muted)}
.wug-specs strong{font-size:14.5px;font-weight:700;color:var(--wug-fg-strong);line-height:1.45}
@media(min-width:760px){.wug-plans{grid-template-columns:1fr 1fr}
  .wug-plan--feature{grid-column:1/-1;flex-direction:row;gap:40px}
  .wug-plan--feature .wug-plan-head{flex:0 0 34%}
  .wug-plan--feature .wug-specs{grid-template-columns:1fr 1fr}}

/* 服务范围：三组，只有组间一条线 */
.wug-scope{display:grid;gap:0}
.wug-scope > div{padding:18px 0;border-bottom:1px solid var(--wug-rule)}
.wug-scope > div:first-child{padding-top:0}
.wug-scope > div:last-child{border-bottom:0}
.wug-scope h3{font-size:15px;font-weight:700;color:var(--wug-fg-strong);margin:0 0 8px}
.wug-scope ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px 22px;margin:0;padding:0}
.wug-scope li{font-size:14.5px;line-height:1.7;color:var(--wug-fg-muted)}
@media(min-width:900px){.wug-scope{grid-template-columns:1fr 1fr;gap:0 36px}
  .wug-scope > div{border-bottom:0;border-left:1px solid var(--wug-rule);padding:0 0 0 22px}
  .wug-scope > div:first-child{padding-left:0;border-left:0}}

/* 案例：6 图 6 格，桌面 3 列 / 平板 2 列 / 手机 1 列 */
.wug-cases{display:grid;gap:22px}
.wug-case{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit}
.wug-case img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top center;display:block;
  border:1px solid var(--wug-rule);border-radius:var(--wug-r-card);background:var(--wug-bg-alt)}
.wug-case h2{font-family:Sora,"Noto Sans CJK SC",sans-serif;font-size:17px;font-weight:700;
  color:var(--wug-fg-strong);margin:2px 0 0;line-height:1.4}
.wug-case:hover h2{color:var(--wug-accent-text)}
.wug-case span{font-size:13.5px;color:var(--wug-fg-faint);word-break:break-all}
@media(min-width:700px){.wug-cases{grid-template-columns:1fr 1fr}}
@media(min-width:1040px){.wug-cases{grid-template-columns:repeat(3,1fr)}}

/* 资料清单：4 组 4 项，2x2 卡 */
.wug-checklist{display:grid;gap:18px}
.wug-checklist section{padding:24px 26px;border:1px solid var(--wug-rule);border-radius:var(--wug-r-card)}
.wug-checklist h2{font-size:16px;font-weight:700;color:var(--wug-fg-strong);margin:0 0 12px}
.wug-checklist ol{list-style:decimal;margin:0;padding-left:20px;display:grid;gap:8px}
.wug-checklist li{font-size:14.5px;line-height:1.65;color:var(--wug-fg-muted)}
.wug-checklist li::marker{color:var(--wug-fg-faint)}
@media(min-width:820px){.wug-checklist{grid-template-columns:1fr 1fr}}

/* 联系方式：左行右码，手机单列 */
.wug-contact{display:grid;gap:34px}
.wug-kv{display:grid;margin:0}
.wug-kv > div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:2px 18px;align-items:baseline;
  padding:15px 0;border-bottom:1px solid var(--wug-rule)}
.wug-kv > div:first-child{padding-top:0}
.wug-kv dt{font-size:13.5px;color:var(--wug-fg-faint);margin:0}
.wug-kv dd{margin:0;font-size:16px;font-weight:700;color:var(--wug-fg-strong);line-height:1.5}
.wug-kv dd a{color:inherit;text-decoration:none;border-bottom:1px solid var(--wug-rule)}
.wug-kv dd a:hover{color:var(--wug-accent-text);border-color:var(--wug-accent)}
.wug-kv small{display:block;font-size:13px;font-weight:400;color:var(--wug-fg-faint);margin-top:3px}
.wug-qr{display:grid;gap:20px}
.wug-qr figure{margin:0;display:grid;gap:8px;justify-items:start}
.wug-qr img{width:150px;height:auto;object-fit:contain;display:block;background:#fff;
  border:1px solid var(--wug-rule);border-radius:var(--wug-r-card);padding:6px}
.wug-qr figcaption{font-size:13px;color:var(--wug-fg-faint)}
@media(min-width:900px){.wug-contact{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:44px}
  .wug-qr{grid-template-columns:150px 150px;gap:18px 22px}}

/* ============================================================
   文章页：正文列 + 右侧目录栏（tastskill 优化）
   原来 .wug-prose 在 1120 壳里被 65ch 硬缩到 682px，右半壁全是空的，
   读起来像布局坏了。改成网格：正文吃满左列，右列放粘性目录 + 一个服务卡。
   960 是全站桌面/移动分界（汉堡菜单同一点），窄于此不排两列、目录隐藏。
   ============================================================ */
@media(min-width:961px){
  .wug-art-body .wug-shell{display:grid;grid-template-columns:minmax(0,1fr) 232px;column-gap:56px;align-items:start}
  .wug-art-body .wug-prose{max-width:none}
  .wug-rail{position:sticky;top:88px;display:grid;gap:20px;align-content:start;
    max-height:calc(100vh - 112px);overflow:auto;overscroll-behavior:contain}
}
.wug-prose h2[id],.wug-prose h3[id]{scroll-margin-top:88px}
.wug-toc-title{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.05em;color:var(--wug-fg-faint)}
.wug-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:1px;border-left:1px solid var(--wug-rule)}
.wug-toc li a{display:block;margin-left:-1px;padding:5px 0 5px 13px;border-left:1px solid transparent;
  font-size:13.5px;line-height:1.5;color:var(--wug-fg-muted);text-decoration:none;
  transition:color .18s ease,border-color .18s ease}
.wug-toc li a:hover{color:var(--wug-fg-strong)}
.wug-toc li a.is-on{color:var(--wug-accent-text);border-left-color:var(--wug-accent)}
.wug-toc-l3 a{padding-left:26px;font-size:12.5px}
.wug-rail-cta{padding:16px;border:1px solid var(--wug-rule);border-radius:var(--wug-r-card);background:var(--wug-bg-alt)}
.wug-rail-cta-k{margin:0 0 6px;font-size:13px;font-weight:700;color:var(--wug-fg-strong)}
.wug-rail-cta p{margin:0 0 12px;font-size:12.5px;line-height:1.7;color:var(--wug-fg-muted)}
/* 橙底配墨字：白字压 #fa7c14 只有 2.64，不达 AA */
.wug-rail-cta a{display:inline-block;padding:8px 14px;border:1px solid var(--wug-accent);border-radius:var(--wug-r-btn);
  font-size:13px;font-weight:700;color:#1a1a1a;background:var(--wug-accent);text-decoration:none}
.wug-rail-cta a:hover{background:var(--wug-accent-strong);border-color:var(--wug-accent-strong)}
@media(max-width:960px){
  .wug-art-body .wug-prose{max-width:var(--wug-read)}
  .wug-rail{margin-top:34px}
  .wug-toc{display:none}
}
@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}

/* ============================================================
   全站「回到顶部」悬浮键（parts/site-header.php 输出，锚到 #wug-header）
   方角 + 1px 描边 + 无投影，尺寸/圆角走 --wug-r-btn；hover 才上橙（与 .btn-hero-ghost 同一对色）。
   显隐靠 .is-on（functions.php 的 scroll 脚本）；默认 visibility:hidden，无 JS 时不会留个死键。
   ============================================================ */
.wug-top{position:fixed;z-index:40;right:clamp(14px,3vw,28px);bottom:calc(18px + env(safe-area-inset-bottom));
  display:grid;place-items:center;width:44px;height:44px;border-radius:var(--wug-r-btn);
  background:var(--wug-bg);border:1px solid var(--wug-rule);color:var(--wug-fg-strong);text-decoration:none;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s,background-color .18s ease,border-color .18s ease,color .18s ease}
.wug-top.is-on{opacity:1;visibility:visible;transform:none}
.wug-top svg{display:block;width:20px;height:20px}
.wug-top:hover{color:var(--wug-accent-text);border-color:var(--wug-accent);background:var(--wug-accent-tint)}
.wug-top:focus-visible{outline:2px solid var(--wug-accent-text);outline-offset:2px}
@media (prefers-reduced-motion: reduce){.wug-top{transform:none;transition:opacity .18s ease,visibility .18s}}
