:root{--bg:#070605;--paper:#f6ead6;--gold:#ffd27a;--gold-2:#ffe7b0;--terra:#ff5a3c;--serif:"Noto Serif TC", "Cormorant Garamond", serif;--sans:"Noto Sans TC", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{background:var(--bg);color:var(--paper);font-family:var(--sans);overscroll-behavior:none;overflow:hidden}button,a{font-family:inherit}button{cursor:pointer}img{max-width:100%;display:block}.grain{pointer-events:none;z-index:1;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.game{height:100%;padding:calc(10px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));flex-direction:column;min-width:0;max-width:100%;display:flex;position:relative;overflow:hidden}.game-bg,.game-bg img,.game-bg .photo-fallback{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.game-bg{z-index:0}.game-scrim{z-index:1;background:radial-gradient(circle at 50% 38%,#0706052e,#070605c7 58%,#070605 100%),linear-gradient(#07060573,#0000 28%);position:absolute;inset:0}.hud,.stage,.prize{z-index:4;position:relative}.hud{text-align:center;letter-spacing:.28em}.dex-btn,.bgm-btn{top:max(8px, env(safe-area-inset-top));z-index:12;min-width:76px;color:var(--gold-2);letter-spacing:.1em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#140e0ac7;border:1px solid #ffd27a61;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700;position:fixed}.dex-btn{left:10px}.bgm-btn{right:10px}.bgm-btn[aria-pressed=false]{color:#f6ead68c;border-color:#f6ead638}.hud-mark{color:var(--gold);margin:0;font-size:11px;font-weight:700}.hud-round{color:#f6ead6b8;letter-spacing:.18em;margin:6px 0 0;font-size:11px}.hud-city{font-family:var(--serif);letter-spacing:.12em;margin:4px 0 0;font-size:18px}.stage{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;min-height:0;display:flex}.game-title{font-family:var(--serif);text-shadow:0 8px 30px #0000008c;margin:0;font-size:clamp(34px,8vw,52px);font-weight:700}.game-sub{text-align:center;color:#f6ead6c7;max-width:22em;margin:-4px 0 0;font-size:14px;line-height:1.45}.stage.pick{justify-content:flex-start;padding-bottom:8px;overflow:auto}.city-grid{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.city-tile{isolation:isolate;color:#fff;background:#1a1410;border:1px solid #ffd27a47;border-radius:14px;height:72px;padding:0;position:relative;overflow:hidden}.city-tile img,.city-tile .photo-fallback{object-fit:cover;z-index:0;width:100%;height:100%;position:absolute;inset:0}.city-tile:after{content:"";z-index:1;background:linear-gradient(90deg,#0000008c,#00000026);position:absolute;inset:0}.city-tile span{z-index:2;height:100%;font-family:var(--serif);text-shadow:0 2px 10px #000;align-items:center;padding:0 14px;font-size:22px;font-weight:700;display:flex;position:relative}.city-tile:active{transform:scale(.98)}.text-link{color:#f6ead6b3;letter-spacing:.12em;background:0 0;border:0;padding:4px;font-size:13px}.wheel-wrap{aspect-ratio:1;filter:drop-shadow(0 18px 40px #0000008c);width:min(78vw,360px);position:relative}.pointer{z-index:3;border-left:13px solid #0000;border-right:13px solid #0000;border-top:24px solid var(--gold);filter:drop-shadow(0 4px 8px #00000080);width:0;height:0;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.wheel-wrap.is-busy{animation:wheelTension var(--spin-ms,4.1s) ease-out}.wheel{border:10px solid var(--gold);width:100%;height:100%;transition:transform var(--spin-ms,4.1s) cubic-bezier(.12, .72, .02, 1);border-radius:50%;position:relative;overflow:hidden;box-shadow:inset 0 0 40px #00000059,0 0 0 6px #3a2a12}.wheel.is-snap{transition:none}.wheel-label{color:#fff;text-align:left;text-shadow:0 1px 8px #000;transform-origin:0;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;align-items:center;width:46%;height:1.35em;margin-top:-.675em;padding:0 6px 0 18%;font-weight:700;line-height:1.15;display:flex;position:absolute;top:50%;left:50%;overflow:hidden}.hub{border:4px solid var(--gold);width:78px;height:78px;color:var(--gold-2);letter-spacing:.08em;z-index:2;background:#140f0c;border-radius:50%;font-size:13px;font-weight:800;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 24px #ffd27a59}.hub:disabled{opacity:.7;cursor:wait}.spin-btn{appearance:none;color:#1a1208;letter-spacing:.08em;background:linear-gradient(#ffe29a,#e0a94a);border:0;border-radius:999px;min-width:220px;padding:16px 28px;font-size:18px;font-weight:800;animation:1.8s ease-in-out infinite pulse;box-shadow:0 0 0 4px #ffd27a38,0 12px 28px #00000073}.spin-btn:disabled{opacity:.6;cursor:wait;animation:none}.spin-btn.compact{justify-content:center;min-width:0;padding:11px 16px;font-size:14px;text-decoration:none;animation:none;display:inline-flex}.spin-btn.ghost{color:var(--paper);box-shadow:none;background:0 0;border:1px solid #f6ead64d}.prize{z-index:4;-webkit-backdrop-filter:none;backdrop-filter:none;scrollbar-width:none;-ms-overflow-style:none;background:0 0;border:0;max-width:100%;max-height:calc(100dvh - 110px);margin:auto 0 0;padding:0;animation:.45s cubic-bezier(.2,1.2,.3,1) pop;position:relative;overflow:hidden auto}.prize::-webkit-scrollbar{width:0;height:0;display:none}.prize.is-gifting{overflow:hidden}.prize.is-gifting .view-card{animation:1.15s cubic-bezier(.16,1.15,.3,1) both giftCard}.prize.is-gifting .prize-actions,.prize.is-gifting .ad-slot,.prize.is-gifting .share-note{opacity:0;pointer-events:none}.prize.is-settled .prize-actions{animation:.4s both settleIn}.view-card{background:linear-gradient(#16110c,#16110c) padding-box padding-box,linear-gradient(135deg,#fff6d0,#c9a227 40%,#fff3b0 70%,#8a6a1a) border-box;border:3px solid #0000;border-radius:20px;padding:12px 12px 10px;box-shadow:0 16px 40px #00000080}.view-card-dex{color:var(--gold);letter-spacing:.12em;margin:0 4px 2px;font-size:11px;font-weight:700}.view-card-title{justify-content:space-between;align-items:flex-end;gap:10px;margin:0 4px 8px;display:flex}.view-card-title h2{font-family:var(--serif);margin:0;font-size:clamp(22px,6vw,30px);line-height:1.15}.view-card-spin{color:var(--gold);font-family:var(--serif);text-align:right;flex-shrink:0;margin:0;font-size:28px;font-weight:800;line-height:1}.view-card-spin span{font-family:var(--sans);letter-spacing:.18em;color:#f6ead6b3;font-size:10px;display:block}.view-card-types{flex-wrap:wrap;gap:6px;margin:8px 4px 6px;display:flex}.view-card-types span{color:#fff8e8;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700}.view-card-mark{color:var(--gold);letter-spacing:.2em;margin:0 4px 2px;font-size:10px;font-weight:800}.prize-photo{border-radius:14px;height:min(32vh,240px);margin-bottom:0;overflow:hidden;box-shadow:inset 0 0 0 2px #ffd27a59}.prize-photo img,.prize-photo .photo-fallback{object-fit:cover;width:100%;height:100%}.prize-kicker{color:var(--gold);letter-spacing:.18em;margin:0;font-size:11px}.prize h2{font-family:var(--serif);margin:4px 0 6px;font-size:28px}.prize-blurb{color:#f6ead6d1;margin:0 4px 8px;font-size:13px}.prize-actions{z-index:8;background:linear-gradient(#0000,#070605 22%);flex-direction:column;align-items:stretch;gap:4px;padding:14px 2px 6px;display:flex;position:sticky;bottom:0}.prize-actions .spin-btn,.prize-actions .share-hero{pointer-events:auto}.share-hero{appearance:none;color:#1a1208;background:linear-gradient(#ffe29a,#e0a94a);border:0;border-radius:999px;flex-direction:column;align-items:center;gap:1px;width:100%;max-width:100%;padding:12px 20px 13px;animation:1.8s ease-in-out infinite pulseGlow;display:flex;box-shadow:0 0 0 4px #ffd27a38,0 12px 28px #00000073}.share-hero-kicker{letter-spacing:.16em;opacity:.68;font-size:10px;font-weight:700}.share-hero-label{letter-spacing:.08em;font-size:17px;font-weight:800}.share-hero:disabled{opacity:.65;cursor:wait;animation:none}.prize-links{pointer-events:auto;flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.prize-links button,.prize-links a{appearance:none;color:#f6ead6b3;letter-spacing:.06em;background:0 0;border:0;align-items:center;min-height:44px;padding:10px 8px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.prize-links>*+:before{content:"·";opacity:.4;pointer-events:none;margin-right:8px}.prize-links .is-collect{color:var(--gold)}.checkin-sheet .share-hero{align-self:center;width:min(100%,22em);margin-top:6px}.checkin-sheet .prize-links{margin-top:2px}.share-note{color:var(--gold);margin:0 0 10px;font-size:13px}.share-fallback{z-index:50;padding:24px 16px calc(24px + env(safe-area-inset-bottom));background:#070605eb;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.share-fallback p{color:var(--gold);text-align:center;margin:0;font-size:16px;font-weight:700}.share-fallback img{-webkit-touch-callout:default;-webkit-user-select:none;user-select:none;border-radius:16px;max-width:min(92vw,420px);max-height:58vh;box-shadow:0 12px 40px #000}.share-cta{white-space:pre-wrap;max-width:22em;line-height:1.45;color:var(--paper)!important;font-size:13px!important;font-weight:400!important}.checkin-badge{color:var(--gold);letter-spacing:.08em;margin:6px 4px 0;font-size:12px;font-weight:800}.checkin-sheet,.dex{z-index:40;background:#070605f0;flex-direction:column;display:flex;position:fixed;inset:0}.checkin-sheet{text-align:center;justify-content:center;align-items:center;gap:12px;padding:24px 20px}.checkin-sheet h2{font-family:var(--serif);margin:0;font-size:clamp(26px,7vw,36px)}.checkin-sheet p{color:#f6ead6c7;max-width:22em;margin:0;line-height:1.5}.checkin-kicker,.checkin-stamp{color:var(--gold);letter-spacing:.28em;margin:0;font-size:13px;font-weight:800}.checkin-stamp{border:3px solid var(--gold);border-radius:8px;padding:8px 18px;font-size:18px;animation:.35s cubic-bezier(.2,1.4,.3,1) stamp;transform:rotate(-8deg)}.dex-hud{padding:calc(12px + env(safe-area-inset-top)) 16px 10px;text-align:center}.dex-count{color:var(--gold-2);letter-spacing:.08em;margin:8px 0 6px;font-weight:800}.dex-book{text-align:center;border:1px solid #ffd27a38;border-radius:14px;max-width:22em;margin:8px auto 4px;padding:10px 12px}.dex-book p{letter-spacing:0;color:#f6ead6b3;margin:0;font-size:12px;line-height:1.4}.dex-book-id{font-family:ui-monospace,monospace;font-weight:800;letter-spacing:.16em!important;color:var(--gold)!important;margin:8px 0 4px!important;font-size:20px!important}.dex-restore{justify-content:center;align-items:center;gap:8px;margin-top:8px;display:flex}.dex-restore input{width:11em;color:var(--paper);font:inherit;letter-spacing:.12em;text-align:center;background:#14100c;border:1px solid #ffd27a47;border-radius:999px;padding:8px 10px}.dex-book-note{color:var(--gold)!important;margin-top:6px!important}.dex-bar{background:#f6ead61f;border-radius:999px;max-width:220px;height:6px;margin:0 auto 8px;overflow:hidden}.dex-bar span{background:linear-gradient(90deg,#c9a227,#ffe29a);height:100%;display:block}.dex-body{padding:0 14px calc(20px + env(safe-area-inset-bottom));flex:1;overflow:auto}.dex-empty{text-align:center;color:#f6ead6b3;line-height:1.5}.dex-city{margin:16px 0 22px}.dex-city-name{font-family:var(--serif);justify-content:space-between;margin:0 2px 8px;font-size:20px;display:flex}.dex-city-name span{font-family:var(--sans);color:var(--gold);letter-spacing:.08em;font-size:12px}.dex-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.dex-cell{aspect-ratio:3/4;color:#fff;background:#14100c;border:1px solid #ffd27a38;border-radius:12px;padding:0;position:relative;overflow:hidden}.dex-cell img,.dex-cell .photo-fallback,.dex-lock{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.dex-lock{background:repeating-linear-gradient(135deg,#1a1410 0 8px,#120e0b 8px 16px)}.dex-cell-meta{text-align:left;background:linear-gradient(#0000,#000000d1);padding:18px 6px 6px;font-size:11px;font-weight:800;line-height:1.25;position:absolute;bottom:0;left:0;right:0}.dex-cell-meta em,.dex-cell-meta small{letter-spacing:.08em;color:var(--gold);font-size:9px;font-style:normal;font-weight:700;display:block}.dex-cell.is-locked{opacity:.55;cursor:default}.dex-cell.is-got{box-shadow:0 0 0 1px #ffd27a59}@keyframes stamp{0%{opacity:0;transform:rotate(-18deg)scale(1.4)}to{opacity:1;transform:rotate(-8deg)scale(1)}}.legal{letter-spacing:.08em;color:#f6ead673;margin:8px 0 0;font-size:11px}.legal a{color:inherit;text-decoration:none}.legal a:hover{color:var(--gold)}.legal-note{letter-spacing:.06em;color:#f6ead652;margin:4px 0 0;font-size:10px}.ad-slot{background:#ffd27a0f;border-radius:10px;min-height:0;margin:0 0 12px;overflow:hidden}.photo-fallback{background:radial-gradient(circle at 30% 20%,#4a3228,#151210)}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 0 4px #ffd27a38,0 12px 28px #00000073}50%{transform:scale(1.04);box-shadow:0 0 0 8px #ffd27a1f,0 16px 32px #00000080}}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 4px #ffd27a38,0 12px 28px #00000073}50%{box-shadow:0 0 0 10px #ffd27a29,0 16px 36px #ffd27a2e}}@keyframes pop{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:none}}@keyframes settleIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes wheelTension{0%{filter:drop-shadow(0 18px 40px #0000008c)}35%{filter:drop-shadow(0 0 28px #ffd27a61)}to{filter:drop-shadow(0 18px 40px #0000008c)}}@keyframes giftFlash{0%{opacity:1}to{opacity:0}}@keyframes giftSpin{to{transform:rotate(180deg)}}@keyframes giftFade{0%{opacity:1}70%{opacity:1}to{opacity:0}}@keyframes giftRing{0%{opacity:0;transform:translate(-50%,-50%)scale(.35)}40%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}to{opacity:0;transform:translate(-50%,-50%)scale(1.45)}}@keyframes giftWord{0%{opacity:0;letter-spacing:.5em;transform:translate(-50%,-50%)scale(.88)}35%{opacity:1;letter-spacing:.28em;transform:translate(-50%,-50%)scale(1)}75%{opacity:1}to{opacity:0}}@keyframes giftCard{0%{opacity:0;filter:brightness(2.4);transform:perspective(900px)scale(.4)rotateX(22deg)}48%{opacity:1;filter:brightness(1.25);transform:perspective(900px)scale(1.05)rotateX(0)}to{opacity:1;filter:none;transform:none}}@keyframes giftVeil{0%{background:#0706058c}55%{background:#07060547}to{background:#07060500}}.gift-stage{z-index:18;pointer-events:none;background:#0706056b;animation:1.55s forwards giftVeil;position:fixed;inset:0;overflow:hidden}.gift-flash{opacity:1;background:radial-gradient(circle at 50% 42%,#fff8dc 0%,#ffd27a 28%,#0000 68%);animation:.5s ease-out forwards giftFlash;position:absolute;inset:0}.gift-rays{background:repeating-conic-gradient(from 0deg, #ffd27a33 0 7deg, transparent 7deg 16deg);animation:1.55s linear giftSpin,1.55s forwards giftFade;position:absolute;inset:-40%}.gift-ring{aspect-ratio:1;border:2px solid #ffd27abf;border-radius:50%;width:min(68vw,260px);animation:1.2s cubic-bezier(.2,1.2,.3,1) forwards giftRing;position:absolute;top:42%;left:50%;box-shadow:0 0 48px #ffd27a73,inset 0 0 40px #ffd27a2e}.gift-word{font-family:var(--serif);color:var(--gold);letter-spacing:.28em;opacity:1;text-shadow:0 0 28px #ffd27ad9;margin:0;font-size:clamp(32px,9vw,52px);animation:1.35s forwards giftWord;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.gift-stage.is-flash .gift-flash,.gift-stage.is-legend .gift-flash{background:radial-gradient(circle at 50% 42%,#fff 0%,#ffe29a 22%,#ffd27a 40%,#0000 70%)}.gift-stage.is-legend .gift-rays{background:repeating-conic-gradient(from 0deg, #ffe29a52 0 8deg, transparent 8deg 15deg)}.gift-stage.is-legend .gift-word{color:#fff3c4}@media (prefers-reduced-motion:reduce){.wheel,.spin-btn,.share-hero,.prize{transition:none;animation:none}.prize.is-gifting .view-card,.gift-stage,.gift-flash,.gift-rays,.gift-ring,.gift-word{animation:none}.gift-stage{background:#07060580}.gift-flash,.gift-word,.gift-rays,.gift-ring{opacity:1}}
.wheel-label{font-size:0!important;color:transparent;text-shadow:none}

.day-guide{margin:12px 2px 8px;padding:14px 14px 12px;border:1px solid #ffd27a33;border-radius:16px;background:linear-gradient(#14100c,#0e0b09)}
.day-kicker{color:var(--gold);letter-spacing:.18em;margin:0 0 8px;font-size:10px;font-weight:800}
.day-stay{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin:0 0 8px}
.day-stay b{font-family:var(--serif);font-size:22px;font-weight:800;color:#fff6d0}
.day-stay span{color:#f6ead6b8;font-size:13px}
.day-why{color:#f6ead6d6;margin:0 0 12px;font-size:13px;line-height:1.55}
.day-h{color:var(--gold);letter-spacing:.12em;margin:12px 0 6px;font-size:11px;font-weight:800}
.day-ul,.day-ol,.day-eats{margin:0;padding:0 0 0 18px}
.day-ul li,.day-ol li{color:#f6ead6e3;margin:0 0 4px;font-size:13px;line-height:1.45}
.day-eats{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}
.day-eats li{display:grid;grid-template-columns:4.6em 1fr;gap:2px 10px;align-items:baseline}
.day-eats em{color:#1a1208;background:var(--gold);border-radius:999px;padding:1px 7px;font-size:10px;font-style:normal;font-weight:800;letter-spacing:.04em;text-align:center}
.day-eats strong{grid-column:2;font-size:14px;font-weight:800;color:#fff6d0}
.day-eats span{grid-column:2;color:#f6ead6b3;font-size:12px;line-height:1.4}
.day-tip{color:#f6ead6c9;margin:12px 0 0;font-size:12px;line-height:1.5}
.day-note{color:#f6ead66e;margin:10px 0 0;font-size:11px;line-height:1.45}
.prize .day-guide{margin-bottom:88px}

.prize.is-gifting .day-guide{opacity:0;pointer-events:none}


.stage.pick{overflow:hidden;gap:8px;min-height:0}
.stage.pick .game-title{font-size:clamp(28px,7vw,44px)}
.stage.pick .game-sub{max-width:24em}
.world-wrap{flex-direction:column;flex:1;gap:8px;width:100%;min-height:0;display:flex}
.world-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-shrink:0;gap:6px;margin:0 -4px;padding:0 4px 2px;display:flex;overflow:auto}
.world-tabs::-webkit-scrollbar{display:none}
.world-tabs button{appearance:none;color:#f6ead6b8;letter-spacing:.12em;background:#140e0acc;border:1px solid #ffd27a3d;border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:12px;font-weight:700}
.world-tabs button.is-on{color:#1a1208;background:linear-gradient(#ffe29a,#e0a94a);border-color:#ffd27a}
.world-view{isolation:isolate;background:radial-gradient(ellipse at 50% 45%,#241810 0%,#0b0907 70%);border:1px solid #ffd27a47;border-radius:18px;flex:1;min-height:210px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 40px #000000a6,0 0 40px #ffd27a14}
.world-grid{background-image:linear-gradient(#ffd27a14 1px,transparent 1px),linear-gradient(90deg,#ffd27a14 1px,transparent 1px);background-size:16.666% 16.666%;opacity:.35;pointer-events:none;position:absolute;inset:0}
.world-scan{background:linear-gradient(#0000,#ffd27a26,#0000);pointer-events:none;height:28%;animation:22s linear infinite worldScan;position:absolute;inset:auto 0 0;z-index:2}
.world-zoom{aspect-ratio:2/1;transform-origin:var(--ox) var(--oy);width:118%;max-height:none;transition:transform .85s cubic-bezier(.2,.8,.2,1);transform:scale(var(--sc));position:relative}
.world-land{object-fit:fill;pointer-events:none;width:100%;height:100%;display:block;filter:drop-shadow(0 0 18px #ffd27a2e)}
.world-pin{appearance:none;color:var(--gold);background:0 0;border:0;padding:0;position:absolute;transform:translate(-50%,-50%);z-index:3}
.world-pin i{border:2px solid #fff6d0;width:11px;height:11px;background:#ffd27a;border-radius:50%;display:block;box-shadow:0 0 10px #ffd27acc}
.world-pin b{opacity:.7;border:1px solid #ffd27a8c;border-radius:50%;width:22px;height:22px;animation:2.2s ease-out infinite pinPulse;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
.world-pin span{text-shadow:0 1px 8px #000;letter-spacing:.06em;white-space:nowrap;pointer-events:none;font-size:10px;font-weight:800;position:absolute;top:14px;left:50%;transform:translateX(-50%)}
.world-pin.is-soon{opacity:.42}
.world-pin.is-soon i{background:#8a8174;border-color:#cfc6b4;box-shadow:none}
.world-pin.is-soon b{display:none}
.world-pin.is-live:active{transform:translate(-50%,-50%) scale(1.15)}
.world-pin.is-open i{background:#fff;box-shadow:0 0 16px #ffe29a}
.world-hint{text-align:center;color:#f6ead6b3;flex-shrink:0;margin:0;font-size:12px;line-height:1.4}
.world-empty{text-align:center;color:#f6ead69c;margin:0;font-size:13px}
.world-chips{scrollbar-width:none;flex-shrink:0;gap:8px;padding:2px 2px 6px;display:flex;overflow:auto}
.world-chips::-webkit-scrollbar{display:none}
.world-chip{isolation:isolate;color:#fff;background:#1a1410;border:1px solid #ffd27a59;border-radius:12px;flex-shrink:0;align-items:center;gap:0;width:7.6em;height:46px;padding:0;display:flex;position:relative;overflow:hidden}
.world-chip img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;opacity:.85}
.world-chip span{z-index:1;text-shadow:0 1px 8px #000;letter-spacing:.04em;padding:0 8px;font-family:var(--serif);font-size:16px;font-weight:700;position:relative}
.world-sheet{border:1px solid #ffd27a47;border-radius:14px;background:#140e0cf2;flex-shrink:0;padding:10px 10px 8px}
.world-sheet p{color:var(--gold);letter-spacing:.12em;margin:0 0 8px;font-size:11px;font-weight:800}
.world-sheet div{flex-wrap:wrap;gap:8px;display:flex}
.world-sheet div button{appearance:none;color:#1a1208;background:linear-gradient(#ffe29a,#e0a94a);border:0;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:800}
@keyframes pinPulse{0%{opacity:.7;transform:translate(-50%,-50%) scale(.55)}to{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}
@keyframes worldScan{0%{transform:translateY(-120%)}to{transform:translateY(350%)}}
@media (prefers-reduced-motion:reduce){.world-zoom,.world-scan,.world-pin b{transition:none;animation:none}}


/* interactive map: pan, pinch, zoom, collision-safe labels */
.world-view{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;display:block!important;overflow:hidden;min-height:240px}
.world-view.is-drag{cursor:grabbing}
.world-view.is-drag .world-pin span{opacity:.2}
.world-layer{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;--iz:1}
.world-land{-webkit-user-drag:none;user-select:none}
.world-pin{width:44px;height:44px;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%) scale(var(--iz,1));transform-origin:center center;z-index:3}
.world-pin.is-live:active{transform:translate(-50%,-50%) scale(calc(var(--iz,1)*1.12))}
.world-pin.is-dim{opacity:0!important;pointer-events:none}
.world-pin span{background:#140e0ae8;border:1px solid #ffd27a73;border-radius:999px;padding:2px 7px;font-size:11px;line-height:1.2;letter-spacing:.04em;box-shadow:0 2px 10px #000000a6}
.world-pin.side-s span{top:38px;left:50%;right:auto;bottom:auto;transform:translateX(-50%)}
.world-pin.side-n span{bottom:38px;top:auto;left:50%;right:auto;transform:translateX(-50%)}
.world-pin.side-e span{left:38px;top:50%;right:auto;bottom:auto;transform:translateY(-50%)}
.world-pin.side-w span{right:38px;left:auto;top:50%;bottom:auto;transform:translateY(-50%)}
.world-zoom-btns{position:absolute;right:10px;bottom:10px;z-index:6;display:flex;flex-direction:column;gap:6px}
.world-zoom-btns button{appearance:none;width:40px;height:40px;color:#1a1208;background:linear-gradient(#ffe29a,#e0a94a);border:0;border-radius:10px;font-size:22px;font-weight:800;line-height:1;box-shadow:0 6px 16px #00000073}
.world-grid{z-index:1;pointer-events:none}
.world-scan{display:none}
