:root{--bg:#14161c;--bg-raised:#1e212b;--line:#2b2f3c;--cream:#f5eee4;--cream-dim:#9a978f;--ruya-blue:#a9d3ec;--berke-pink:#f4c4d4;--accent:#e8dbc4;--warn:#e07fa4;--ink:#191b22;--radius:16px;--font-hand:"Gaegu", cursive;--font-body:"Nunito", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--cream);font-family:var(--font-body);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);margin:0;font-size:16px;line-height:1.5}h1,h2,h3{font-family:var(--font-hand);letter-spacing:.5px;margin:0 0 12px;font-weight:700}h1{font-size:2rem}.page{max-width:560px;margin:0 auto;padding:24px 16px 96px}button{font-family:var(--font-body);color:var(--ink);background:var(--accent);border-radius:var(--radius);cursor:pointer;border:none;padding:12px 20px;font-size:1rem;font-weight:700}button:disabled{opacity:.45;cursor:not-allowed}button.quiet{color:var(--cream-dim);border:1px solid var(--line);background:0 0}input,textarea{width:100%;font-family:var(--font-body);color:var(--cream);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;font-size:1rem}textarea{resize:vertical;min-height:120px}label{color:var(--cream-dim);margin:16px 0 6px;font-size:.9rem;display:block}.hint{color:var(--cream-dim);font-size:.9rem}.error{color:var(--warn);font-size:.9rem}.success{color:var(--ruya-blue);font-size:.95rem}.stickers{gap:8px;margin:20px 0 4px;display:flex}.sticker{background:var(--bg-raised);color:var(--cream-dim);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:.95rem}.sticker.on{background:var(--accent);color:var(--ink);border-color:var(--accent)}button.small{padding:6px 12px;font-size:.85rem}.card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;padding:14px}.card-top{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.icon{color:var(--accent);font-size:1.1rem}.icon.ruya{color:var(--ruya-blue)}.icon.berke{color:var(--berke-pink)}.body.clipped{max-height:7.5em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000 100%);mask-image:linear-gradient(#000 60%,#0000 100%)}.readmore{color:var(--accent);background:0 0;border:none;padding:4px 0 0;font-size:.85rem;font-weight:700;text-decoration:underline}.bubble .readmore{color:#1c3f57}.thumb{cursor:pointer}.lightbox{z-index:50;background:#08090cf0;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.lightbox img{border-radius:10px;max-width:100%;max-height:100%}.when{color:var(--cream-dim);font-size:.8rem}.body{white-space:pre-wrap;word-break:break-word;margin:8px 0}.link{color:var(--ruya-blue);word-break:break-all}.thumb{border-radius:12px;width:100%;margin-bottom:8px}.empty{font-family:var(--font-hand);color:var(--accent);text-align:center;margin-top:80px;font-size:1.8rem}.vault-sealed{text-align:center;padding-top:60px}.stick-figures{width:220px;max-width:70%;height:auto;margin-bottom:24px}.sealed-line{font-family:var(--font-hand);color:var(--cream-dim);font-size:1.4rem}.vault-bar{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.bubble-row{margin-bottom:10px;display:flex}.bubble-row.mine{justify-content:flex-end}.bubble-row.theirs{justify-content:flex-start}.bubble{max-width:82%;color:var(--ink);border-radius:18px;padding:10px 14px}.bubble .body{color:var(--ink);margin:0}.bubble .link{color:#1c3f57;font-weight:700}.bubble.ruya{background:var(--ruya-blue);border-bottom-left-radius:6px}.bubble.berke{background:var(--berke-pink);border-bottom-right-radius:6px}.stamp{opacity:.55;margin-top:6px;font-size:.7rem;display:block}.chapter{color:var(--accent);font-family:var(--font-hand);align-items:center;gap:10px;margin:28px 0 18px;font-size:1.1rem;display:flex}.chapter:before,.chapter:after{content:"";background:var(--accent);opacity:.35;flex:1;height:1px}.credit{text-align:center;color:var(--cream-dim);margin-top:48px;font-size:.8rem}.nav{padding:12px 8px calc(12px + env(safe-area-inset-bottom));background:var(--bg-raised);border-top:1px solid var(--line);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--cream-dim);padding:4px 8px;font-size:.9rem;text-decoration:none}.nav a.active{color:var(--accent);font-weight:700}
