:root{--night:#0f1d3a;--night2:#1b2f57;--snow:#f6f8fc;--frost:#c9d6ee;--red:#c8323c;--red-dark:#8f1f28;--gold:#e8c26a;--pine:#2f6b52;--paper:#fffaf0;--ink:#2b2a33;--muted:#6b6f80;--line:#e6dccb;--display:"Kaisei Decol","Hiragino Mincho ProN","Yu Mincho",serif;--body:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans","Meiryo",sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{min-height:100%}body{background:linear-gradient(180deg,var(--night) 0%,var(--night2) 70%,#284373 100%);background-color:var(--night);color:var(--snow);font-family:var(--body);background-attachment:fixed;margin:0;font-size:15px;line-height:1.75;overflow-x:hidden}[hidden]{display:none!important}#snow{pointer-events:none;z-index:0;width:100%;height:100%;position:fixed;inset:0}.wrap{z-index:1;max-width:560px;padding-block:28px 56px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));flex-direction:column;gap:22px;margin:0 auto;display:flex;position:relative}header{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.eyebrow{letter-spacing:.18em;color:var(--gold);font-size:12px}h1{font-family:var(--display);text-wrap:balance;text-shadow:0 2px 12px #00000059;margin:0;font-size:clamp(28px,7.5vw,40px);font-weight:700;line-height:1.3}.lead{color:var(--frost);max-width:34em;margin:0;font-size:14px}.post-area{justify-content:center;padding-top:6px;display:flex}.post{width:200px;max-width:70%;position:relative}.post svg{width:100%;height:auto;display:block}.letter-fly{background:var(--paper);opacity:0;pointer-events:none;border-radius:4px;width:84px;height:56px;margin-left:-42px;position:absolute;top:40%;left:50%;box-shadow:0 4px 10px #0000004d}.letter-fly:before{content:"";background:linear-gradient(155deg,transparent 49%,var(--line) 50%,transparent 51%),linear-gradient(25deg,transparent 49%,var(--line) 50%,transparent 51%);position:absolute;inset:0}.letter-fly:after{content:"";background:var(--red);border-radius:50%;width:14px;height:14px;position:absolute;top:21px;left:35px}.letter-fly.go{animation:1.3s ease-in forwards fly}@keyframes fly{0%{opacity:1;transform:translateY(160px)scale(1)rotate(-6deg)}55%{opacity:1;transform:translateY(-6px)scale(.8)rotate(0)}to{opacity:0;transform:translateY(-46px)scale(.25)}}.card{background:var(--paper);color:var(--ink);background-image:repeating-linear-gradient(180deg,transparent 0 31px,var(--line) 31px 32px);background-position:0 14px;border-radius:14px;flex-direction:column;gap:14px;padding:22px 20px 20px;display:flex;position:relative;box-shadow:0 10px 30px #00000059}.card:before{content:"";background:var(--red);border-radius:3px;width:70px;height:16px;margin-left:-35px;position:absolute;top:-8px;left:50%;box-shadow:0 2px 4px #0003}.to{font-family:var(--display);margin:0;font-size:19px}label{color:var(--muted);margin-bottom:4px;font-size:13px;font-weight:700;display:block}input[type=text],textarea{width:100%;font:inherit;color:var(--ink);border:1.5px solid var(--line);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;border-radius:10px;padding:10px 12px;font-size:16px}textarea{resize:vertical;min-height:92px;margin-bottom:8px;display:block}input:focus,textarea:focus,button:focus-visible{outline:3px solid var(--gold);outline-offset:1px}.hint{color:var(--muted);margin:4px 0 0;font-size:12px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:999px;padding:4px 12px;font-size:13px}.chip:hover{border-color:var(--red);color:var(--red)}.rule{color:var(--muted);background:#fbf3e2;border-radius:10px;margin:0;padding:10px 12px;font-size:12.5px;line-height:1.7}.send{font:inherit;letter-spacing:.06em;background:var(--red);color:#fff;cursor:pointer;box-shadow:0 4px 0 var(--red-dark);border:none;border-radius:12px;padding:13px;font-size:16px;font-weight:700;transition:transform .1s}.send:active{box-shadow:0 1px 0 var(--red-dark);transform:translateY(3px)}.send:disabled{opacity:.55;cursor:not-allowed}.msg{text-align:center;min-height:1.2em;margin:0;font-size:13.5px}.msg.ok{color:var(--pine);font-weight:700}.msg.err{color:var(--red)}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.music{z-index:5;right:max(12px,env(safe-area-inset-right,0px));bottom:max(12px,env(safe-area-inset-bottom,0px));font:inherit;color:var(--night);background:var(--gold);cursor:pointer;border:none;border-radius:999px;padding:9px 14px;font-size:13px;font-weight:700;position:fixed;box-shadow:0 4px 14px #0006}.music.on{color:var(--red-dark);background:#ffffffeb}.notice{color:var(--frost);text-align:center;margin:0;font-size:12.5px}.admin{background:#ffffff12;border:1px solid #ffffff2e;border-radius:14px;flex-direction:column;gap:12px;padding:18px;display:flex}.admin h2{font-family:var(--display);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin:0;font-size:20px;display:flex}.admin h2 small{font-family:var(--body);color:var(--gold);font-variant-numeric:tabular-nums;font-size:13px}.admin .sub{color:var(--frost);margin:0;font-size:12px}.list{flex-direction:column;gap:8px;display:flex}.wish{background:var(--paper);color:var(--ink);border-radius:10px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.wish.done{opacity:.6}.wish.done .wtext{text-decoration:line-through;-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red)}.wbody{flex:1;min-width:0}.wtext{word-break:break-word;margin:0;font-size:15px;font-weight:500}.wmeta{color:var(--muted);margin:2px 0 0;font-size:12px}.wmsg{color:var(--ink);border-left:3px solid var(--line);word-break:break-word;margin:6px 0 0;padding-left:10px;font-size:13px}.wbtns{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.grant{font:inherit;white-space:nowrap;border:1.5px solid var(--pine);color:var(--pine);cursor:pointer;background:#fff;border-radius:999px;padding:3px 10px;font-size:12px}.wish.done .grant{background:var(--pine);color:#fff}.del{font:inherit;white-space:nowrap;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:11px;text-decoration:underline}.empty{color:var(--frost);text-align:center;margin:0;padding:14px 0;font-size:13px}.closed{text-align:center;background:#ffffff12;border:1px solid #ffffff2e;border-radius:14px;margin:0;padding:22px 18px}.back{color:var(--gold);text-align:center;font-size:13px}footer{text-align:center;color:var(--frost);opacity:.8;font-size:12px}@media (prefers-reduced-motion:reduce){.letter-fly.go{animation:none}#snow{display:none}}
