html{scrollbar-gutter:stable}
body.journal-viewing{overflow:hidden}
.journal-entry{background:radial-gradient(ellipse at 30% 55%,rgba(231,182,119,.15),transparent 65%),var(--paper-deep)}
.journal-entry-inner{max-width:960px;margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:clamp(36px,8vw,100px)}
.journal-cover{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;width:min(280px,100%);aspect-ratio:4/5;margin:auto;padding:40px 28px 36px 40px;background:repeating-linear-gradient(0deg,rgba(138,107,65,.045) 0 1px,transparent 1px 4px),#e6d8bd;border:1px solid #cbb694;border-radius:4px 9px 9px 4px;box-shadow:inset 10px 0 0 rgba(117,81,47,.13),inset 13px 0 0 rgba(255,247,229,.35),5px 5px 0 #eee3cf,6px 6px 0 #cfbc9e,var(--shadow-print);transform:rotate(-4deg);transition:transform .65s var(--ease),box-shadow .65s var(--ease)}
.journal-cover::before{content:"";position:absolute;inset:15px 15px 15px 25px;border:1px dashed rgba(100,71,47,.25);border-radius:2px;pointer-events:none}
.journal-cover::after{content:"";position:absolute;right:30px;top:-3px;width:20px;height:54px;background:var(--rose);clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);opacity:.8}
.journal-cover:hover,.journal-cover:focus-visible{transform:translateY(-5px) rotate(-1deg);box-shadow:inset 10px 0 0 rgba(117,81,47,.13),inset 13px 0 0 rgba(255,247,229,.35),5px 5px 0 #eee3cf,6px 6px 0 #cfbc9e,0 28px 45px -25px rgba(62,38,22,.45)}
.journal-cover small{font-family:var(--latin);font-size:.82rem;letter-spacing:.16em;color:var(--ink-faint)}
.journal-cover-title{font-family:var(--hand);font-size:clamp(2rem,4vw,2.7rem);line-height:1.6;color:var(--ink-soft)}
.journal-cover-date{font-family:var(--latin);font-size:.86rem;color:var(--ink-faint)}
.journal-cover-seal{position:absolute;right:24px;bottom:25px;writing-mode:vertical-rl;border:1px solid var(--rose);border-radius:2px;padding:4px 2px;font-family:var(--hand);font-size:.95rem;color:var(--rose);transform:rotate(5deg)}
.journal-entry-copy h2{font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.5}
.journal-entry-copy h2 em{font-style:normal;color:var(--rose)}
.journal-entry-copy .lead{font-family:var(--sans);font-size:.98rem;line-height:1.9;color:var(--ink-soft);max-width:30em;margin-top:18px}
.journal-entry-copy .journal-little{font-family:var(--hand);font-size:1.05rem;color:var(--ink-faint);margin:22px 0}
.journal-enter{display:inline-flex;align-items:center;gap:20px;min-height:48px;padding:11px 20px;border:1px solid var(--paper-edge);background:var(--print);box-shadow:var(--shadow-print);border-radius:2px;font-family:var(--sans);font-size:.86rem;color:var(--ink-soft);transition:color .25s,border-color .25s}
.journal-enter:hover{color:var(--rose);border-color:var(--rose)}
.nav-links .nav-journal{font-family:var(--sans);font-size:.88rem;color:var(--ink-soft);min-height:44px;display:inline-flex;align-items:center}
.nav-links .nav-journal:hover{color:var(--rose)}
.journal-dialog{position:fixed;inset:0;margin:0;padding:0;width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;border:0;background:var(--paper);color:var(--ink)}
.journal-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
.journal-dialog::backdrop{background:var(--paper)}
.journal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:calc(10px + env(safe-area-inset-top,0px)) calc(24px + env(safe-area-inset-right,0px)) 10px calc(24px + env(safe-area-inset-left,0px));min-height:64px;border-bottom:1px solid var(--paper-edge);background:var(--paper)}
.journal-toolbar button{min-height:44px;font-family:var(--sans);font-size:.8rem;color:var(--ink-soft);white-space:nowrap}
.journal-toolbar button:hover{color:var(--rose)}
.journal-toolbar-title{font-family:var(--hand);font-size:1.08rem;color:var(--ink-faint);text-align:center}
.journal-frame{display:block;border:0;width:100%;height:100%;min-height:0;background:#fbf7ef}
@media(max-width:768px){
  .journal-entry-inner{grid-template-columns:1fr;gap:46px}
  .journal-cover{width:218px;padding:32px 24px 32px 36px;gap:18px}
  .journal-cover-title{font-size:2.1rem}
  .journal-entry-copy{max-width:460px;margin:auto;text-align:center}
  .journal-entry-copy .lead{font-size:.92rem}
  .journal-toolbar{gap:8px;padding-right:calc(12px + env(safe-area-inset-right,0px));padding-left:calc(12px + env(safe-area-inset-left,0px));min-height:60px}
  .journal-toolbar-title{font-size:.95rem}
  .journal-toolbar button{font-size:.73rem}
}


/* 聊天提醒卡片（花期主站，由 scripts/chat-notify.js 创建） */
.chat-notify-host{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:14px;z-index:120;display:flex;flex-direction:column;gap:10px;pointer-events:none}
.chat-notify{pointer-events:auto;position:relative;display:flex;align-items:center;gap:10px;max-width:min(86vw,340px);padding:12px 14px;border:1px solid rgba(0,0,0,.06);border-radius:14px;background:rgba(255,253,247,.97);box-shadow:0 12px 30px rgba(0,0,0,.14);cursor:pointer;font:inherit;text-align:left;color:inherit;opacity:0;transform:translateY(-8px) scale(.98);transition:opacity .22s ease,transform .22s ease}
.chat-notify.is-in{opacity:1;transform:none}
.chat-notify:focus-visible{outline:2px solid var(--accent,#c0443d);outline-offset:2px}
.chat-notify__avatar{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:var(--accent,#c0443d);color:#fffdf6;display:grid;place-items:center;font-size:.9rem}
.chat-notify__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.chat-notify__title{font-size:.86rem;font-weight:600}
.chat-notify__preview{font-size:.78rem;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-notify__badge{flex:0 0 auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent,#c0443d);color:#fffdf6;font-size:.7rem;display:grid;place-items:center}
.chat-notify__jump{flex:0 0 auto;font-size:.72rem;opacity:.6;border-left:1px solid rgba(0,0,0,.08);padding-left:8px}
.chat-notify__close{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center;font-size:.8rem;line-height:1}
@media(max-width:768px){.chat-notify-host{left:14px;right:14px;top:calc(10px + env(safe-area-inset-top,0px))}.chat-notify{max-width:none;width:100%}}
