/* ==========================================================================
   小时候 · little days
   —— 面向女孩的童年回访空间
   设计核心：一切皆贴纸。厚白边、细裁切线、软投影，悬停时像被撕起来。
   ========================================================================== */

/* ---------- 1. 糖纸色 ---------- */
:root{
  --paper:      #FBF4F9;   /* 藕荷信纸 */
  --card:       #FFFDFE;
  --ink:        #4A3B52;   /* 梅子墨（不用纯黑） */
  --ink-soft:   #7C6B85;
  --ink-faint:  #B3A6BC;

  --pink:       #F7A8BE;
  --pink-deep:  #E4789A;
  --lilac:      #C4A7E7;
  --lilac-deep: #8E6BC4;
  --butter:     #FFE3A3;
  --butter-deep:#E0A94A;
  --mint:       #A8E0D0;
  --sky:        #A9CDF0;

  --cut:        rgba(74,59,82,.13);   /* 裁切线 */
  --rule:       rgba(74,59,82,.09);   /* 格纹线 */

  --lift:    0 10px 22px -12px rgba(74,59,82,.42);
  --lift-hi: 0 20px 38px -16px rgba(74,59,82,.50);
  --die:     0 0 0 6px #fff, 0 0 0 7.5px var(--cut), var(--lift);

  --font-hand:  "Kaiti SC","STKaiti","KaiTi","楷体","Kaiti TC",serif;
  --font-body:  "PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-latin: Georgia,"Times New Roman",serif;

  --spine: 92px;
  --radius: 20px;
}

/* ---------- 2. 基座 ---------- */
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.9;
  color:var(--ink);
  background-color:var(--paper);
  /* 方格纸 + 顶部的玻璃糖纸光晕 */
  background-image:
    radial-gradient(1200px 620px at 22% -10%, rgba(196,167,231,.30), transparent 62%),
    radial-gradient(900px 520px at 92% 4%,  rgba(247,168,190,.26), transparent 60%),
    radial-gradient(760px 480px at 60% 108%, rgba(255,227,163,.26), transparent 62%),
    linear-gradient(var(--rule) 1px, transparent 1px),
    linear-gradient(90deg, var(--rule) 1px, transparent 1px);
  background-size:auto, auto, auto, 26px 26px, 26px 26px;
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg{ display:block; max-width:100%; }
button,input,select,textarea{ font:inherit; color:inherit; }
a{ color:var(--lilac-deep); text-decoration-thickness:1px; text-underline-offset:3px; }

:focus-visible{
  outline:3px solid var(--lilac-deep);
  outline-offset:3px;
  border-radius:6px;
}

.visually-hidden{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ---------- 3. 书脊导航 ---------- */
.spine{
  position:fixed; inset:0 auto 0 0; width:var(--spine); z-index:60;
  display:flex; flex-direction:column; align-items:center;
  padding:34px 0 24px;
  background:linear-gradient(180deg,#FFFCFE,#FBF0F7);
  border-right:1px solid var(--rule);
  box-shadow:6px 0 22px -16px rgba(74,59,82,.5);
}
.spine__mark{
  font-family:var(--font-hand);
  font-size:26px; letter-spacing:.34em; text-indent:.34em;
  writing-mode:vertical-rl; text-orientation:upright;
  color:var(--ink); margin-bottom:auto;
  text-shadow:0 2px 0 #fff;
}
.spine__mark small{
  display:block; font-family:var(--font-latin); font-style:italic;
  font-size:11px; letter-spacing:.16em; text-indent:.16em;
  color:var(--ink-faint); margin-top:14px;
}
.spine__nav{
  display:flex; flex-direction:column; gap:16px; margin-top:auto;
}
.navdot{
  --tint:var(--lilac);
  position:relative; width:46px; height:46px; border:0; padding:0;
  border-radius:50%; background:var(--tint); cursor:pointer;
  display:grid; place-items:center;
  font-family:var(--font-hand); font-size:16px; color:#fff;
  text-shadow:0 1px 2px rgba(74,59,82,.32);
  box-shadow:0 0 0 4px #fff, 0 0 0 5px var(--cut), 0 6px 12px -6px rgba(74,59,82,.5);
  transition:transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .18s ease;
}
.navdot:hover{ transform:translateY(-3px) scale(1.06) rotate(-4deg); }
.navdot[aria-current="page"]{
  box-shadow:0 0 0 4px #fff, 0 0 0 5.5px var(--ink), 0 8px 16px -8px rgba(74,59,82,.6);
}
.navdot__tip{
  position:absolute; left:calc(100% + 12px); top:50%; transform:translateY(-50%);
  background:var(--ink); color:#fff; font-family:var(--font-body); font-size:12px;
  line-height:1; padding:7px 10px; border-radius:8px; white-space:nowrap;
  opacity:0; pointer-events:none; transition:opacity .16s ease;
}
.navdot:hover .navdot__tip, .navdot:focus-visible .navdot__tip{ opacity:1; }

/* ---------- 4. 版面 ---------- */
.page{
  margin-left:var(--spine);
  padding:64px 5vw 120px;
  max-width:1180px;
}
.page--wide{ max-width:none; }

.eyebrow{
  font-family:var(--font-latin); font-style:italic;
  font-size:13px; letter-spacing:.14em; color:var(--ink-faint);
  margin:0 0 10px;
}
h1,h2,h3{ font-family:var(--font-hand); font-weight:400; line-height:1.35; margin:0; }
h1{ font-size:clamp(38px,6vw,66px); letter-spacing:.06em; }
h2{ font-size:clamp(26px,3.4vw,38px); letter-spacing:.05em; }
h3{ font-size:20px; letter-spacing:.04em; }
.lede{
  font-family:var(--font-hand);
  font-size:clamp(17px,2.1vw,21px);
  color:var(--ink-soft); max-width:34em; margin:14px 0 0;
}
.rule-dots{
  border:0; height:12px; margin:44px 0;
  background-image:radial-gradient(var(--ink-faint) 1.6px, transparent 1.7px);
  background-size:14px 12px; background-position:center;
  opacity:.5;
}

/* ---------- 5. 模切贴纸（签名元素） ---------- */
.sticker{
  --r:0deg; --ty:0px; --s:1;
  position:relative;
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--die);
  transform:rotate(var(--r)) translateY(var(--ty)) scale(var(--s));
  transition:transform .22s cubic-bezier(.34,1.56,.64,1), box-shadow .22s ease;
}
a.sticker, button.sticker{ display:block; color:inherit; text-decoration:none; text-align:left; border:0; padding:0; }
.sticker--lift:hover, .sticker--lift:focus-visible{
  --ty:-8px; --s:1.025;
  box-shadow:0 0 0 6px #fff, 0 0 0 7.5px var(--cut), var(--lift-hi);
  z-index:5;
}

/* 和纸胶带 */
.tape{
  position:absolute; width:96px; height:26px; z-index:3;
  background:
    repeating-linear-gradient(45deg, rgba(255,255,255,.5) 0 5px, transparent 5px 11px),
    var(--tape-tint,var(--lilac));
  opacity:.78; mix-blend-mode:multiply;
  clip-path:polygon(1.5% 4%, 99% 0, 97.5% 96%, 0 100%);
  pointer-events:none;
}
.tape--tl{ top:-13px; left:22px; transform:rotate(-7deg); }
.tape--tr{ top:-13px; right:22px; transform:rotate(6deg); }
.tape--c { top:-14px; left:50%; margin-left:-48px; transform:rotate(-2.5deg); }

/* 回形针 */
.clip{
  position:absolute; top:-16px; right:34px; width:20px; height:44px; z-index:3;
  border:3px solid var(--ink-faint); border-radius:11px;
  border-bottom-color:transparent; opacity:.65; pointer-events:none;
}

/* ---------- 6. 封面 ---------- */
.hero{
  position:relative;
  min-height:min(78vh,660px);
  display:flex; flex-direction:column; justify-content:center;
  padding:36px 0 64px;
}
.hero__board{ position:relative; max-width:760px; }

.namesticker{
  position:relative; display:inline-block;
  background:var(--card); border-radius:26px;
  padding:20px 40px 26px;
  box-shadow:var(--die);
  cursor:grab; touch-action:none;
  transform:rotate(-2.2deg);
  will-change:transform;
}
.namesticker:active{ cursor:grabbing; }
.namesticker h1{ margin:0; white-space:nowrap; }
.namesticker h1 .hl{ white-space:nowrap; }
.namesticker h1 .hl{
  background:linear-gradient(transparent 62%, rgba(247,168,190,.72) 62%);
  padding:0 .08em;
}
.namesticker__sub{
  font-family:var(--font-hand); color:var(--ink-soft);
  font-size:clamp(15px,1.9vw,19px); margin:6px 0 0;
}
.namesticker__hint{
  position:absolute; right:-6px; bottom:-16px;
  font-size:12px; color:var(--ink-faint); font-family:var(--font-body);
  opacity:0; transition:opacity .2s ease;
}
.namesticker:hover .namesticker__hint{ opacity:1; }
.namesticker--moved{ transform:none; }

.hero__lines{ margin-top:42px; display:flex; flex-direction:column; gap:6px; }
.hero__lines p{
  font-family:var(--font-hand); font-size:clamp(16px,2vw,20px);
  color:var(--ink-soft); margin:0;
}
.hero__lines p:first-child{ color:var(--ink); }

/* ---------- 7. 房间三贴纸 ---------- */
.rooms{
  display:grid; gap:38px 30px;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
}
.room{
  padding:30px 26px 26px;
  display:flex; flex-direction:column; min-height:290px;
}
.room__badge{
  width:62px; height:62px; border-radius:50%;
  display:grid; place-items:center; font-size:30px;
  background:var(--tint,var(--lilac));
  box-shadow:inset 0 -3px 0 rgba(74,59,82,.10), 0 0 0 4px #fff, 0 0 0 5px var(--cut);
  margin-bottom:18px;
}
.room h3{ font-size:23px; margin-bottom:8px; }
.room p{ margin:0 0 18px; color:var(--ink-soft); font-size:14.5px; line-height:1.85; }
.room__go{
  margin-top:auto; align-self:flex-start;
  font-family:var(--font-hand); font-size:16px; color:var(--ink);
  border-bottom:2px solid var(--tint,var(--lilac)); padding-bottom:2px;
}
.room .tape{ --tape-tint:var(--tint,var(--lilac)); }

/* ---------- 8. 通用组件 ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  border:0; cursor:pointer; border-radius:999px;
  padding:12px 24px; font-family:var(--font-hand); font-size:17px; letter-spacing:.04em;
  background:var(--ink); color:#fff;
  box-shadow:0 8px 18px -10px rgba(74,59,82,.9);
  transition:transform .16s cubic-bezier(.34,1.56,.64,1), box-shadow .16s ease, background .16s ease;
}
.btn:hover{ transform:translateY(-3px) rotate(-1.4deg); box-shadow:0 14px 24px -12px rgba(74,59,82,.9); }
.btn--soft{ background:#fff; color:var(--ink); box-shadow:0 0 0 3px #fff, 0 0 0 4.5px var(--cut), var(--lift); }
.btn--pink{ background:var(--pink-deep); }
.btn--lilac{ background:var(--lilac-deep); }
.btn--sm{ padding:8px 16px; font-size:14px; }
.btn--icon{ padding:8px 12px; font-size:15px; }
.btn:disabled{ opacity:.4; cursor:not-allowed; transform:none; }

.field{ display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
.field > label{
  font-family:var(--font-hand); font-size:16px; color:var(--ink-soft);
}
.field input[type="text"], .field textarea, .field select{
  width:100%; border:1.5px dashed var(--cut); border-radius:14px;
  background:rgba(255,255,255,.72);
  padding:12px 15px; font-family:var(--font-body); font-size:15px; line-height:1.8;
  transition:border-color .16s ease, background .16s ease;
}
.field textarea{ resize:vertical; min-height:190px; }
.field input:focus, .field textarea:focus, .field select:focus{
  border-style:solid; border-color:var(--lilac-deep); background:#fff; outline:none;
}

/* 选项小圆片 */
.pills{ display:flex; flex-wrap:wrap; gap:9px; }
.pill{
  --tint:var(--lilac);
  border:0; cursor:pointer; border-radius:999px;
  padding:8px 15px; font-size:14px; font-family:var(--font-body);
  background:#fff; color:var(--ink-soft);
  box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--cut);
  transition:transform .15s ease, color .15s ease, background .15s ease, box-shadow .15s ease;
}
.pill:hover{ transform:translateY(-2px); color:var(--ink); }
.pill[aria-pressed="true"]{
  background:var(--tint); color:#fff;
  box-shadow:0 0 0 2px #fff, 0 0 0 3.5px var(--ink);
  transform:translateY(-2px) rotate(-2deg);
}

/* ---------- 9. 日记 ---------- */
.diary-layout{
  display:grid; gap:40px; align-items:start;
  grid-template-columns:minmax(0,1fr);
}
@media (min-width:1080px){
  .diary-layout{ grid-template-columns:minmax(340px,420px) minmax(0,1fr); }
}

.promptcard{ padding:26px 24px 22px; background:linear-gradient(160deg,#FFFDFE,#FFF6FB); }
.promptcard__q{
  font-family:var(--font-hand); font-size:19px; line-height:1.7;
  min-height:96px; margin:10px 0 18px; color:var(--ink);
}

.editor{ padding:30px 30px 26px; }
.editor__meta{
  display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center;
  font-family:var(--font-latin); font-style:italic; font-size:14px; color:var(--ink-faint);
  margin-bottom:22px; padding-bottom:14px; border-bottom:1.5px dashed var(--cut);
}

.entries{ margin-top:56px; display:flex; flex-direction:column; gap:40px; }
.entry{
  background:
    linear-gradient(90deg, transparent 0 52px, rgba(247,168,190,.5) 52px 53.5px, transparent 53.5px),
    linear-gradient(rgba(74,59,82,.055) 1px, transparent 1px) 0 0/100% 26px,
    linear-gradient(90deg, rgba(74,59,82,.055) 1px, transparent 1px) 0 0/26px 100%,
    var(--card);
  border-radius:14px;
  padding:30px 32px 26px 72px;
  box-shadow:0 0 0 5px #fff, 0 0 0 6.5px var(--cut), var(--lift);
  position:relative;
}
.entry:nth-child(3n+1){ transform:rotate(-.55deg); }
.entry:nth-child(3n+2){ transform:rotate(.5deg); }
.entry:nth-child(3n)  { transform:rotate(-.25deg); }
.entry__head{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; margin-bottom:12px;
}
.entry__title{ font-family:var(--font-hand); font-size:23px; margin:0; }
.entry__date{
  font-family:var(--font-latin); font-style:italic; font-size:13px;
  color:var(--ink-faint); letter-spacing:.04em;
}
.entry__mood{
  display:inline-flex; align-items:center; gap:5px;
  background:#fff; border-radius:999px; padding:3px 11px 3px 8px;
  font-size:12.5px; color:var(--ink-soft);
  box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--cut);
}
.entry__body{
  white-space:pre-wrap; font-family:var(--font-hand); font-size:17.5px;
  line-height:2.05; color:var(--ink); margin:0 0 18px;
}
.entry__acts{ display:flex; gap:8px; flex-wrap:wrap; }
.entry__seal{
  position:absolute; left:14px; bottom:16px;
  font-size:30px; transform:rotate(-8deg); opacity:.9;
}
.empty{
  text-align:center; padding:64px 24px; color:var(--ink-faint);
  font-family:var(--font-hand); font-size:19px;
}
.empty span{ display:block; font-size:40px; margin-bottom:14px; }

/* ---------- 10. 换装娃娃 ---------- */
.doll-layout{
  display:grid; gap:38px; align-items:start;
  grid-template-columns:minmax(0,1fr);
}
@media (min-width:1000px){
  .doll-layout{ grid-template-columns:minmax(300px,380px) minmax(0,1fr); }
}
.doll-stage{
  padding:22px; display:flex; justify-content:center;
  background:var(--card); position:relative; overflow:hidden;
}
.doll-stage svg{ width:100%; max-width:340px; height:auto; border-radius:12px; }
.doll-tabs{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:22px; }
.doll-panel{ padding:26px 24px 22px; }
.doll-grid{
  display:grid; gap:14px;
  grid-template-columns:repeat(auto-fill,minmax(96px,1fr));
}
.doll-item{
  border:0; cursor:pointer; background:#fff; padding:9px 9px 7px; border-radius:14px;
  box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--cut);
  transition:transform .16s cubic-bezier(.34,1.56,.64,1), box-shadow .16s ease;
  display:flex; flex-direction:column; align-items:center; gap:5px;
}
.doll-item:hover{ transform:translateY(-4px) rotate(-2deg); }
.doll-item[aria-pressed="true"]{
  box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--lilac-deep);
  transform:translateY(-3px);
}
.doll-item svg{ width:100%; height:60px; }
.doll-item span{ font-size:12.5px; color:var(--ink-soft); font-family:var(--font-body); }
.doll-item--wide svg{ height:46px; }
.doll-item--tall svg{ height:78px; }

/* ---------- 11. 手机壳 ---------- */
.case-layout{
  display:grid; gap:38px; align-items:start;
  grid-template-columns:minmax(0,1fr);
}
@media (min-width:1040px){
  .case-layout{ grid-template-columns:minmax(300px,360px) minmax(0,1fr); }
}
.case-stage{
  padding:26px; display:flex; flex-direction:column; align-items:center; gap:18px;
  background:var(--card);
}
#case-svg{ width:100%; max-width:320px; height:auto; touch-action:none; cursor:default; }
#case-svg .stk{ cursor:grab; }
#case-svg .stk.is-sel{ cursor:grabbing; }
.case-tools{ padding:26px 24px 22px; }
.case-selected{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  padding:12px 14px; border-radius:14px; background:rgba(196,167,231,.14);
  font-size:13.5px; color:var(--ink-soft); margin-bottom:20px; min-height:52px;
}
.case-selected strong{ font-family:var(--font-hand); font-size:16px; color:var(--ink); }
.swatches{ display:flex; flex-wrap:wrap; gap:11px; }
.swatch{
  width:42px; height:42px; border:0; border-radius:50%; cursor:pointer; padding:0;
  box-shadow:0 0 0 2.5px #fff, 0 0 0 4px var(--cut);
  transition:transform .16s cubic-bezier(.34,1.56,.64,1), box-shadow .16s ease;
}
.swatch:hover{ transform:translateY(-3px) scale(1.07); }
.swatch[aria-pressed="true"]{ box-shadow:0 0 0 2.5px #fff, 0 0 0 5px var(--ink); transform:scale(1.05); }
.sticker-sheet{
  display:grid; gap:12px; grid-template-columns:repeat(auto-fill,minmax(62px,1fr));
}
.sheet-item{
  border:0; cursor:pointer; background:#fff; border-radius:14px; padding:7px;
  box-shadow:0 0 0 2px #fff, 0 0 0 3px var(--cut);
  transition:transform .16s cubic-bezier(.34,1.56,.64,1);
  display:grid; place-items:center;
}
.sheet-item svg, .sheet-item span{ width:100%; height:44px; }
.sheet-item span{ display:grid; place-items:center; font-size:28px; }
.sheet-item:hover{ transform:translateY(-4px) rotate(3deg) scale(1.05); }

/* ---------- 12. 关于我 ---------- */
.about{
  padding:34px 32px 30px; max-width:640px;
  background:linear-gradient(155deg,#FFFDFE,#FDF5FF);
}
.about h2{ margin-bottom:14px; }
.about p{ margin:0 0 14px; color:var(--ink-soft); font-family:var(--font-hand); font-size:17px; }
.about__sig{
  font-family:var(--font-latin); font-style:italic; font-size:15px;
  color:var(--ink); text-align:right; margin-top:22px;
}

/* ---------- 13. 页脚 ---------- */
.foot{
  margin-left:var(--spine);
  padding:0 5vw 56px; max-width:1180px;
  font-size:13px; color:var(--ink-faint);
  display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center;
}
.foot__dots{ display:flex; gap:6px; }
.foot__dots i{ width:9px; height:9px; border-radius:50%; display:block; }

/* ---------- 14. 入场：贴纸被撕下来 ---------- */
@keyframes peel-in{
  from{ opacity:0; transform:rotate(calc(var(--r,0deg) * 3)) translateY(26px) scale(.86); }
  to  { opacity:1; transform:rotate(var(--r,0deg)) translateY(0) scale(1); }
}
.peel{ animation:peel-in .62s cubic-bezier(.34,1.4,.5,1) both; animation-delay:var(--d,0ms); }

@keyframes twinkle{
  0%,100%{ opacity:.35; transform:scale(.86) rotate(0deg); }
  50%    { opacity:1;   transform:scale(1.1) rotate(18deg); }
}
.spark{ animation:twinkle 3.4s ease-in-out infinite; animation-delay:var(--d,0ms); }

/* 提示气泡 */
.toast{
  position:fixed; left:50%; bottom:38px; transform:translate(-50%,20px);
  background:var(--ink); color:#fff; font-family:var(--font-hand); font-size:16px;
  padding:12px 24px; border-radius:999px; z-index:200;
  box-shadow:0 14px 30px -12px rgba(74,59,82,.9);
  opacity:0; pointer-events:none; transition:opacity .24s ease, transform .24s cubic-bezier(.34,1.56,.64,1);
}
.toast.is-on{ opacity:1; transform:translate(-50%,0); }

/* ---------- 15. 窄屏：书脊变顶栏 ---------- */
@media (max-width:820px){
  :root{ --spine:0px; }
  .spine{
    inset:0 0 auto 0; width:auto; height:auto; flex-direction:row;
    align-items:center; gap:12px; padding:10px 16px;
    border-right:0; border-bottom:1px solid var(--rule);
    box-shadow:0 6px 20px -14px rgba(74,59,82,.6);
  }
  .spine__mark{
    writing-mode:horizontal-tb; font-size:20px; letter-spacing:.2em;
    margin:0; flex:0 0 auto;
  }
  .spine__mark small{ display:none; }
  .spine__nav{ flex-direction:row; gap:10px; margin:0 0 0 auto; }
  .navdot{ width:38px; height:38px; font-size:14px; }
  .navdot__tip{ display:none; }
  .page{ padding:100px 20px 90px; }
  .foot{ padding:0 20px 44px; }
  .entry{ padding:26px 20px 22px 56px; }
  .namesticker{ padding:16px 24px 20px; }
  .namesticker__hint{ display:none; }
  .editor,.doll-panel,.case-tools,.promptcard{ padding:22px 18px 18px; }
}

/* 特别窄的屏幕：顶栏和标题都要收一收，别把圆片挤出屏幕 */
@media (max-width:400px){
  .spine{ padding:8px 12px; gap:10px; }
  .spine__mark{ font-size:17px; letter-spacing:.08em; text-indent:.08em; }
  .spine__nav{ gap:7px; }
  .navdot{ width:32px; height:32px; font-size:12px; }
  .page{ padding:96px 16px 80px; }
  .foot{ padding:0 16px 40px; }
  .namesticker{ padding:14px 18px 18px; }
  .namesticker h1{ font-size:31px; letter-spacing:.02em; }
  .namesticker__sub{ font-size:14.5px; }
  .entry{ padding:22px 16px 20px 46px; }
}

/* ---------- 16. 克制地尊重系统偏好 ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .peel{ opacity:1; }
}

/* ---------- 17. 打印：把日记打印成纸 ---------- */
@media print{
  .spine,.foot,.editor,.promptcard,.entry__acts,.toast{ display:none !important; }
  body{ background:#fff; }
  .page{ margin:0; padding:0; }
  .entry{ box-shadow:none; border:1px solid #ddd; break-inside:avoid; transform:none; }
}
