/* ICP1030 招待キャンペーンのバナー。動きは transform / opacity だけ。画面の外（.is-off）と「動きを減らす」では止める */
.icp{--icp-g1:#2b1460;--icp-g2:#6a2fc0;--icp-g3:#e2559a;--icp-gold:#ffd86b;--icp-gold2:#f2a91f;
	position:relative;overflow:hidden;isolation:isolate;box-sizing:border-box;margin:12px auto 14px;max-width:560px;border-radius:20px;padding:14px 14px 12px;color:#fff;
	font-family:inherit;line-height:1.55;text-align:center;
	background:radial-gradient(120% 80% at 50% 0%,rgba(255,216,107,.28),transparent 55%),linear-gradient(160deg,var(--icp-g1) 0%,var(--icp-g2) 52%,var(--icp-g3) 100%);
	box-shadow:0 10px 28px rgba(60,20,110,.35),inset 0 0 0 2px rgba(255,216,107,.55),inset 0 0 0 5px rgba(255,255,255,.08)}
.icp *{box-sizing:border-box}
.icp-slot .icp{margin:10px 12px 16px}
@media (min-width:600px){.icp-slot .icp{margin:12px auto 18px}}
/* 背景の光と粒 */
.icp__fx{position:absolute;inset:0;z-index:-1;pointer-events:none}
.icp__rays{position:absolute;left:50%;top:-140px;width:420px;height:420px;margin-left:-210px;opacity:.35;
	background:repeating-conic-gradient(from 0deg,rgba(255,226,140,.55) 0deg 7deg,transparent 7deg 22deg);border-radius:50%;
	-webkit-mask:radial-gradient(circle,#000 18%,transparent 68%);mask:radial-gradient(circle,#000 18%,transparent 68%);animation:icp-spin 40s linear infinite}
.icp__sweep{position:absolute;top:0;bottom:0;left:-60%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.22),transparent);transform:skewX(-18deg);animation:icp-sweep 5.5s ease-in-out infinite}
.icp__sp{position:absolute;width:10px;height:10px;opacity:0;background:radial-gradient(circle,#fff 0 18%,rgba(255,226,140,.9) 22%,transparent 62%);
	clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);animation:icp-tw 3.2s ease-in-out infinite}
.icp__sp.s1{left:8%;top:18%;animation-delay:.2s}.icp__sp.s2{right:9%;top:12%;width:14px;height:14px;animation-delay:1.1s}
.icp__sp.s3{left:14%;bottom:30%;width:8px;height:8px;animation-delay:2s}.icp__sp.s4{right:12%;bottom:38%;animation-delay:.7s}
.icp__sp.s5{left:46%;top:6%;width:7px;height:7px;animation-delay:1.6s}
.icp__conf{position:absolute;width:7px;height:11px;border-radius:2px;opacity:.85;animation:icp-fall 6s linear infinite}
.icp__conf.c1{left:20%;background:#ffd86b;animation-delay:.4s}.icp__conf.c2{left:62%;background:#8fe3ff;animation-delay:2.2s}
.icp__conf.c3{left:84%;background:#ff9ccc;animation-delay:3.6s}.icp__conf.c4{left:38%;background:#b9a2ff;animation-delay:4.8s}
.icp.is-off *,.icp.is-off{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){.icp *{animation:none!important}.icp__conf{display:none}}
@keyframes icp-spin{to{transform:rotate(360deg)}}
@keyframes icp-sweep{0%,55%{transform:translateX(0) skewX(-18deg)}100%{transform:translateX(420%) skewX(-18deg)}}
@keyframes icp-tw{0%,100%{opacity:0;transform:scale(.4)}45%{opacity:1;transform:scale(1)}}
@keyframes icp-fall{0%{transform:translateY(-20px) rotate(0)}100%{transform:translateY(520px) rotate(540deg)}}
@keyframes icp-pop{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
/* リボン */
.icp__rib{position:relative;display:inline-flex;align-items:center;gap:8px;margin:0 0 8px;padding:5px 16px 5px 14px;border-radius:999px;
	background:linear-gradient(180deg,#fff1b8,var(--icp-gold) 45%,var(--icp-gold2));color:#5a2a00;box-shadow:0 3px 0 #b8740e,0 6px 14px rgba(0,0,0,.25)}
.icp__rib b{font-size:15px;font-weight:900;letter-spacing:.04em}
.icp__rib span{font-size:11px;font-weight:800;padding:1px 8px;border-radius:999px;background:rgba(90,42,0,.12)}
.icp__h{margin:2px 0 4px;font-size:17px;font-weight:900;color:#fff;letter-spacing:.02em;text-shadow:0 2px 0 rgba(43,20,96,.6)}
/* ごほうび */
.icp__prize{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:4px 0 8px}
.icp-stamp{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:104px;height:78px;padding:0;color:#c0244f;border-radius:2px;
	background:radial-gradient(circle,transparent 3.2px,#fffaf0 3.8px) -5px -5px/10px 10px;filter:drop-shadow(0 6px 10px rgba(30,0,60,.35));animation:icp-pop 2.6s ease-in-out infinite}
.icp-stamp::before{content:'';position:absolute;inset:5px;background:#fffaf0;z-index:0}
.icp-stamp::after{content:'';position:absolute;inset:9px;border:2px solid #f3b6c8;border-radius:3px;z-index:0}
.icp-stamp i{position:relative;font-style:normal;font-size:10px;font-weight:900;letter-spacing:.2em;color:#e2559a}
.icp-stamp b{position:relative;font-size:30px;font-weight:900;line-height:1;letter-spacing:-.02em;background:linear-gradient(180deg,#ff5d8f,#c0244f);-webkit-background-clip:text;background-clip:text;color:transparent}
.icp-stamp small{position:relative;font-size:10px;font-weight:900;color:#c0244f}
.icp__plus{font-size:24px;font-weight:900;color:var(--icp-gold);text-shadow:0 2px 0 rgba(43,20,96,.6)}
.icp-tkw{display:inline-flex;flex-direction:column;align-items:center;gap:3px}
.icp-tk{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100px;height:52px;border-radius:10px;color:#fff;font-weight:900;letter-spacing:.08em;
	background:linear-gradient(135deg,#7fb6ff,#6f7cff 60%,#a874ff);box-shadow:0 6px 16px rgba(20,20,90,.35),inset 0 0 0 2px rgba(255,255,255,.6);
	-webkit-mask:radial-gradient(circle 7px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 7px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat;
	mask:radial-gradient(circle 7px at 0 50%,transparent 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 7px at 100% 50%,transparent 98%,#000) right/51% 100% no-repeat;
	animation:icp-pop 2.6s ease-in-out infinite .5s}
.icp-tk::after{content:'';position:absolute;top:7px;bottom:7px;right:26px;border-left:2px dashed rgba(255,255,255,.6)}
.icp-tk i{font-style:normal;font-size:13px;margin-right:22px}
.icp-tkw small{font-size:10.5px;font-weight:900;color:#fff}
.icp__also{margin:0 auto 8px;display:inline-block;padding:5px 12px;border-radius:12px;background:rgba(255,255,255,.14);font-size:12.5px;font-weight:700}
.icp__also b{color:var(--icp-gold)}
.icp__rule{margin:0 0 10px;font-size:11.5px;color:rgba(255,255,255,.9)}
.icp__rule b{color:#fff;font-weight:900;border-bottom:2px solid rgba(255,216,107,.7)}
.icp__note{margin:-4px 0 8px;font-size:10.5px;color:rgba(255,255,255,.8)}
/* 進み具合 */
.icp__me{margin:0 0 10px;padding:10px 10px 8px;border-radius:14px;background:rgba(255,255,255,.95);color:#3a2a55;text-align:left}
.icp__mh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px;font-size:12px;font-weight:800;color:#6a2fc0}
.icp__mh b{font-size:18px;color:#c0418a}
.icp__dots{display:inline-flex;gap:4px}
.icp__dots i{width:12px;height:12px;border-radius:50%;background:#eee3f2;box-shadow:inset 0 0 0 1.5px #dcc7ee}
.icp__dots i.on{background:radial-gradient(circle at 35% 35%,#fff3b8,var(--icp-gold2));box-shadow:none}
.icp__list{list-style:none;margin:0;padding:0}
.icp__list li{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px dashed #eee3f2;font-size:12px}
.icp__list li:first-child{border-top:0}
.icp__nm{flex:1 1 auto;min-width:0;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.icp__st{flex:0 0 auto;font-size:11px;color:#8b7f95;text-align:right}
.icp__st b{color:#c0418a}
.icp__st .is-ok{color:#2f9e77;font-weight:900}
.icp__d3{display:inline-flex;gap:2px;vertical-align:-1px;margin-right:4px}
.icp__d3 i{width:9px;height:9px;border-radius:50%;background:#eee3f2}
.icp__d3 i.on{background:#f2a91f}
.icp__empty{margin:0;font-size:12px;color:#8b7f95}
/* 歓迎の札（招待されて来た人） */
.icp-wel{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:8px 10px;border-radius:14px;background:linear-gradient(135deg,#fff7fb,#fff3d6);color:#3a2a55;text-align:left;box-shadow:inset 0 0 0 2px #ffd86b}
.icp-wel img{flex:0 0 auto;width:48px;height:48px;object-fit:contain}
.icp-wel p{margin:0;font-size:12px;line-height:1.55}
.icp-wel p b{display:block;font-size:13px;color:#7a3a8a}
.icp-wel em{font-style:normal;font-weight:900;color:#c0418a}
.icp-wel .icp__d3{margin-left:2px}
/* ボタン */
.icp__btns{display:flex;gap:6px}
.icp__btns a,.icp__btns button{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:44px;padding:8px 6px;border-radius:999px;border:0;
	font:inherit;font-size:12.5px;font-weight:900;text-decoration:none;cursor:pointer;white-space:nowrap}
.icp__copy{background:linear-gradient(180deg,#fff1b8,var(--icp-gold) 50%,var(--icp-gold2));color:#5a2a00!important;box-shadow:0 3px 0 #b8740e}
.icp__line{background:#06c755;color:#fff!important;box-shadow:0 3px 0 #04913e}
.icp__share{background:rgba(255,255,255,.95);color:#6a2fc0!important;box-shadow:0 3px 0 rgba(43,20,96,.45)}
.icp__btns a:active,.icp__btns button:active{transform:translateY(2px);box-shadow:none}
.icp__join{flex:1 1 auto!important}
.icp__fine{margin:8px 0 0;font-size:10.5px;color:rgba(255,255,255,.78)}
.icp__msg{display:block;min-height:0;font-size:11.5px;font-weight:800;color:var(--icp-gold)}
.icp__msg:empty{display:none}
/* 掲示板では前の招待の箱と入れ替える */
html.icp-has .cmsocial-invite{display:none!important}
/* 招待リンクで来た人（まだ入っていない）: 下の小さな札 */
.icp-land{position:fixed;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 78px);z-index:9985;max-width:460px;margin:0 auto;padding:10px 38px 10px 10px;border-radius:16px;
	background:linear-gradient(160deg,#2b1460,#6a2fc0 60%,#e2559a);color:#fff;box-shadow:0 10px 26px rgba(43,20,96,.4),inset 0 0 0 2px rgba(255,216,107,.6);display:flex;gap:10px;align-items:center;text-align:left}
.icp-land img{flex:0 0 auto;width:44px;height:44px;object-fit:contain}
.icp-land p{margin:0;font-size:12px;line-height:1.5}
.icp-land p b{display:block;font-size:13px;color:#ffd86b}
.icp-land a{display:inline-block;margin-top:4px;padding:6px 12px;border-radius:999px;background:linear-gradient(180deg,#fff1b8,#ffd86b 50%,#f2a91f);color:#5a2a00;font-weight:900;font-size:12px;text-decoration:none}
.icp-land__x{position:absolute;right:6px;top:6px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(255,255,255,.18);color:#fff;font-size:15px;cursor:pointer}
@media (max-width:360px){.icp{padding:12px 10px 10px}.icp-stamp{width:94px;height:70px}.icp-stamp b{font-size:26px}.icp-tk{width:90px}.icp__btns a,.icp__btns button{font-size:11.5px;padding:8px 4px}}
