:root{
    --bg:oklch(0.97 0.012 85);
    --surface:oklch(0.986 0.01 85);
    --fg:oklch(0.30 0.034 246);
    --muted:oklch(0.47 0.035 145);
    --faint:oklch(0.52 0.04 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.52 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;
    --font-serif:'Noto Serif SC','Source Han Serif SC','Songti SC',serif;
    --font-latin:'EB Garamond','Noto Serif SC',serif;
  }

  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth;scroll-padding-top:76px}
  body{
    font-family:var(--font-serif);
    color:var(--fg);
    line-height:1.85;
    letter-spacing:0.02em;
    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;
  }
  ::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.05em;color:var(--faint)}
  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);letter-spacing:0.14em}
  .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:900;line-height:1.35;letter-spacing:0.03em;color:var(--ink)}
  .h2 .latin{display:block;font-size:0.42em;font-weight:400;margin-top:6px;letter-spacing:0.18em}

  /* ---------- Nav ---------- */
  .nav{position:sticky;top: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:900;font-size:19px;letter-spacing:0.06em}
  .brand-name small{font-family:var(--font-latin);font-weight:400;font-size:11px;letter-spacing:0.3em;margin-left:6px;color:var(--faint)}
  .nav-links{display:flex;gap:26px}
  .nav-links a{font-size:14px;color:var(--muted);letter-spacing:0.1em;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-size:14px;letter-spacing:0.1em;transition:border-color .25s,color .25s}
  .btn-nav:hover{border-color:var(--accent-deep);color:var(--ink)}

  /* ---------- 幕一 · 落枝 (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:900;line-height:1.32;letter-spacing:0.05em;color:var(--ink)}
  .leaf-title .latin{display:block;font-size:0.2em;letter-spacing:0.28em;margin-top:14px}
  .leaf-lead{max-width:560px;margin:26px auto 30px;color:var(--muted);font-size:16px}
  .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-size:12.5px;color:var(--faint)}
  .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-size:14px;font-weight:600;color:var(--ink);letter-spacing:0.08em;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:16px;line-height:1.8;letter-spacing:0.02em;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-size:13.5px;color:var(--muted);letter-spacing:0.06em;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:13px;color:var(--faint);letter-spacing:0.08em}
  .burn-hint{display:none;margin-top:10px;font-size:12.5px;color:var(--burn-ink);background:var(--burn-soft);border-radius:8px;padding:8px 12px;letter-spacing:0.05em}
  .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-size:16px;font-weight:900;letter-spacing:0.22em;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-size:12.5px;color:var(--faint);letter-spacing:0.08em}
  .alight-note b{color:var(--muted);font-weight:600}

  /* ---------- 枝名仪式 ---------- */
  .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:900;line-height:1.35;color:var(--ink);letter-spacing:0.03em}
  .name-rite h3 .latin{display:block;font-size:0.4em;margin-top:4px;letter-spacing:0.18em}
  .name-rite p{margin-top:10px;font-size:14px;color:var(--muted);max-width:420px}
  .name-widget{flex:1;min-width:300px;border:1.5px dashed var(--faint);border-radius:var(--radius);padding:22px 26px;display:flex;flex-direction:column;gap:8px}
  .nw-label{font-size:12px;color:var(--faint);letter-spacing:0.14em}
  .nw-name{font-size:30px;font-weight:900;color:var(--ink);letter-spacing:0.06em;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-size:13px;color:var(--muted)}
  .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-size:13.5px;letter-spacing:0.1em;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-size:12px;color:var(--faint);letter-spacing:0.06em}
  .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}
  .flow-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 22px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);font-size:14px;letter-spacing:0.08em;transition:border-color .25s,color .25s,background .25s}
  .flow-btn:hover{border-color:var(--accent)}
  .flow-btn[aria-pressed="true"]{background:var(--accent-soft);border-color:transparent;color:var(--ink);font-weight:600}
  .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}
  /* 风自动滚动由 JS 驱动（有界：可上下回看，滚到底续挂） */
  .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}
  .flow-hint{margin-top:14px;font-size:12.5px;color:var(--faint);letter-spacing:0.12em}
  .flow-col{position:relative;overflow:hidden}
  .flow-track{display:flex;flex-direction:column;will-change:transform;animation:none !important}
  .flow-item{margin-bottom:20px}
  @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-size:12.5px;color:var(--faint);flex-wrap:wrap}
  .d-meta .nm{font-weight:600;color:var(--ink);letter-spacing:0.04em}
  .badge--burn{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--burn-ink);background:var(--burn-soft);border-radius:999px;padding:2px 10px;letter-spacing:0.1em;font-weight:600}
  .d-text{margin:12px 0 16px;font-size:15.5px;color:var(--fg);line-height:1.8}
  .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(--faint);font-size:13px;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-size:12px;color:var(--faint);letter-spacing:0.04em}
  .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-size:12.5px;letter-spacing:0.06em;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}

  /* ---------- 寄语弹层：游客点叶留言（无需登录） ---------- */
  .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.05em;font-size:15px}
  .note-head .t{font-size:12.5px;color:var(--faint);letter-spacing:0.06em}
  .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(--faint);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:16px;line-height:1.85;color:var(--fg)}
  .note-sec{display:flex;align-items:center;gap:10px;margin:6px 0 14px;font-size:13px;color:var(--muted);letter-spacing:0.12em}
  .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-size:12.5px;margin-bottom:3px;flex-wrap:wrap}
  .c-meta .nm{font-weight:600;color:var(--ink);letter-spacing:0.04em}
  .c-meta .t{color:var(--faint)}
  .c-you{font-size:10.5px;color:var(--accent-text);border:1px solid var(--accent);border-radius:999px;padding:0 7px;letter-spacing:0.1em;line-height:1.6}
  .comment p{font-size:14px;line-height:1.8;color:var(--fg);letter-spacing:0.02em}
  .note-empty{margin:6px 0 16px;padding:26px 0;text-align:center;color:var(--faint);font-size:14px;line-height:1.9;letter-spacing:0.06em}
  .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-serif);font-size:14px;color:var(--fg);letter-spacing:0.02em;transition:border-color .25s}
  .note-form input::placeholder{color:var(--faint)}
  .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-size:14.5px;font-weight:900;letter-spacing:0.16em;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:15px}
  .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:16px;line-height:1.85;color:oklch(0.9 0.02 80);letter-spacing:0.03em}
  .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:12.5px;color:oklch(0.72 0.03 45);letter-spacing:0.1em;text-align:center;margin-top:2px}
  .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-size:16px;font-weight:900;letter-spacing:0.2em;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 h4{font-size:24px;font-weight:900;color:var(--ink);letter-spacing:0.04em;margin-bottom:8px}
  .burn-ash .latin{font-size:14px}
  .burn-ash p{margin:16px 0 24px;color:var(--muted);font-size:14.5px}
  .again-btn{min-height:48px;padding:0 30px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);font-size:15px;letter-spacing:0.14em;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.1em}
  .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-size:13px;color:var(--accent-text);letter-spacing:0.1em}
  .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.52 0.04 140 / 0.6)}
  .pouch-empty p{font-size:15.5px;line-height:2;letter-spacing:0.06em}
  .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-size:12px;color:var(--faint);flex-wrap:wrap}
  .p-entry .p-meta b{color:var(--ink);font-weight:600}
  .p-entry p{font-size:13.5px;color:var(--muted);line-height:1.75}
  .p-hint{display:inline-flex;align-items:center;gap:4px;margin-top:2px;font-size:12px;color:var(--faint);letter-spacing:0.08em;transition:color .25s}
  .p-entry:hover .p-hint,.p-entry:focus-visible .p-hint{color:var(--accent-text)}

  /* ---------- 存根 · 我寄出的叶子（本机记录） ---------- */
  .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-size:13px;color:var(--muted);letter-spacing:0.1em;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:14.5px;color:var(--muted)}
  .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.52 0.04 140 / 0.65)}
  .sent-empty p{font-size:15px;line-height:2;letter-spacing:0.06em}
  .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-size:14px;letter-spacing:0.14em;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:12.5px;color:var(--muted);letter-spacing:0.06em}
  .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-size:12.5px;color:var(--muted)}
  .sent-meta .sent-name{font-weight:600;color:var(--ink);letter-spacing:0.04em}
  .sent-meta .badge--burn .cd-t{font-family:var(--font-latin);font-style:italic;letter-spacing:0.06em}
  .sent-state{font-size:12px;letter-spacing:0.08em}
  .sent-text{display:block;margin-top:10px;font-size:15px;color:var(--fg);line-height:1.8;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-size:12px;color:var(--muted);letter-spacing:0.04em;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-size:12.5px;letter-spacing:0.06em;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-size:12.5px;color:var(--muted);letter-spacing:0.05em}
  .sent-note b{color:var(--ink);font-weight:600}
  .stub-strip{display:none;margin-top:16px;font-size:13px;color:var(--muted);letter-spacing:0.06em}
  .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.72 0.03 55)}
  .privacy .h2{color:oklch(0.96 0.008 85)}
  .privacy .h2 .latin{color:oklch(0.78 0.03 55)}
  .priv-lead{max-width:540px;margin:18px 0 34px;color:oklch(0.8 0.02 60);font-size:15px}
  .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:15px;font-weight:600;color:oklch(0.95 0.01 85);letter-spacing:0.1em}
  .pstep i{display:block;font-family:var(--font-latin);font-style:italic;font-size:12px;color:oklch(0.65 0.05 90);letter-spacing:0.1em;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.78 0.04 145);letter-spacing:0.06em;margin-bottom:10px}
  .priv-item h4{font-size:17px;font-weight:900;color:oklch(0.97 0.008 85);letter-spacing:0.06em;margin-bottom:8px}
  .priv-item p{font-size:13.5px;line-height:1.9;color:oklch(0.78 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:900;line-height:1.4;letter-spacing:0.05em;color:var(--ink)}
  .final h2 .latin{display:block;font-size:0.32em;font-weight:400;margin-top:10px;letter-spacing:0.22em}
  .final p{margin:22px 0 30px;color:var(--muted);font-size:15px}
  .btn-primary{min-height:50px;padding:0 40px;border:none;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:16px;font-weight:900;letter-spacing:0.24em;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-size:13px;color:var(--faint);letter-spacing:0.08em;transition:color .25s}
  .footer-links a:hover{color:var(--ink)}
  .footer-copy{font-family:var(--font-latin);font-style:italic;font-size:12.5px;color:var(--faint);letter-spacing:0.1em}

  /* ---------- 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:76px;left:50%;transform:translateX(-50%) translateY(-14px);background:var(--ink);color:oklch(0.95 0.01 85);padding:12px 26px;border-radius:999px;font-size:14px;letter-spacing:0.08em;opacity:0;pointer-events:none;transition:opacity .35s,transform .35s;z-index:130;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 ---------- */
  @media (max-width:860px){
    .nav-links a{font-size:13px}
    .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}
    .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}
  }
  @media (max-width:620px){
    .container{padding:0 18px}
    .nav-inner{height:58px}
    .nav-links{display:none}
    .act-alight{padding:52px 0 66px}
    .leaf-title{font-size:36px}
    .composer{padding:20px 18px}
    .burn-card{padding:28px 22px}
    .sent-row{grid-template-columns:58px 1fr}
    .sent-stub{padding:14px 6px}
    .sent-stub .sn{font-size:11.5px}
    .sent-body{padding:16px 16px 12px}
  }

  @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}
  }

/* ---------- 分享：卡片分享钮 + 分享弹层 ---------- */
.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(--faint);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-size:13px;letter-spacing:0.08em;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-size:15px;font-weight:600;color:var(--ink);letter-spacing:0.08em}
.share-body{padding:16px 20px 8px;overflow-y:auto;display:grid;place-items:center}
.share-body img{display:block;width:100%;max-width:400px;height:auto;aspect-ratio:1080 / 1500;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-size:12.5px;color:var(--faint);letter-spacing:0.04em}
.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-size:14.5px;font-weight:900;letter-spacing:0.16em;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}
/* ---------- 消息通知：铃铛 + 小红点 + 消息面板 ---------- */
.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(--bg)}
.bell-btn[aria-expanded="true"]{color:var(--ink);background:var(--bg)}
.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 var(--surface)}
.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:var(--shadow);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-size:14px;font-weight:600;color:var(--ink);letter-spacing:0.1em}
.bell-readall{min-height:32px;padding:0 4px;border:none;background:transparent;color:var(--muted);font-size:12.5px;letter-spacing:0.06em}
.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;text-align:left;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-deep);background:var(--bg)}
.bell-avatar .icon{width:14px;height:14px}
.bell-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.bell-line{font-size:13.5px;color:var(--fg);letter-spacing:0.02em;line-height:1.6}
.bell-line b{font-weight:600;color:var(--ink)}
.bell-text{font-size:13px;color:var(--muted);line-height:1.7;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bell-time{font-size:11.5px;color:var(--faint);letter-spacing:0.06em}
.bell-empty{padding:30px 18px;text-align:center;color:var(--faint);font-size:13.5px;line-height:1.9;letter-spacing:0.06em}
@media (max-width:640px){
  .bell-panel{position:fixed;top:66px;right:12px;left:12px;width:auto}
}
/* 叶墙到底提示 */
.wall-more{text-align:center;margin:26px 0 0;padding:14px 10px 30px;font-size:13px;color:var(--faint);letter-spacing:0.08em}