:root{
    --bg:oklch(0.97 0.012 85);
    --surface:oklch(0.986 0.01 85);
    --fg:oklch(0.28 0.034 246);
    --muted:oklch(0.44 0.032 145);
    --faint:oklch(0.48 0.036 140);
    --faint-2:oklch(0.55 0.034 140);
    --border:oklch(0.30 0.034 246 / 0.10);
    --accent:oklch(0.77 0.13 130);
    --accent-deep:oklch(0.63 0.12 130);
    --accent-soft:oklch(0.93 0.05 130 / 0.55);
    --accent-text:oklch(0.49 0.11 130);
    --accent-ink:oklch(0.22 0.03 150);
    --ink:oklch(0.27 0.03 248);
    --burn:oklch(0.62 0.12 45);
    --burn-ink:oklch(0.46 0.09 45);
    --burn-pale:oklch(0.95 0.02 55);
    --burn-bright:oklch(0.68 0.11 45);
    --burn-soft:oklch(0.90 0.07 45 / 0.32);
    --shadow:0 14px 40px oklch(0.27 0.03 248 / 0.09);
    --radius:16px;
    --radius-sm:12px;
    /* 顶部导航常驻高度：内容留白与锚点落点都由它推导，JS 会按实际高度回写 */
    --nav-h:64px;
    /* 中文衬线（正文/标题）：优先思源宋体，补齐 Windows 与 macOS 的中文衬线回退，避免落到默认宋体的点阵字形 */
    --font-serif:'Noto Serif SC','Source Han Serif SC','Songti SC','STSong','SimSun',serif;
    --font-latin:'EB Garamond','Noto Serif SC',serif;
    /* 中文无衬线（UI/元信息）：小字级宋体笔画太细，改用等重无衬线，屏幕可读性更高 */
    --font-sans:'Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei','Source Han Sans SC',-apple-system,system-ui,sans-serif;
  }

  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}
  body{
    font-family:var(--font-serif);
    color:var(--fg);
    line-height:1.9;
    letter-spacing:0;
    font-size:16px;
    background-color:var(--bg);
    background-image:
      radial-gradient(1100px 720px at 82% -8%, oklch(0.955 0.02 85 / 0.65), transparent 62%),
      radial-gradient(860px 640px at 6% 14%, oklch(0.97 0.016 130 / 0.5), transparent 58%),
      url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/><feComponentTransfer><feFuncA type='linear' slope='0.055'/></feComponentTransfer></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    padding-top:var(--nav-h);
  }
  ::selection{background:var(--accent-soft)}
  a{color:inherit;text-decoration:none}
  button{font-family:inherit;cursor:pointer}
  :where(a,button,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--ink);outline-offset:2px}
  svg{display:block}
  .icon{width:18px;height:18px}
  .icon-lg{width:24px;height:24px}
  .container{max-width:1080px;margin:0 auto;padding:0 24px}
  .latin{font-family:var(--font-latin);font-style:italic;letter-spacing:0.06em;color:var(--muted)}
  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);font-size:13.5px;color:var(--muted);letter-spacing:0.1em}
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--muted);opacity:0.55}
  .privacy .eyebrow::before{background:var(--accent);opacity:0.9}
  .h2{font-size:clamp(26px,4vw,36px);font-weight:700;line-height:1.4;letter-spacing:0;color:var(--ink)}
  .h2 .latin{display:block;font-size:0.44em;font-weight:400;margin-top:8px;letter-spacing:0.16em}

  /* ---------- Nav ---------- */
  .nav{position:fixed;top:0;left:0;right:0;z-index:50;background:oklch(0.97 0.012 85 / 0.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
  .brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink)}
  .brand .icon{color:var(--accent-deep)}
  .brand-name{font-weight:700;font-size:19.5px;letter-spacing:0.04em}
  .brand-name small{font-family:var(--font-latin);font-weight:400;font-size:11.5px;letter-spacing:0.24em;margin-left:6px;color:var(--faint)}
  .nav-links{display:flex;gap:26px}
  .nav-links a{font-family:var(--font-sans);font-size:14px;color:var(--muted);letter-spacing:0.05em;padding:8px 2px;transition:color .25s}
  .nav-links a:hover{color:var(--ink)}
  .btn-nav{min-height:44px;padding:0 22px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--ink);font-family:var(--font-sans);font-size:14px;font-weight:500;letter-spacing:0.05em;transition:border-color .25s,color .25s}
  .btn-nav:hover{border-color:var(--accent-deep);color:var(--ink)}
  .nav-actions{display:flex;align-items:center;gap:10px}
  .bell-wrap{position:relative}
  .bell-btn{position:relative;display:grid;place-items:center;min-width:44px;min-height:44px;border:none;border-radius:50%;background:transparent;color:var(--muted);transition:color .2s,background .2s}
  .bell-btn:hover{color:var(--ink);background:var(--accent-soft)}
  .bell-btn[aria-expanded="true"]{color:var(--ink);background:var(--accent-soft)}
  .bell-btn .icon{width:19px;height:19px}
  .bell-dot{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:50%;background:var(--burn-bright);box-shadow:0 0 0 2px oklch(0.97 0.012 85)}
  .bell-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(372px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 22px 60px oklch(0.27 0.03 248 / 0.18);overflow:hidden;z-index:60;animation:bellIn .22s ease}
  @keyframes bellIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
  .bell-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px 10px;border-bottom:1px solid var(--border)}
  .bell-head b{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--ink);letter-spacing:0.06em}
  .bell-readall{min-height:32px;padding:0 4px;border:none;background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:13px;letter-spacing:0.03em;transition:color .2s}
  .bell-readall:hover{color:var(--accent-text)}
  .bell-list{list-style:none;max-height:min(56vh,420px);overflow-y:auto}
  .bell-item{display:flex;align-items:flex-start;gap:12px;width:100%;padding:14px 18px;border:none;border-bottom:1px solid var(--border);background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer;transition:background .2s}
  .bell-item:last-child{border-bottom:none}
  .bell-item:hover{background:var(--bg)}
  .bell-item.is-unread::after{content:"";flex:none;align-self:center;margin-left:auto;width:7px;height:7px;border-radius:50%;background:var(--burn-bright)}
  .bell-avatar{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--border);color:var(--accent-text);background:var(--surface);margin-top:2px}
  .bell-avatar .icon{width:14px;height:14px}
  .bell-main{min-width:0;display:flex;flex-direction:column;gap:3px}
  .bell-line{font-family:var(--font-sans);font-size:14px;color:var(--fg);letter-spacing:0;line-height:1.65}
  .bell-line b{font-weight:600;color:var(--ink)}
  .bell-text{font-family:var(--font-sans);font-size:13.5px;color:var(--muted);line-height:1.7;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-all}
  .bell-time{font-family:var(--font-sans);font-size:12.5px;color:var(--faint);letter-spacing:0.02em}
  .bell-empty{padding:30px 18px;text-align:center;color:var(--faint);font-family:var(--font-sans);font-size:14px;line-height:1.8;letter-spacing:0.02em}

  /* ---------- Nav · 收起式菜单（窄屏）：汉堡按钮 + 幕列表下拉 ---------- */
  .nav-menu-btn{display:none;position:relative;place-items:center;min-width:44px;min-height:44px;border:none;border-radius:50%;background:transparent;color:var(--ink);transition:background .2s}
  .nav-menu-btn:hover,.nav-menu-btn[aria-expanded="true"]{background:var(--accent-soft)}
  .nav-menu-btn .bars{position:relative;width:19px;height:13px}
  .nav-menu-btn .bars span{position:absolute;left:0;right:0;height:1.6px;border-radius:2px;background:currentColor;transition:transform .28s ease,opacity .18s ease}
  .nav-menu-btn .bars span:nth-child(1){top:0}
  .nav-menu-btn .bars span:nth-child(2){top:5.7px}
  .nav-menu-btn .bars span:nth-child(3){top:11.4px}
  .nav-menu-btn[aria-expanded="true"] .bars span:nth-child(1){transform:translateY(5.7px) rotate(45deg)}
  .nav-menu-btn[aria-expanded="true"] .bars span:nth-child(2){opacity:0}
  .nav-menu-btn[aria-expanded="true"] .bars span:nth-child(3){transform:translateY(-5.7px) rotate(-45deg)}

  .nav-scrim{position:fixed;inset:0;z-index:48;background:oklch(0.27 0.03 248 / 0.22);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility 0s linear .24s}

  .nav-drawer{display:none;position:fixed;top:var(--nav-h);left:0;right:0;z-index:49;max-height:calc(100vh - var(--nav-h));overflow-y:auto;padding:6px 0 calc(10px + env(safe-area-inset-bottom));background:oklch(0.975 0.012 85 / 0.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);box-shadow:0 22px 48px oklch(0.27 0.03 248 / 0.16);opacity:0;visibility:hidden;transform:translateY(-10px);pointer-events:none;transition:opacity .24s ease,transform .24s ease,visibility 0s linear .24s}
  .nav-drawer.open{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .24s ease,transform .24s ease}
  .nav-drawer a{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 22px;font-family:var(--font-sans);font-size:15.5px;color:var(--muted);letter-spacing:0.04em;border-bottom:1px solid oklch(0.9 0.012 85 / 0.7);transition:color .2s,background .2s}
  .nav-drawer a:last-child{border-bottom:none}
  .nav-drawer a::before{content:"";flex:none;width:18px;height:1px;background:var(--ink);opacity:0.25;transform:scaleX(0.35);transform-origin:left;transition:opacity .2s,transform .24s ease}
  .nav-drawer a:hover,.nav-drawer a:focus-visible{color:var(--ink);background:var(--accent-soft)}
  .nav-drawer a:hover::before,.nav-drawer a:focus-visible::before{opacity:0.9;transform:none}
  .nav-drawer a[aria-current="true"]{color:var(--ink);background:var(--accent-soft)}
  .nav-drawer a[aria-current="true"]::before{opacity:0.9;transform:none}

  /* ---------- 幕一 · 落枝 (hero 即写即寄) ---------- */
  .act-alight{position:relative;padding:72px 0 88px;text-align:center}
  .alight-branch{width:200px;height:64px;margin:0 auto 26px;color:var(--faint);opacity:0.8}
  .leaf-title{font-size:clamp(42px,7vw,68px);font-weight:700;line-height:1.34;letter-spacing:0;color:var(--ink)}
  .leaf-title .latin{display:block;font-size:0.22em;letter-spacing:0.24em;margin-top:16px}
  .leaf-lead{max-width:560px;margin:26px auto 30px;color:var(--muted);font-size:16.5px;line-height:1.9}
  .stranger-leaf{display:inline-flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 18px;box-shadow:var(--shadow);transform:rotate(-1.6deg);margin-bottom:26px;text-align:left}
  .stranger-leaf .icon{color:var(--faint)}
  .stranger-leaf b{font-weight:600;color:var(--ink)}
  .stranger-leaf span{font-family:var(--font-sans);font-size:13px;color:var(--muted)}
  .stranger-leaf .tape{position:absolute;top:-9px;left:50%;transform:translateX(-50%) rotate(-2deg);width:64px;height:14px;background:oklch(0.90 0.05 130 / 0.55);border-radius:2px;opacity:0.7}
  .stranger-leaf{position:relative}

  .composer{max-width:640px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 26px 24px;text-align:left;transition:border-color .3s}
  .composer.burn-on{border-color:var(--burn)}
  .composer-label{display:flex;align-items:center;gap:8px;font-family:var(--font-sans);font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:0.04em;margin-bottom:14px}
  .composer-label .icon{color:var(--faint)}
  .composer textarea{width:100%;min-height:104px;border:none;outline:none;resize:vertical;background:transparent;font-family:var(--font-serif);font-size:17px;line-height:1.9;letter-spacing:0;color:var(--fg);padding:4px 2px}
  .composer textarea::placeholder{color:var(--faint)}
  .composer-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;flex-wrap:wrap}
  .burn-toggle{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-sans);font-size:14px;color:var(--muted);letter-spacing:0.02em;cursor:pointer;min-height:44px;user-select:none}
  .burn-toggle input{position:absolute;opacity:0;width:0;height:0}
  .switch{position:relative;width:38px;height:22px;border-radius:999px;background:var(--border);transition:background .3s}
  .switch::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface);transition:transform .3s;box-shadow:0 1px 3px oklch(0.27 0.03 248 / 0.25)}
  .burn-toggle input:checked + .switch{background:var(--burn)}
  .burn-toggle input:checked + .switch::after{transform:translateX(16px)}
  .burn-toggle input:focus-visible + .switch{outline:2px solid var(--ink);outline-offset:3px}
  .chars{font-family:var(--font-latin);font-size:13.5px;color:var(--faint);letter-spacing:0.06em}
  .burn-hint{display:none;margin-top:10px;font-family:var(--font-sans);font-size:13.5px;color:var(--burn-ink);background:var(--burn-soft);border-radius:8px;padding:8px 12px;letter-spacing:0.02em}
  .composer.burn-on .burn-hint{display:block;animation:burnIn .4s ease}
  @keyframes burnIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  .send-btn{width:100%;min-height:48px;margin-top:16px;border:none;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);font-family:var(--font-sans);font-size:15.5px;font-weight:600;letter-spacing:0.16em;transition:background .25s,transform .15s}
  .send-btn:hover:not(:disabled){background:var(--accent-deep)}
  .send-btn:active:not(:disabled){transform:scale(0.985)}
  .send-btn:disabled{opacity:0.55;cursor:not-allowed}
  .alight-note{margin-top:18px;font-family:var(--font-sans);font-size:13.5px;color:var(--muted);letter-spacing:0.02em}
  .alight-note b{color:var(--ink);font-weight:600}
  /* 「写一片叶子」聚焦态：视口装不下整幕时收紧装饰，让寄出幕完整落在导航下方 */
  .act-alight.compose-focus{padding-top:26px;padding-bottom:34px}
  .act-alight.compose-focus .alight-branch{display:none}
  .act-alight.compose-focus .leaf-title{font-size:clamp(25px,3.2vw,36px)}
  .act-alight.compose-focus .leaf-title .latin{display:none}
  .act-alight.compose-focus .leaf-lead{margin:12px auto 16px;font-size:15.5px;line-height:1.8;max-width:540px}
  .act-alight.compose-focus .stranger-leaf{display:none}
  .act-alight.compose-focus .composer{padding:20px 22px}
  .act-alight.compose-focus .composer textarea{min-height:86px}

  /* ---------- 枝名仪式 ---------- */
  .name-rite{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:58px 0}
  .name-rite-inner{display:flex;align-items:center;gap:44px;flex-wrap:wrap}
  .name-rite h3{font-size:24px;font-weight:700;line-height:1.4;color:var(--ink);letter-spacing:0}
  .name-rite h3 .latin{display:block;font-size:0.42em;margin-top:6px;letter-spacing:0.16em}
  .name-rite p{margin-top:10px;font-size:15px;color:var(--muted);max-width:420px;line-height:1.85}
  .name-widget{flex:1;min-width:300px;border:1.5px dashed var(--faint-2);border-radius:var(--radius);padding:22px 26px;display:flex;flex-direction:column;gap:8px}
  .nw-label{font-family:var(--font-sans);font-size:13px;color:var(--muted);letter-spacing:0.08em}
  .nw-name{font-size:30px;font-weight:700;color:var(--ink);letter-spacing:0.03em;min-height:44px}
  .nw-name.flipping{animation:flip .3s ease}
  @keyframes flip{0%{opacity:0;transform:translateY(-6px) rotate(-2deg)}100%{opacity:1;transform:none}}
  .nw-src{font-family:var(--font-sans);font-size:13.5px;color:var(--muted);line-height:1.7}
  .shake-btn{min-height:44px;align-self:flex-start;padding:0 20px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--ink);font-family:var(--font-sans);font-size:13.5px;font-weight:500;letter-spacing:0.04em;margin-top:8px;transition:border-color .25s,color .25s}
  .shake-btn:hover:not(:disabled){border-color:var(--accent-deep);color:var(--ink)}
  .shake-btn:disabled{opacity:0.45;cursor:not-allowed}
  .nw-remain{font-family:var(--font-sans);font-size:12.5px;color:var(--muted);letter-spacing:0.02em}
  .nw-remain b{color:var(--accent-text);font-weight:600}

  /* ---------- 幕一 · 枝上：一直在滚的叶墙 ---------- */
  .act-branch{padding:88px 0 96px}
  .branch-head{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;flex-wrap:wrap;margin-bottom:14px}
  .branch-flow{position:relative;display:grid;grid-template-columns:repeat(2,1fr);gap:20px;height:800px;margin-top:30px;overflow:hidden;
    -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 80px,#000 calc(100% - 80px),transparent 100%);
    mask-image:linear-gradient(180deg,transparent 0,#000 80px,#000 calc(100% - 80px),transparent 100%)}
  .branch-flow:not(.is-flowing){height:auto;grid-template-columns:1fr;overflow:visible;-webkit-mask-image:none;mask-image:none}
  .branch-flow.is-flowing:has(:focus-visible) .flow-track{animation-play-state:paused}
  /* 用户自己滚动叶墙：滚轮 / 拖动接管；闲置后由风重新接管 */
  .branch-flow.is-flowing{touch-action:none}
  .branch-flow.is-flowing .flow-col{cursor:grab}
  .branch-flow.is-driving{cursor:grabbing}
  .branch-flow.is-driving .flow-col .d-card{cursor:grabbing}
  .branch-flow.is-driving .flow-track{animation:none}
  .flow-hint{margin-top:14px;font-family:var(--font-sans);font-size:13px;color:var(--muted);letter-spacing:0.06em}
  .hint-touch{display:none}
  .flow-col{position:relative;overflow:hidden}
  .flow-col--b .flow-track{animation-delay:-9s}
  .flow-track{display:flex;flex-direction:column;will-change:transform}
  .branch-flow.is-flowing .flow-track{animation-name:flowUp;animation-timing-function:linear;animation-iteration-count:infinite}
  .flow-item{margin-bottom:20px}
  @keyframes flowUp{from{transform:translateY(0)}to{transform:translateY(calc(-100% / var(--sets,2)))}}
  @keyframes gust{0%{opacity:0.05}100%{opacity:1}}
  .branch-flow.is-gust{animation:gust .55s ease}
  .d-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;box-shadow:0 8px 26px oklch(0.27 0.03 248 / 0.05);transition:box-shadow .3s}
  .d-card:hover{box-shadow:var(--shadow)}
  .d-card.t-green{background:linear-gradient(oklch(0.96 0.028 130 / 0.4),oklch(0.96 0.028 130 / 0.4)),var(--surface)}
  .d-card.t-gray{background:linear-gradient(oklch(0.92 0.008 250 / 0.5),oklch(0.92 0.008 250 / 0.5)),var(--surface)}
  .d-meta{display:flex;align-items:center;gap:8px;font-family:var(--font-sans);font-size:13px;color:var(--muted);flex-wrap:wrap;letter-spacing:0.01em}
  .d-meta .nm{font-weight:600;color:var(--ink);letter-spacing:0.02em}
  .badge--burn{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-sans);font-size:12px;color:var(--burn-ink);background:var(--burn-soft);border-radius:999px;padding:2px 10px;letter-spacing:0.04em;font-weight:600}
  .d-text{margin:12px 0 16px;font-size:16.5px;color:var(--fg);line-height:1.9;letter-spacing:0}
  .d-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
  .like-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 6px;border:none;background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:13.5px;transition:color .2s}
  .like-btn .icon{transition:transform .25s}
  .like-btn:hover .icon{transform:rotate(-8deg) scale(1.08)}
  .like-btn.liked{color:var(--accent-text)}
  .like-btn.liked .icon{animation:tremble .4s ease}
  @keyframes tremble{0%{transform:rotate(-10deg)}40%{transform:rotate(8deg)}70%{transform:rotate(-5deg)}100%{transform:none}}
  .d-notes{font-family:var(--font-sans);font-size:13px;color:var(--muted);letter-spacing:0.01em}
  .collect-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin-left:auto;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:13px;letter-spacing:0.02em;transition:border-color .25s,color .25s,background .25s}
  .collect-btn:hover{border-color:var(--accent);color:var(--ink)}
  .collect-btn.saved{background:var(--accent-soft);border-color:transparent;color:var(--accent-text);font-weight:600}

  /* ---------- 分享：卡片分享钮 + 分享弹层 ---------- */
  .share-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:0 8px;border:none;border-radius:999px;background:transparent;color:var(--muted);transition:color .2s,background .2s}
  .share-btn:hover{color:var(--ink);background:var(--bg)}
  .share-btn:disabled{opacity:0.35;cursor:default}
  .share-btn .icon{width:16px;height:16px}
  .note-share{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:13.5px;letter-spacing:0.03em;transition:border-color .25s,color .25s,background .25s}
  .note-share:hover{border-color:var(--accent);color:var(--ink)}
  .share-overlay{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:22px;background:oklch(0.27 0.03 248 / 0.42);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility 0s linear .3s}
  .share-overlay.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s ease}
  .share-dialog{width:min(520px,100%);max-height:calc(100vh - 44px);background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 80px oklch(0.27 0.03 248 / 0.38);display:flex;flex-direction:column;overflow:hidden;transform:translateY(14px) scale(0.985);transition:transform .3s ease}
  .share-overlay.open .share-dialog{transform:none}
  .share-head{display:flex;align-items:center;gap:10px;padding:16px 20px 12px;border-bottom:1px solid var(--border)}
  .share-title{font-family:var(--font-sans);font-size:15px;font-weight:600;color:var(--ink);letter-spacing:0.03em}
  .share-body{padding:16px 20px 8px;overflow-y:auto;display:grid;place-items:center}
  .share-body img{display:block;width:100%;max-width:400px;aspect-ratio:1080 / 1500;height:auto;border-radius:14px;box-shadow:0 10px 30px oklch(0.27 0.03 248 / 0.16)}
  .share-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 20px 18px;border-top:1px solid var(--border)}
  .share-hint{font-family:var(--font-sans);font-size:13px;color:var(--muted);letter-spacing:0.01em}
  .share-download{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 30px;border:none;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-sans);font-size:14.5px;font-weight:600;letter-spacing:0.1em;transition:background .25s,transform .15s}
  .share-download:hover{background:var(--accent-deep)}
  .share-download:active{transform:scale(0.98)}
  .share-download .icon{width:16px;height:16px}

  /* ---------- 寄语弹层：游客点叶留言（无需登录） ---------- */
  .d-card{cursor:pointer}
  .d-notes{transition:color .25s}
  .d-card:hover .d-notes{color:var(--muted)}
  .note-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:22px;background:oklch(0.27 0.03 248 / 0.42);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility 0s linear .3s}
  .note-overlay.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s ease}
  .note-dialog{width:min(560px,100%);max-height:min(78vh,760px);background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 80px oklch(0.27 0.03 248 / 0.38);display:flex;flex-direction:column;overflow:hidden;transform:translateY(14px) scale(0.985);transition:transform .3s ease}
  .note-overlay.open .note-dialog{transform:none}
  .note-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 20px 12px;border-bottom:1px solid var(--border)}
  .note-head .nm{font-weight:600;color:var(--ink);letter-spacing:0.03em;font-size:15px}
  .note-head .t{font-family:var(--font-sans);font-size:13px;color:var(--muted);letter-spacing:0.02em}
  .note-close{margin-left:auto;min-width:44px;min-height:44px;display:grid;place-items:center;border:none;border-radius:50%;background:transparent;color:var(--muted);transition:color .2s,background .2s}
  .note-close:hover{color:var(--ink);background:var(--bg)}
  .note-body{overflow-y:auto;padding:18px 20px 8px}
  .note-leaf{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 18px;margin-bottom:16px}
  .note-leaf p{font-size:17px;line-height:1.9;color:var(--fg)}
  .note-sec{display:flex;align-items:center;gap:10px;margin:6px 0 14px;font-family:var(--font-sans);font-size:13.5px;color:var(--muted);letter-spacing:0.08em}
  .note-sec::after{content:"";flex:1;height:1px;background:var(--border)}
  .comments{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}
  .comment{display:flex;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--border)}
  .comment.self{background:var(--accent-soft);border-color:transparent}
  .c-avatar{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--border);color:var(--accent-text);background:var(--surface)}
  .c-avatar .icon{width:14px;height:14px}
  .comment .c-main{min-width:0}
  .c-meta{display:flex;align-items:center;gap:7px;font-family:var(--font-sans);font-size:13px;margin-bottom:4px;flex-wrap:wrap}
  .c-meta .nm{font-weight:600;color:var(--ink);letter-spacing:0.02em}
  .c-meta .t{color:var(--muted)}
  .c-you{font-family:var(--font-sans);font-size:12px;color:var(--accent-text);border:1px solid var(--accent);border-radius:999px;padding:0 7px;letter-spacing:0.06em;line-height:1.6}
  .comment p{font-size:15px;line-height:1.85;color:var(--fg);letter-spacing:0}
  .note-empty{margin:6px 0 16px;padding:26px 0;text-align:center;color:var(--muted);font-size:15px;line-height:1.9;letter-spacing:0.02em}
  .note-form{display:flex;align-items:center;gap:10px;padding:13px 20px 18px;border-top:1px solid var(--border);background:var(--surface)}
  .note-form input{flex:1;min-height:44px;border:1px solid var(--border);border-radius:999px;background:var(--bg);padding:0 18px;font-family:var(--font-sans);font-size:15px;color:var(--fg);letter-spacing:0;transition:border-color .25s}
  .note-form input::placeholder{color:var(--muted)}
  .note-form input:focus{border-color:var(--accent)}
  .note-send{flex:none;min-height:44px;padding:0 22px;border:none;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-sans);font-size:14.5px;font-weight:600;letter-spacing:0.1em;transition:background .25s,transform .15s}
  .note-send:hover{background:var(--accent-deep)}
  .note-send:active{transform:scale(0.98)}
  .note-send:disabled{opacity:0.55;cursor:not-allowed}

  /* ---------- 幕四 · 消散 ---------- */
  .act-fade{padding:90px 0 96px;border-top:1px solid var(--border)}
  .fade-lead{max-width:520px;margin:18px 0 34px;color:var(--muted);font-size:15.5px;line-height:1.9}
  .burn-card{max-width:560px;margin:0 auto;background:var(--ink);border-radius:20px;padding:34px 32px 30px;color:oklch(0.93 0.01 85);box-shadow:0 22px 60px oklch(0.27 0.03 248 / 0.35);position:relative;overflow:hidden;transition:opacity .5s,transform .5s}
  .burn-card.dissolved{opacity:0;transform:scale(0.96) translateY(6px)}
  .burn-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}
  .burn-top .badge--burn{background:var(--burn-ink);color:var(--burn-pale)}
  .burn-time{font-family:var(--font-latin);font-size:22px;letter-spacing:0.12em;color:var(--burn-bright)}
  .burn-text{font-size:17px;line-height:1.95;color:oklch(0.9 0.02 80);letter-spacing:0}
  .burn-figure{display:flex;align-items:center;justify-content:center;margin:26px 0 8px}
  .burn-figure .icon{width:34px;height:34px;color:var(--burn-bright)}
  .burn-note{font-size:13px;color:oklch(0.78 0.03 45);letter-spacing:0.06em;text-align:center;margin-top:4px}
  .burn-start{width:100%;min-height:48px;margin-top:22px;border:none;border-radius:var(--radius-sm);background:var(--burn);color:oklch(0.22 0.02 35);font-family:var(--font-sans);font-size:15.5px;font-weight:600;letter-spacing:0.14em;transition:box-shadow .25s,transform .15s}
  .burn-start:hover:not(:disabled){box-shadow:0 12px 26px oklch(0.22 0.03 45 / 0.32);transform:translateY(-1px)}
  .burn-start:active:not(:disabled){transform:scale(0.985)}
  .burn-start:disabled{opacity:0.55;cursor:not-allowed}
  .burn-ash{display:none;text-align:center;max-width:560px;margin:0 auto}
  .burn-ash.show{display:block;animation:burnIn .6s ease}
  .burn-ash h3{font-size:24px;font-weight:700;color:var(--ink);letter-spacing:0.02em;margin-bottom:8px}
  .burn-ash .latin{font-size:14px}
  .burn-ash p{margin:16px 0 24px;color:var(--muted);font-size:15px;line-height:1.85}
  .again-btn{min-height:48px;padding:0 30px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);font-family:var(--font-sans);font-size:14.5px;font-weight:500;letter-spacing:0.08em;transition:border-color .25s,color .25s}
  .again-btn:hover{border-color:var(--accent-deep);color:var(--ink)}
  .fade-outro{margin-top:40px;text-align:center;font-size:15px;color:var(--muted);letter-spacing:0.06em}
  .fade-outro b{color:var(--ink);font-weight:600}

  /* ---------- 幕三 · 枝囊 ---------- */
  .act-pouch{padding:90px 0 96px;background:var(--surface);border-top:1px solid var(--border)}
  .pouch-count{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-family:var(--font-sans);font-size:13.5px;color:var(--accent-text);letter-spacing:0.06em}
  .pouch-count::before{content:"";width:16px;height:1px;background:var(--accent);opacity:0.7}
  .pouch-empty{margin:46px auto 10px;text-align:center;color:var(--faint);padding:30px 0}
  .pouch-empty .icon{width:44px;height:44px;margin:0 auto 16px;color:oklch(0.55 0.034 140 / 0.6)}
  .pouch-empty p{font-size:16px;line-height:1.95;letter-spacing:0.02em}
  .pouch-grid{display:none;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:34px}
  .pouch-grid.show{display:grid;animation:burnIn .5s ease}
  .p-entry{display:flex;flex-direction:column;gap:8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 18px;cursor:pointer;transition:border-color .25s,box-shadow .25s,transform .15s}
  .p-entry:hover{border-color:var(--accent);box-shadow:var(--shadow)}
  .p-entry:active{transform:scale(0.995)}
  .p-entry .p-meta{display:flex;align-items:center;gap:6px;font-family:var(--font-sans);font-size:12.5px;color:var(--muted);flex-wrap:wrap}
  .p-entry .p-meta b{color:var(--ink);font-weight:600}
  .p-entry p{font-size:15px;color:var(--muted);line-height:1.8}
  .p-hint{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-family:var(--font-sans);font-size:13px;font-weight:500;color:var(--accent-text);letter-spacing:0.03em;transition:color .25s}
  .p-entry:hover .p-hint,.p-entry:focus-visible .p-hint{color:var(--ink)}

  /* ---------- 存根 · 我寄出的叶子（本机记录） ---------- */
  .act-sent{padding:88px 0 92px;border-top:1px solid var(--border)}
  .sent-head{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;flex-wrap:wrap}
  .sent-count{display:inline-flex;align-items:baseline;gap:6px;font-family:var(--font-sans);font-size:13.5px;color:var(--muted);letter-spacing:0.05em;white-space:nowrap}
  .sent-count::before{content:"";align-self:center;width:16px;height:1px;background:var(--accent);opacity:0.8}
  .sent-count b{font-family:var(--font-latin);font-style:italic;font-size:17px;font-weight:500;color:var(--ink)}
  .sent-lead{margin-top:18px;max-width:640px;font-size:15px;color:var(--muted);line-height:1.9}
  .sent-empty{margin:34px auto 0;padding:32px 0;text-align:center;color:var(--muted)}
  .sent-empty .icon{width:40px;height:40px;margin:0 auto 14px;color:oklch(0.55 0.034 140 / 0.65)}
  .sent-empty p{font-size:15.5px;line-height:1.95;letter-spacing:0.02em}
  .sent-write{min-height:44px;margin-top:20px;padding:0 26px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--ink);font-family:var(--font-sans);font-size:14px;font-weight:500;letter-spacing:0.08em;transition:border-color .25s,color .25s,background .25s}
  .sent-write:hover{border-color:var(--accent-deep);color:var(--ink);background:var(--accent-soft)}
  .sent-list{display:none;list-style:none;margin-top:32px}
  .sent-list.show{display:block}
  .sent-row{display:grid;grid-template-columns:78px 1fr;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;box-shadow:0 8px 26px oklch(0.27 0.03 248 / 0.045);transition:box-shadow .3s;animation:burnIn .45s ease}
  .sent-row:not(.is-gone):hover{box-shadow:var(--shadow)}
  .sent-stub{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:18px 8px;border-right:1px dashed var(--border);background:oklch(0.975 0.01 85 / 0.75)}
  .sent-stub .sn{font-family:var(--font-latin);font-style:italic;font-size:13px;color:var(--muted);letter-spacing:0.04em}
  .sent-stub .icon{width:17px;height:17px;color:var(--accent-text)}
  .sent-body{padding:18px 22px 14px;min-width:0}
  .sent-open{display:block;width:100%;padding:0;border:none;background:transparent;text-align:left;font-family:inherit;color:inherit;cursor:pointer}
  .sent-open:disabled{cursor:default}
  .sent-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:var(--font-sans);font-size:13px;color:var(--muted)}
  .sent-meta .sent-name{font-weight:600;color:var(--ink);letter-spacing:0.02em}
  .sent-meta .badge--burn .cd-t{font-family:var(--font-latin);font-style:italic;letter-spacing:0.04em}
  .sent-state{font-family:var(--font-sans);font-size:12.5px;letter-spacing:0.04em}
  .sent-text{display:block;margin-top:10px;font-size:16px;color:var(--fg);line-height:1.9;overflow-wrap:anywhere}
  .sent-open:not(:disabled):hover .sent-text{color:var(--ink)}
  .sent-foot{display:flex;align-items:center;gap:14px;margin-top:6px;flex-wrap:wrap}
  .sent-stat{font-family:var(--font-sans);font-size:12.5px;color:var(--muted);letter-spacing:0.01em;transition:color .25s}
  .sent-row:not(.is-gone):hover .sent-stat{color:var(--ink)}
  .sent-kill{min-height:44px;margin-left:auto;padding:0 16px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:13px;font-weight:500;letter-spacing:0.02em;transition:border-color .25s,color .25s,background .25s}
  .sent-kill:hover{border-color:var(--ink);color:var(--ink)}
  .sent-kill.is-burn:hover{border-color:var(--burn-ink);color:var(--burn-ink);background:var(--burn-soft)}
  .sent-row.is-gone{background:oklch(0.955 0.012 70 / 0.75)}
  .sent-row.is-gone .sent-stub{background:oklch(0.965 0.01 70 / 0.7)}
  .sent-row.is-gone .sent-stub .icon{color:var(--burn);opacity:0.45}
  .sent-row.is-gone .sent-text{color:var(--muted)}
  .sent-note{margin-top:26px;font-family:var(--font-sans);font-size:13px;color:var(--muted);letter-spacing:0.02em;line-height:1.8}
  .sent-note b{color:var(--ink);font-weight:600}
  .stub-strip{display:none;margin-top:16px;font-family:var(--font-sans);font-size:13.5px;color:var(--muted);letter-spacing:0.02em}
  .stub-strip.show{display:block;animation:burnIn .45s ease}
  .stub-strip a{color:var(--ink);border-bottom:1px solid var(--accent-deep);padding-bottom:1px;transition:background .25s,border-color .25s}
  .stub-strip a:hover{background:var(--accent-soft);border-color:var(--ink)}

  /* ---------- 隐私时间线带 ---------- */
  .privacy{background:var(--ink);color:oklch(0.93 0.01 85);padding:90px 0 92px}
  .privacy .eyebrow{color:oklch(0.82 0.03 55)}
  .privacy .h2{color:oklch(0.96 0.008 85)}
  .privacy .h2 .latin{color:oklch(0.82 0.03 55)}
  .priv-lead{max-width:540px;margin:18px 0 34px;color:oklch(0.87 0.02 60);font-size:15.5px;line-height:1.9}
  .psteps{display:flex;gap:0;margin:10px 0 46px}
  .pstep{flex:1;position:relative;padding-top:26px;border-top:1px solid oklch(0.6 0.03 60 / 0.35)}
  .pstep::before{content:"";position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:0.9}
  .pstep b{display:block;font-size:15.5px;font-weight:600;color:oklch(0.95 0.01 85);letter-spacing:0.04em}
  .pstep i{display:block;font-family:var(--font-latin);font-style:italic;font-size:13px;color:oklch(0.78 0.05 90);letter-spacing:0.04em;margin-top:6px}
  .priv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .priv-item{background:oklch(0.30 0.025 250 / 0.5);border:1px solid oklch(0.6 0.03 60 / 0.16);border-radius:var(--radius);padding:24px 22px}
  .pi-en{font-family:var(--font-latin);font-style:italic;font-size:15px;color:oklch(0.82 0.04 145);letter-spacing:0.04em;margin-bottom:10px}
  .priv-item h3{font-size:17px;font-weight:700;color:oklch(0.97 0.008 85);letter-spacing:0.02em;margin-bottom:8px}
  .priv-item p{font-size:14.5px;line-height:1.9;color:oklch(0.87 0.02 60)}

  /* ---------- 尾 CTA + Footer ---------- */
  .final{position:relative;padding:96px 0 92px;text-align:center}
  .final-branch{width:220px;height:70px;margin:0 auto 24px;color:var(--faint);opacity:0.85}
  .final h2{font-size:clamp(30px,5vw,44px);font-weight:700;line-height:1.42;letter-spacing:0;color:var(--ink)}
  .final h2 .latin{display:block;font-size:0.34em;font-weight:400;margin-top:12px;letter-spacing:0.18em}
  .final p{margin:22px 0 30px;color:var(--muted);font-size:15.5px;line-height:1.9}
  .btn-primary{min-height:50px;padding:0 40px;border:none;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-sans);font-size:15.5px;font-weight:600;letter-spacing:0.14em;transition:background .25s,transform .15s}
  .btn-primary:hover{background:var(--accent-deep)}
  .btn-primary:active{transform:scale(0.98)}
  .footer{border-top:1px solid var(--border);padding:30px 0 34px}
  .footer-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
  .footer .brand .icon{color:var(--accent-deep)}
  .footer-links{display:flex;gap:22px}
  .footer-links a{font-family:var(--font-sans);font-size:13.5px;color:var(--muted);letter-spacing:0.02em;transition:color .25s}
  .footer-links a:hover{color:var(--ink)}
  .footer-copy{font-family:var(--font-latin);font-style:italic;font-size:13px;color:var(--muted);letter-spacing:0.08em}

  /* ---------- Reveal on scroll ---------- */
  .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
  .reveal.in{opacity:1;transform:none}

  /* ---------- Toast ---------- */
  .toast{position:fixed;top:calc(var(--nav-h) + 12px);left:50%;transform:translateX(-50%) translateY(-14px);background:var(--ink);color:oklch(0.95 0.01 85);padding:12px 26px;border-radius:999px;font-family:var(--font-sans);font-size:14.5px;letter-spacing:0.04em;opacity:0;pointer-events:none;transition:opacity .35s,transform .35s;z-index:150;box-shadow:var(--shadow);white-space:nowrap}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

  /* ---------- Leaf fall & embers ---------- */
  .falling{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}
  .flake{position:absolute;top:-24px;width:16px;height:16px;color:var(--accent);opacity:0.85;animation-name:fall;animation-timing-function:linear;animation-fill-mode:both}
  .flake svg{width:100%;height:100%}
  @keyframes fall{to{transform:translateY(108vh) rotate(240deg)}}
  .ember{position:absolute;bottom:-6px;width:5px;height:5px;border-radius:50%;background:var(--burn);box-shadow:0 0 8px var(--burn);animation-name:rise;animation-timing-function:ease-out;animation-fill-mode:both}
  @keyframes rise{to{transform:translateY(-46vh);opacity:0}}

  /* ---------- Responsive ---------- */
  /* 移动浏览器的地址栏会伸缩，用 dvh 让弹层始终完整落在可视区内 */
  @supports (height:100dvh){
    .nav-drawer{max-height:calc(100dvh - var(--nav-h))}
    .note-dialog{max-height:min(78dvh,760px)}
    .share-dialog{max-height:calc(100dvh - 44px)}
  }
  @media (max-width:860px){
    .pouch-grid.show,.priv-grid{grid-template-columns:1fr}
    .branch-flow{grid-template-columns:1fr;height:640px}
    .flow-col--b{display:none}
    .name-rite-inner{gap:28px}
    .name-widget{min-width:0}
    .psteps{flex-direction:column;gap:0}
    .pstep{padding:0 0 26px 30px;border-top:none;border-left:1px solid oklch(0.6 0.03 60 / 0.35);padding-left:30px}
    .pstep::before{top:0;left:-4px}
    /* 顶部只留「品牌 + 写一片叶子 + 通知」，五个幕收进收起式菜单 */
    .nav-links{display:none}
    .nav-menu-btn{display:grid}
    .nav-drawer{display:block}
    .nav-scrim.open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .24s ease}
  }
  /* 触屏手机：叶墙不再吃掉单指上下滑，翻页交还给页面本身 */
  @media (hover:none) and (max-width:860px){
    .branch-flow.is-flowing{touch-action:auto}
    .branch-flow.is-flowing .flow-col{cursor:default}
    .branch-flow.is-driving{cursor:default}
    .branch-flow.is-driving .flow-col .d-card{cursor:default}
    .hint-pointer{display:none}
    .hint-touch{display:inline}
  }
  @media (max-width:620px){
    .container{padding:0 18px}
    .nav-inner{height:58px;gap:8px}
    .nav-actions{gap:4px}
    .btn-nav{padding:0 15px;font-size:13.5px;letter-spacing:0.03em}
    .bell-panel{position:fixed;top:calc(var(--nav-h) + 8px);right:12px;left:12px;width:auto}
    .act-branch,.act-sent,.act-pouch{padding:62px 0 68px}
    .act-fade{padding:64px 0 70px}
    .branch-flow{height:min(60vh,480px)}
    .d-card{padding:18px 18px}
    .d-text{font-size:16px}
    .flow-hint{font-size:12.5px;line-height:1.75;letter-spacing:0.04em}
    .name-rite{padding:44px 0}
    .name-widget{padding:18px 20px}
    .act-alight{padding:52px 0 66px}
    .leaf-title{font-size:36px}
    .composer{padding:20px 18px}
    .burn-card{padding:28px 22px}
    .toast{white-space:normal;max-width:calc(100vw - 28px);text-align:center;line-height:1.6;padding:11px 20px}
    .note-dialog,.share-dialog{border-radius:16px}
    .note-form{padding:12px 14px 16px}
    .note-form input{padding:0 14px}
    .share-actions{padding:12px 16px 16px}
    .share-download{width:100%;justify-content:center}
    .sent-head{gap:12px}
    .sent-row{grid-template-columns:58px 1fr}
    .sent-stub{padding:14px 6px}
    .sent-stub .sn{font-size:12px}
    .sent-body{padding:16px 16px 12px}
    /* 手机端壳的防闪动位：只碰纯视觉，绝不隐藏任何功能件。
       带 .phone 前缀（由 index.html 的 bootstrap 同步加上），所以 mobile.css/mobile.js
       加载失败时后果仅限"顶栏矮一点"，幕二的输入框照旧能寄出。 */
    .phone .nav-inner{height:54px}
    .phone{scroll-padding-top:70px}
  }
  /* 极窄屏：导航里「写一片叶子」+ 通知 + 菜单要并排放下，去掉品牌上的装饰性拉丁字 */
  @media (max-width:420px){
    .nav-inner .brand-name small{display:none}
    .nav-inner{height:56px;gap:6px}
    .brand-name{font-size:18px}
    .btn-nav{padding:0 10px;font-size:13.5px}
    .composer{padding:18px 15px}
    .burn-card{padding:24px 18px}
  }

  @media (prefers-reduced-motion:reduce){
    *{animation:none !important;transition:none !important}
    html{scroll-behavior:auto}
    .reveal{opacity:1;transform:none}
    .branch-flow{height:auto;grid-template-columns:1fr;overflow:visible;-webkit-mask-image:none;mask-image:none}
    .flow-col--b{display:none}
  }

/* 叶墙续挂哨兵（功能元素，设计稿未含） */
.wall-more{text-align:center;margin:26px 0 0;padding:14px 10px 30px;font-size:13px;color:var(--faint);letter-spacing:0.08em}

/* ============================================================
   SEO 注入块样式（内容由 tools/seo-pages.mjs 在构建期写入）
   首页：常见问题区块 + 内链；内容页样式见 doc.css
   ============================================================ */
.seo-home-faq{padding:64px 0 8px;border-top:1px solid var(--border)}
.seo-home-faq .h2{margin-top:14px;margin-bottom:6px}
.seo-faq{display:grid;gap:12px;margin-top:26px;text-align:left}
.seo-faq-item{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);
  box-shadow:0 6px 22px oklch(0.27 0.03 248 / 0.05);
  padding:16px 20px;
}
.seo-faq-item h3{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:0.02em;margin:0 0 8px}
.seo-faq-item h3::before{content:"问";font-family:var(--font-sans);font-size:11px;font-weight:600;color:var(--accent-text);
  border:1px solid var(--accent);border-radius:5px;padding:1px 5px;margin-right:9px;vertical-align:1px}
.seo-faq-item p{font-size:14.5px;line-height:1.9;color:var(--fg);margin:0}
.seo-home-links{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:26px}
.seo-home-links a{font-family:var(--font-sans);font-size:13.5px;color:var(--accent-text);letter-spacing:0.02em;transition:color .25s}
.seo-home-links a:hover{color:var(--ink)}
.seo-home-links a::before{content:"→ ";color:var(--faint-2)}

/* 页脚内容导航：独占一行，位于「协议/隐私/关于」之下 */
.footer-seo{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px 20px;padding-top:16px;margin-top:4px;border-top:1px solid var(--border)}
.footer-seo a{font-family:var(--font-sans);font-size:13px;color:var(--muted);letter-spacing:0.02em;transition:color .25s}
.footer-seo a:hover{color:var(--ink)}

@media (max-width:640px){
  .seo-home-faq{padding:46px 0 4px}
  .seo-faq-item{padding:14px 15px}
  .seo-faq-item p{font-size:14px;line-height:1.85}
}
