/* GIFTMSG1007 ギフトのひとことと、受け取った人のラッキー切手（js/gift-comment.js） */
:root{--gmsg-ink:#2a1840;--gmsg-sub:#6b5a80;--gmsg-gold:#f2cf77;--gmsg-gold2:#e0a93a;--gmsg-night:rgba(28,16,41,.94);--gmsg-line:rgba(242,207,119,.6)}

/* 贈る画面の「ひとこと」 */
.gmsg-in{position:relative;margin:0 0 10px;text-align:left}
.gmsg-in__l{display:block;margin:0}
.gmsg-in__l>span{display:block;margin:0 0 4px;font-size:14px;font-weight:700;line-height:1.4;color:inherit}
.gmsg-in__l>span small{font-size:14px;font-weight:500;opacity:.8}
.gmsg-in__i{display:block;width:100%;box-sizing:border-box;min-height:44px;margin:0;padding:10px 58px 10px 12px;border:1.5px solid var(--gmsg-line);border-radius:12px;background:rgba(255,255,255,.97);color:var(--gmsg-ink);font-size:16px;line-height:1.4;font-family:inherit;-webkit-appearance:none;appearance:none}
.gmsg-in__i::placeholder{color:#9a8aae}
.gmsg-in__i:focus{outline:none;border-color:var(--gmsg-gold2);box-shadow:0 0 0 3px rgba(242,207,119,.35)}
.gmsg-in__n{position:absolute;right:10px;bottom:13px;font-size:14px;color:#8a7a9e;pointer-events:none}
.gmsg-in__n.is-over{color:#c0392b;font-weight:700}

/* 贈った人への小さな知らせ */
.gmsg-toast{position:fixed;z-index:99990;left:50%;top:calc(66px + env(safe-area-inset-top));transform:translate(-50%,-12px);width:min(380px,calc(100vw - 32px));box-sizing:border-box;padding:11px 46px 11px 14px;border:1px solid var(--gmsg-line);border-radius:16px;background:var(--gmsg-night);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.35);opacity:0;transition:opacity .22s,transform .22s}
.gmsg-toast.is-on{opacity:1;transform:translate(-50%,0)}
.gmsg-toast p{margin:0;font-size:14px;line-height:1.5}
.gmsg-toast__w{margin-top:4px!important;color:var(--gmsg-gold);font-weight:700}
.gmsg-x{position:absolute;top:0;right:0;width:44px;height:44px;border:0;background:none;color:#fff;font-size:20px;line-height:44px;opacity:.75;cursor:pointer}
.gmsg-jp{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:999px;background:linear-gradient(135deg,#ffe9a6,#e0a93a);color:#3a2300;font-size:14px;font-weight:800;vertical-align:1px}

/* 受け取った人: 届いた知らせ（community-social.js）に足す1行 */
.gmsg-tq{margin:4px 0 2px;font-size:14px;line-height:1.5;color:#fff7df}
.gmsg-tq small{display:inline-block;margin-right:4px;font-size:14px;opacity:.8}
.gmsg-tq__w{display:inline-block;margin-left:4px;padding:0 7px;border-radius:999px;background:rgba(242,207,119,.2);color:var(--gmsg-gold);font-size:14px;font-weight:700}

/* 受け取った人: 当たりの演出 */
.gmsg-win{position:fixed;z-index:99995;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(13,8,20,.55);opacity:0;transition:opacity .25s}
.gmsg-win.is-on{opacity:1}
.gmsg-win__card{position:relative;width:min(330px,100%);box-sizing:border-box;padding:22px 18px 16px;border-radius:22px;border:2px solid var(--gmsg-gold);background:radial-gradient(120% 90% at 50% 0%,#5a2f7a 0%,#2a1840 70%);color:#fff;text-align:center;box-shadow:0 0 0 6px rgba(242,207,119,.15),0 18px 50px rgba(0,0,0,.5);transform:scale(.82);transition:transform .32s cubic-bezier(.2,1.6,.4,1)}
.gmsg-win.is-on .gmsg-win__card{transform:scale(1)}
.gmsg-win__card:before{content:"";position:absolute;inset:-2px;border-radius:22px;background:conic-gradient(from 0deg,transparent 0 20%,rgba(255,236,170,.55) 25%,transparent 30% 70%,rgba(255,236,170,.4) 75%,transparent 80%);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:2px;animation:gmsg-spin 3.2s linear infinite;pointer-events:none}
.gmsg-win__img{display:block;width:72px;height:72px;margin:0 auto 8px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.4))}
.gmsg-win__from{margin:0;font-size:14px;color:#e8dcf3}
.gmsg-win__n{margin:6px 0 0;font-size:18px;font-weight:800;line-height:1.4;color:#fff}
.gmsg-win__n b:not(.gmsg-jp){font-size:30px;color:var(--gmsg-gold);text-shadow:0 0 14px rgba(242,207,119,.6);animation:gmsg-pop .6s .15s both}
.gmsg-win__m{margin:10px 0 0;font-size:14px;line-height:1.5;color:#fff7df}
.gmsg-win__ok{display:block;width:100%;min-height:44px;margin:14px 0 0;border:0;border-radius:999px;background:linear-gradient(135deg,#ffe9a6,#e0a93a);color:#3a2300;font-size:15px;font-weight:800;cursor:pointer}
.gmsg-win.is-jp .gmsg-win__card{border-color:#ffe9a6;box-shadow:0 0 0 8px rgba(255,233,166,.25),0 0 60px rgba(242,207,119,.55),0 18px 50px rgba(0,0,0,.5)}
@keyframes gmsg-spin{to{transform:rotate(360deg)}}
@keyframes gmsg-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.25);opacity:1}100%{transform:scale(1)}}

/* マイページ「最近届いた贈り物」 */
.gmsg-recv{display:block;margin-top:2px;font-size:14px;line-height:1.45;color:inherit;opacity:.92;word-break:break-all}
.gmsg-recv.is-empty{display:none}
.gmsg-recv__w{display:inline-block;margin-top:2px;padding:0 7px;border-radius:999px;background:rgba(242,207,119,.22);color:#b07a10;font-size:14px;font-weight:700}

/* ボイスルームの流れる1行（js/voice-room.js が d.msg・d.won を足す） */
.vr-gmsg{display:inline;margin-left:2px;color:#fff7df}
.vr-gwon{display:inline-block;margin-left:6px;padding:0 7px;border-radius:999px;background:rgba(242,207,119,.22);color:#f2cf77;font-weight:700;font-size:14px}

@media (prefers-reduced-motion:reduce){.gmsg-toast,.gmsg-win,.gmsg-win__card{transition:none}.gmsg-win__card:before,.gmsg-win__n b{animation:none}}

/* 点検 10/7: DM を送れない相手には欄を出さない（確かめている間も出さない） */
.gmsg-in__no{display:none;margin:0;font-size:14px;line-height:1.5;opacity:.85}
.gmsg-in.is-wait .gmsg-in__l,.gmsg-in.is-wait .gmsg-in__n,.gmsg-in.is-off .gmsg-in__l,.gmsg-in.is-off .gmsg-in__n{display:none}
.gmsg-in.is-off .gmsg-in__no{display:block}
