/**
 * 卵ゲーム + 現在地ボタン CSS v90d
 */
/* ============ Egg Bar (fixed top, 56px) ============ */
.egg-bar{position:fixed;top:0;left:0;right:0;z-index:1000;height:56px;background:#0a0a1e;display:flex;align-items:center;gap:10px;padding:0 12px;border-bottom:1px solid rgba(93,173,226,.25)}
.egg-bar canvas{width:44px;height:44px;border-radius:10px;cursor:pointer;image-rendering:pixelated}
.egg-bar__info{flex:1;min-width:0}
.egg-bar__row1{display:flex;align-items:center;gap:6px;margin-bottom:3px}
.egg-bar__name{font-size:.7rem;font-weight:700;color:#e8e0f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.egg-bar__pts{font-size:.7rem;font-weight:800;color:#ffd54f;margin-left:auto;white-space:nowrap}
.egg-bar__row2{display:flex;align-items:center;gap:6px}
.egg-bar__lv{font-size:.6rem;color:#b388ff;font-weight:700;min-width:28px}
.egg-bar__gauge{flex:1;height:4px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden}
.egg-bar__gauge-fill{height:100%;background:linear-gradient(90deg,#b388ff,#80deea);border-radius:99px;transition:width .5s}
.egg-bar__pct{font-size:.5rem;color:#9a8fb0;min-width:22px;text-align:right}
.egg-bar__combo{font-size:.5rem;font-weight:900;color:#ff8a80;margin-left:4px;opacity:0;transition:opacity .3s}
.egg-bar__combo.on{opacity:1}
.egg-bar__expand{background:rgba(93,173,226,.15);border:1px solid rgba(93,173,226,.3);color:#5dade2;width:34px;height:34px;border-radius:8px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}
.egg-bar__expand:hover{background:rgba(93,173,226,.25)}

/* ============ Fullscreen Modal Overlay ============ */
.egg-fs{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:2000;display:none;align-items:center;justify-content:center;background:rgba(5,5,16,.85)}
.egg-fs.on{display:flex}

/* ツイート背景タイル（非表示） */
.egg-fs__bg{display:none}
.egg-fs__tile{overflow:hidden;position:relative}
.egg-fs__tile img{width:100%;height:100%;object-fit:cover}

/* モーダル本体 */
.egg-fs__modal{position:relative;z-index:10;border-radius:20px;overflow:hidden;box-shadow:0 0 60px rgba(100,60,200,.4),0 0 120px rgba(100,60,200,.15);background:#0a0a2e}
.egg-fs__modal canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
.egg-fs__modal .ui{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}
.egg-fs__modal .ui>*{pointer-events:auto}

.fs-close{position:absolute;top:10px;right:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#e8e0f0;width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;z-index:20}
.fs-boost{position:absolute;top:10px;left:10px;background:rgba(255,213,79,.1);border:1px solid rgba(255,213,79,.25);padding:3px 10px;border-radius:99px;font-size:.6rem;color:#ffd54f}
.fs-status{position:absolute;bottom:8%;left:50%;transform:translateX(-50%);text-align:center;width:85%;max-width:260px;pointer-events:none}
.fs-name{font-size:.8rem;font-weight:700;color:#e8e0f0;text-shadow:0 0 10px rgba(179,136,255,.5);margin-bottom:4px}
.fs-pts{font-size:1.2rem;font-weight:900;color:#ffd54f;text-shadow:0 0 10px rgba(255,213,79,.4);margin-bottom:6px}
.fs-lv-row{display:flex;align-items:center;gap:6px;font-size:.6rem;color:#9a8fb0}
.fs-lv-label{color:#b388ff;font-weight:700;min-width:32px}
.fs-lv-bar{flex:1;height:5px;background:rgba(255,255,255,.06);border-radius:99px;overflow:hidden}
.fs-lv-fill{height:100%;background:linear-gradient(90deg,#b388ff,#80deea);border-radius:99px;transition:width .5s}
.fs-lv-pct{min-width:24px;text-align:right;font-size:.55rem}
.fs-hint{font-size:.45rem;color:rgba(255,255,255,.15);margin-top:6px}
/* FS Collection Link */
.fs-collection-link{display:inline-block;font-size:.6rem;color:#5dade2;text-decoration:none;margin-top:8px;padding:10px 16px;min-height:44px;border:1px solid rgba(93,173,226,.3);border-radius:8px;pointer-events:auto;position:relative;z-index:25;-webkit-tap-highlight-color:transparent;box-sizing:border-box;line-height:24px}
.fs-collection-link:hover{background:rgba(93,173,226,.15)}
/* Popups */
.popup{position:absolute;color:#ffd54f;font-weight:900;font-size:.9rem;pointer-events:none;z-index:30;text-shadow:0 0 8px rgba(255,213,79,.7);animation:fly 1s ease-out forwards}
.popup.big{font-size:1.4rem;color:#fff;text-shadow:0 0 12px #ffd54f}
.lvup{position:absolute;top:0;left:0;width:100%;height:100%;z-index:50;pointer-events:none;display:none}
.lvup.on{display:block;animation:flash 2s ease-out forwards}
.lvup-bg{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.4) 0%,transparent 60%)}
.lvup-txt{position:absolute;top:22%;left:50%;transform:translateX(-50%);font-size:1.5rem;font-weight:900;color:#ffd54f;text-shadow:0 0 20px rgba(255,213,79,.8);white-space:nowrap;opacity:0;animation:pop 2s .1s ease-out forwards}
.lvup-sub{position:absolute;top:34%;left:50%;transform:translateX(-50%);font-size:.75rem;font-weight:700;opacity:0;white-space:nowrap;animation:pop 2s .3s ease-out forwards}
.welcome{position:absolute;top:0;left:0;width:100%;height:100%;z-index:60;background:rgba(0,0,0,.9);display:none;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border-radius:20px}
.welcome.on{display:flex}
.welcome .title{font-size:1.1rem;font-weight:900;color:#e8e0f0;margin-bottom:14px}
.welcome .chest{font-size:3rem;margin-bottom:10px}
.welcome .wpts{font-size:1.5rem;font-weight:900;color:#ffd54f;margin-bottom:6px}
.welcome .wsub{font-size:.6rem;color:#9a8fb0}

/* ============ Completion Modal ============ */
.egg-complete{position:absolute;top:0;left:0;width:100%;height:100%;z-index:70;background:rgba(5,5,20,.95);display:none;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border-radius:20px;overflow:hidden}
.egg-complete.on{display:flex}
.egg-complete__sparkles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
.egg-complete__sparkles span{position:absolute;width:4px;height:4px;border-radius:50%;animation:sparkle-float 2s ease-in-out infinite}
.egg-complete__sparkles span:nth-child(1){top:15%;left:20%;background:#ff6b6b;animation-delay:0s}
.egg-complete__sparkles span:nth-child(2){top:25%;left:75%;background:#ffd54f;animation-delay:.3s}
.egg-complete__sparkles span:nth-child(3){top:60%;left:15%;background:#69f0ae;animation-delay:.6s}
.egg-complete__sparkles span:nth-child(4){top:70%;left:80%;background:#40c4ff;animation-delay:.9s}
.egg-complete__sparkles span:nth-child(5){top:40%;left:10%;background:#b388ff;animation-delay:1.2s}
.egg-complete__sparkles span:nth-child(6){top:20%;left:55%;background:#ff8a80;animation-delay:.4s}
.egg-complete__sparkles span:nth-child(7){top:80%;left:45%;background:#80deea;animation-delay:.7s}
.egg-complete__sparkles span:nth-child(8){top:50%;left:85%;background:#ffd54f;animation-delay:1s}
.egg-complete__title{font-size:1.4rem;font-weight:900;background:linear-gradient(90deg,#ff6b6b,#ffd54f,#69f0ae,#40c4ff,#b388ff,#ff6b6b);background-size:200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:rainbow-shift 2s linear infinite;margin-bottom:16px;position:relative;z-index:1}
.egg-complete__egg-wrap{position:relative;margin:8px 0 16px;z-index:1}
.egg-complete__egg-shape{width:64px;height:82px;border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;background:linear-gradient(135deg,#ff6b6b,#ffd54f,#69f0ae,#40c4ff,#b388ff,#ff6b6b);background-size:300% 300%;animation:rainbow-egg-bg 3s linear infinite;box-shadow:0 0 20px rgba(179,136,255,.5),0 0 40px rgba(255,213,79,.3);margin:0 auto}
.egg-complete__text{font-size:.88rem;color:#e8e0f0;font-weight:600;position:relative;z-index:1;text-align:center;padding:0 20px}
.egg-complete__sub{font-size:.65rem;color:#9a8fb0;margin-top:10px;position:relative;z-index:1}
.egg-complete__link{font-size:.7rem;color:#5dade2;text-decoration:none;margin-top:14px;padding:10px 20px;min-height:44px;border:1px solid rgba(93,173,226,.3);border-radius:8px;position:relative;z-index:80;display:inline-flex;align-items:center;-webkit-tap-highlight-color:transparent}
.egg-complete__link:hover{background:rgba(93,173,226,.15)}

/* ============ Mypage Egg Section ============ */
.egg-mypage{display:flex;align-items:center;gap:14px;padding:16px;background:rgba(255,255,255,.04);border-radius:12px;margin-bottom:12px}
.egg-mypage__visual{width:56px;height:72px;border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;flex-shrink:0;position:relative;transition:transform .3s,box-shadow .3s}
.egg-vis--1{background:linear-gradient(180deg,#f3e8ff,#c084fc,#7c3aed,#5020b0)}
.egg-vis--2{background:linear-gradient(180deg,#faf5ff,#d8b4fe,#8b5cf6,#5b30c0)}
.egg-vis--3{background:linear-gradient(180deg,#fffde0,#fbbf24,#e0a010,#804a00)}
.egg-vis--4{background:linear-gradient(180deg,#fff,#f472b6,#e0459a,#8a1050)}
.egg-vis--5{background:linear-gradient(180deg,#fff,#e0c0ff,#9060d0,#6030a0)}
.egg-vis--rainbow{background:linear-gradient(135deg,#ff6b6b,#ffd54f,#69f0ae,#40c4ff,#b388ff,#ff6b6b);background-size:300% 300%;animation:rainbow-egg-bg 3s linear infinite;box-shadow:0 0 12px rgba(179,136,255,.4)}
.egg-vis--rainbow99{
  background-image:linear-gradient(135deg,#ff0000,#ff8800,#ffff00,#00ff00,#0088ff,#8800ff,#ff0088,#ff0000)!important;
  background-size:400% 400%!important;
  -webkit-animation:eggRainbow99 2s linear infinite!important;
  animation:eggRainbow99 2s linear infinite!important;
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
  width:80px;height:100px;
  box-shadow:0 0 20px rgba(179,136,255,.6),0 0 40px rgba(255,213,79,.3)!important
}
.egg-mypage__info{flex:1;min-width:0}
.egg-mypage__level{font-size:1rem;font-weight:900;color:#b388ff;margin-bottom:6px}
.egg-mypage__gauge{height:6px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;margin-bottom:4px}
.egg-mypage__gauge-fill{height:100%;background:linear-gradient(90deg,#b388ff,#80deea);border-radius:99px;transition:width .5s}
.egg-mypage__gauge-fill.is-max{background:linear-gradient(90deg,#ff6b6b,#ffd54f,#69f0ae,#40c4ff,#b388ff)}
.egg-mypage__pct{font-size:.65rem;color:#9a8fb0}
.egg-mypage__count{font-size:.65rem;color:#9a8fb0;margin-top:4px}

/* ============ Collection ============ */
.egg-collection{margin-top:12px}
.egg-collection__title{font-size:.82rem;font-weight:700;color:#e8e0f0;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.egg-collection__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px}
.egg-collection__item{background:rgba(255,255,255,.04);border-radius:12px;padding:12px 8px;text-align:center;position:relative}
.egg-collection__egg{
  width:36px;height:46px;
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
  background-image:linear-gradient(135deg,#ff0000,#ff8800,#ffff00,#00ff00,#0088ff,#8800ff,#ff0088,#ff0000)!important;
  background-size:400% 400%!important;
  -webkit-animation:eggRainbow99 2s linear infinite!important;
  animation:eggRainbow99 2s linear infinite!important;
  margin:0 auto 6px;
  box-shadow:0 0 12px rgba(179,136,255,.5),0 0 24px rgba(255,213,79,.2)
}
.egg-collection__lock{position:absolute;top:6px;right:6px;font-size:.6rem;opacity:.7}
.egg-collection__num{font-size:.7rem;font-weight:700;color:#ffd54f;margin-bottom:2px}
.egg-collection__date{font-size:.55rem;color:#9a8fb0}
.egg-collection__empty{text-align:center;padding:20px;color:#9a8fb0;font-size:.75rem}

@-webkit-keyframes eggRainbow99{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
@keyframes eggRainbow99{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
@keyframes sparkle-float{0%,100%{opacity:.3;transform:scale(.5) translateY(0)}50%{opacity:1;transform:scale(1.2) translateY(-10px)}}
@keyframes rainbow-shift{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes rainbow-egg-bg{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes fly{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-50px)}}
@keyframes flash{0%,70%{opacity:1}100%{opacity:0}}
@keyframes pop{0%{opacity:0;transform:translateX(-50%) scale(.5)}25%{opacity:1;transform:translateX(-50%) scale(1.1)}40%{transform:translateX(-50%) scale(1)}80%{opacity:1}100%{opacity:0;transform:translateX(-50%) scale(.95)}}

/* ============ 📍 現在地FABボタン ============ */
.nearby-fab{position:fixed;bottom:72px;left:50%;transform:translateX(-50%);z-index:900;background:linear-gradient(135deg,#5dade2,#4a90a4);color:#fff;border:none;border-radius:99px;padding:10px 20px;font-size:.82rem;font-weight:700;display:flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 4px 16px rgba(93,173,226,.4),0 0 0 3px rgba(93,173,226,.15);animation:fab-wobble 3s ease-in-out infinite;white-space:nowrap}
.nearby-fab__icon{font-size:1rem}
.nearby-fab__text{font-size:.78rem}
@keyframes fab-wobble{
  0%,100%{transform:translateX(-50%) translateY(0) rotate(0)}
  15%{transform:translateX(-50%) translateY(-2px) rotate(-1.5deg)}
  30%{transform:translateX(-50%) translateY(0) rotate(1deg)}
  45%{transform:translateX(-50%) translateY(-1px) rotate(-0.5deg)}
  60%{transform:translateX(-50%) translateY(0) rotate(0)}
}

/* ============ 現在地モーダル ============ */
.nearby-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1500;display:none;align-items:flex-end;justify-content:center}
.nearby-modal.on{display:flex}
.nearby-modal__overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6)}
.nearby-modal__sheet{position:relative;z-index:10;width:100%;max-width:480px;max-height:80vh;background:#0d0d1e;border-radius:20px 20px 0 0;display:flex;flex-direction:column;overflow:hidden}
.nearby-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
.nearby-modal__header h3{font-size:.9rem;font-weight:700;color:#e8e0f0;margin:0}
.nearby-modal__close{background:none;border:none;color:#9a8fb0;font-size:1.2rem;cursor:pointer;padding:4px}
.nearby-modal__body{flex:1;overflow-y:auto;padding:12px 16px}
.nearby-modal__loading{text-align:center;padding:40px 0;color:#9a8fb0;font-size:.8rem}
.nearby-modal__error{text-align:center;padding:40px 20px;color:#9a8fb0;font-size:.85rem}
.nearby-modal__error a{color:#5dade2;text-decoration:underline}

/* 周辺店舗リスト */
.nearby-list{display:flex;flex-direction:column;gap:8px;padding-bottom:20px}
.nearby-item{display:flex;gap:12px;padding:10px;border-radius:12px;background:rgba(255,255,255,.04);text-decoration:none;color:#e8e0f0;transition:background .2s}
.nearby-item:hover{background:rgba(255,255,255,.08)}
.nearby-item__img{width:56px;height:56px;border-radius:10px;background-size:cover;background-position:center;background-color:#1a1a2e;flex-shrink:0}
.nearby-item__info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.nearby-item__name{font-size:.82rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nearby-item__meta{display:flex;align-items:center;gap:8px;font-size:.68rem;color:#9a8fb0;margin-top:4px}
.nearby-item__area{background:rgba(93,173,226,.15);color:#5dade2;padding:1px 6px;border-radius:4px;font-size:.62rem}
.nearby-item__dist{color:#ffd54f;font-weight:700}
.nearby-item__views{display:flex;align-items:center;gap:2px;opacity:.6}
.nearby-item__views svg{vertical-align:middle}
