:root{
  --bg:#FBF6EE; --card:#FFFDF8; --ink:#4A3F35; --muted:#9A8B7C;
  --blush:#F6C6C1; --mint:#CDE8D6; --butter:#F9E3A6; --lav:#DCD3F2;
  --coral:#E8857A; --cinnabar:#C9503F; --line:#EADFCF;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Karla,sans-serif;
  background-image:radial-gradient(circle at 15% 10%,#fde8e1 0,transparent 40%),
  radial-gradient(circle at 90% 80%,#e3f1e7 0,transparent 40%),
  repeating-linear-gradient(0deg,transparent 0 31px,rgba(201,80,63,.04) 31px 32px);
  background-attachment:fixed;min-height:100vh}
.disp{font-family:Fraunces,serif}
.zh{font-family:"Noto Serif SC",serif}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:0 6px 24px -12px rgba(74,63,53,.25)}
.btn{border-radius:999px;padding:.6rem 1.1rem;font-weight:800;min-height:44px;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-1px)}
.btn-main{background:var(--cinnabar);color:#fff;box-shadow:0 4px 0 #9c3a2d}
.btn-main:active{transform:translateY(2px);box-shadow:0 2px 0 #9c3a2d}
.btn-soft{background:var(--butter);color:var(--ink)}
.btn-ghost{background:transparent;border:1.5px solid var(--line)}
.inp{width:100%;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:.6rem .8rem;outline:none}
.inp:focus{border-color:var(--coral)}
.seal{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;background:var(--cinnabar);color:#fff;font-family:"Noto Serif SC";font-weight:900;transform:rotate(-4deg)}
.rise{animation:rise .5s both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.bob{display:inline-block;animation:bob 1.2s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-5px)}}
.tok{cursor:pointer;border-radius:6px;padding:0 1px;transition:background .15s}
.tok:hover{background:var(--butter)}
.known{border-bottom:2px solid #8cc7a1}
.tok.sel{background:var(--blush)}
ruby rt{font-family:Karla;font-size:.42em;color:var(--coral);letter-spacing:0}
.reader{line-height:2.4}
.paper{background:linear-gradient(#fffaf0,#fff6e6);border:1px solid #efdfc4}
.sheet{animation:up .25s both}
@keyframes up{from{transform:translateY(30px);opacity:0}}