/* Maffy's Magical Globe — Royal Edition UI layer. The original style.css is untouched. */
.mg-embed header,.mg-embed footer{display:none}
#mgfx{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;z-index:3}
#art{z-index:1}
:root{--mg-gold:#f2c877;--mg-cream:#fff0d6;--mg-ink:#4a2b6b;--mg-vio:#a05cff}
.mg-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
button.mg-btn-reset{all:unset;box-sizing:border-box;cursor:pointer}
/* ---- compass launcher ---- */
#mgCompass{position:fixed;z-index:12;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:clamp(78px,11vw,118px);aspect-ratio:1/1.2;border:0;background:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:50%}
#mgCompass .cimg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 100%;opacity:0;transition:opacity .35s ease,transform .45s cubic-bezier(.2,.9,.3,1.3);pointer-events:none;user-select:none}
#mgCompass .cimg.idle{opacity:1;animation:mgFloat 5.5s ease-in-out infinite;filter:drop-shadow(0 0 10px #b86bff99) drop-shadow(0 6px 10px #0008)}
#mgCompass:hover .idle,#mgCompass:focus-visible .idle{opacity:0}
#mgCompass:hover .hover,#mgCompass:focus-visible .hover{opacity:1;transform:scale(1.07) rotate(-2deg);filter:drop-shadow(0 0 18px #d58cffcc) drop-shadow(0 0 30px #ffc77a88)}
#mgCompass.opening .idle,#mgCompass.opening .hover{opacity:0}
#mgCompass.opening .opening{opacity:1;animation:mgWobble .7s ease-out}
#mgCompass.open .idle,#mgCompass.open .hover,#mgCompass.open .opening{opacity:0}
#mgCompass.open .opened{opacity:1;filter:drop-shadow(0 0 18px #d58cffcc)}
#mgCompass:focus-visible{outline:2px solid var(--mg-gold);outline-offset:4px}
#mgCompass .halo{position:absolute;inset:-14%;border-radius:50%;background:radial-gradient(circle,#c07bff55 0,#c07bff00 62%);opacity:.0;transition:opacity .4s;pointer-events:none;animation:mgPulse 3.2s ease-in-out infinite}
#mgCompass:hover .halo,#mgCompass.open .halo{opacity:1}
#mgCompass .lbl{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);white-space:nowrap;background:#24113bdd;border:1px solid #d8a96e99;color:#ffe8c5;border-radius:16px;padding:5px 12px;font:600 12px Georgia,serif;opacity:0;pointer-events:none;transition:opacity .25s;margin-bottom:2px}
#mgCompass:hover .lbl,#mgCompass:focus-visible .lbl{opacity:1}
@keyframes mgFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes mgPulse{0%,100%{transform:scale(.96)}50%{transform:scale(1.06)}}
@keyframes mgWobble{0%{transform:scale(.8) rotate(-8deg)}60%{transform:scale(1.1) rotate(4deg)}100%{transform:scale(1) rotate(0)}}
/* ---- places button ---- */
#mgPlacesBtn{position:fixed;z-index:12;left:max(12px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;padding:6px 16px 6px 8px;border-radius:30px;border:1px solid #d8a96e99;background:linear-gradient(180deg,#3b1d63ee,#22103bee);color:#ffe8c5;font:600 14px Georgia,serif;cursor:pointer;box-shadow:0 0 18px #9a55ff55;touch-action:manipulation}
#mgPlacesBtn img{width:30px;height:30px;object-fit:contain;filter:drop-shadow(0 0 5px #c47bff)}
#mgPlacesBtn:hover{background:#4a2478}
#mgPlacesBtn[hidden]{display:none}
/* ---- overlays ---- */
.mg-ov{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 45%,#2b115560,#0b041ad9);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity .35s;overscroll-behavior:contain}
.mg-ov.show{opacity:1}
.mg-ov[hidden]{display:none}
.mg-anim{position:absolute;inset:0;transform-origin:50% 50%}
.mg-ov.show .mg-anim{animation:mgOpen .75s cubic-bezier(.18,.9,.25,1.05) both}
.mg-ov.closing .mg-anim{animation:mgClose .35s ease-in both}
@keyframes mgOpen{0%{transform:translate(var(--fx,0),var(--fy,0)) scale(.08) rotate(-10deg);opacity:0;filter:brightness(2.2) blur(3px)}45%{opacity:1}100%{transform:none;opacity:1;filter:none}}
@keyframes mgClose{to{transform:translate(var(--fx,0),var(--fy,0)) scale(.08) rotate(8deg);opacity:0}}
.mg-stage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(var(--s,1));transform-origin:center;background-repeat:no-repeat;background-size:100% 100%;font-family:Georgia,'Times New Roman',serif;color:var(--mg-cream);filter:drop-shadow(0 20px 40px #0009)}
.mg-stage *{box-sizing:border-box}
.mg-stage button{font-family:inherit}
.mg-x{position:absolute;border-radius:50%;background:transparent;border:0;cursor:pointer;color:transparent}
.mg-x:focus-visible,.mg-stage button:focus-visible,.mg-stage input:focus-visible,.mg-stage select:focus-visible{outline:3px solid var(--mg-gold);outline-offset:2px}
/* ---- parchment (design space 1374 x 1145) ---- */
#mgParch .mg-stage{width:1374px;height:1145px;background-image:url(assets/parchment.webp)}
.pc-title{position:absolute;left:440px;top:150px;width:560px;white-space:nowrap;font:italic 700 44px Georgia,serif;color:var(--mg-ink);text-shadow:0 1px 0 #fff8;line-height:1.1}
.pc-title small{display:block;font:italic 400 24px Georgia,serif;color:#7a5a9a;margin-top:4px}
.pc-q{position:absolute;left:438px;top:282px;width:575px;height:56px;background:transparent;border:0;color:var(--mg-cream);font:400 30px Georgia,serif;caret-color:var(--mg-gold);padding:0 6px}
.pc-q:focus,.pc-q:focus-visible{outline:none;box-shadow:0 0 0 2px #f2c87766,0 0 18px #a05cff88;border-radius:20px}
.pc-q::placeholder{color:#b89bd2;font-style:italic}
.pc-list{position:absolute;left:366px;top:356px;width:640px;height:236px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}
.pc-list::-webkit-scrollbar{display:none}
.pc-row{display:flex;align-items:center;gap:14px;width:100%;height:57px;padding:0 20px;background:transparent;border:0;color:var(--mg-cream);text-align:left;cursor:pointer;font-size:28px}
.pc-row:hover,.pc-row[aria-selected=true]{background:linear-gradient(90deg,#a05cff55,#a05cff00)}
.pc-row b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:330px}
.pc-row span{color:#cdb3e6;font-size:23px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.pc-row i{font-style:normal;font-size:19px;letter-spacing:1px;border:1px solid #f2c87788;color:var(--mg-gold);border-radius:8px;padding:1px 7px}
.pc-msg{padding:16px 22px;font-size:25px;color:#cdb3e6;font-style:italic;line-height:1.3}
.pc-msg.warn{color:#ffcf9a}
.pc-sum{display:grid;gap:0;width:100%}
.pc-sumrow{display:flex;align-items:center;gap:12px;min-height:57px;padding:6px 18px;flex-wrap:wrap}
.pc-sumrow em{font-style:normal;font-size:19px;letter-spacing:2px;color:var(--mg-gold);width:84px;flex:none;text-transform:uppercase}
.pc-chip{display:inline-flex;align-items:center;gap:8px;background:#a05cff33;border:1px solid #f2c87799;border-radius:22px;padding:4px 6px 4px 16px;font-size:25px;color:var(--mg-cream)}
.pc-chip button{all:unset;cursor:pointer;width:30px;height:30px;border-radius:50%;text-align:center;line-height:28px;color:#ffd9a0;font-size:24px}
.pc-chip button:hover{background:#ffffff22}
.pc-hint{font-size:23px;color:#b89bd2;font-style:italic}
.pc-last{all:unset;cursor:pointer;font-size:22px;color:var(--mg-gold);text-decoration:underline dotted;text-underline-offset:5px}
.pc-date{background:#1c0b2e;border:1px solid #f2c87766;border-radius:10px;color:var(--mg-cream);font:400 24px Georgia,serif;padding:3px 8px;height:42px;color-scheme:dark;width:210px}
.pc-msgline{position:absolute;left:372px;top:598px;width:650px;height:40px;font-size:24px;font-style:italic;color:#7a2a5a;text-align:center;line-height:40px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.pc-role{position:absolute;left:450px;top:648px;width:510px;height:70px;appearance:none;-webkit-appearance:none;background:transparent;border:0;color:var(--mg-cream);font:400 28px Georgia,serif;cursor:pointer;padding:0 8px}
.pc-role option{color:#241033;background:#fff0d6;font-size:18px}
.pc-go{position:absolute;left:402px;top:932px;width:574px;height:84px;border-radius:44px;background:transparent;border:0;color:var(--mg-cream);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:30px;letter-spacing:1px;padding-left:310px;font-weight:700;text-shadow:0 0 12px #c47bff}
.pc-go:disabled{cursor:progress;opacity:.8}
.pc-go:hover{background:#ffffff12}
.pc-del{position:absolute;left:432px;top:944px;height:60px;background:transparent;border:0;color:#ffbdbd;font-size:22px;cursor:pointer;text-decoration:underline dotted;text-underline-offset:5px;max-width:200px;text-align:left}
.pc-attr{position:absolute;left:372px;top:1030px;font-size:15px;color:#7a5a9a}
/* ---- horizontal destination card (806 x 765) ---- */
#mgCard .mg-stage{width:806px;height:765px;background-image:url(assets/card_h.webp)}
.dc-in{position:absolute;left:176px;top:292px;width:460px;height:262px;display:grid;grid-template-rows:auto 1fr;gap:6px;color:var(--mg-ink)}
.dc-head{text-align:center;line-height:1}
.dc-head h2{margin:0;font:700 44px Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#3a1a5a}
.dc-head small{font:italic 400 24px Georgia,serif;color:#7a5a9a}
.dc-body{display:grid;grid-template-columns:150px 1fr;gap:14px;min-height:0}
.dc-ph{position:relative;border-radius:12px;border:2px solid #d8a96e;background:radial-gradient(ellipse at 50% 40%,#5a2d93,#24103f 75%) center/cover;overflow:hidden;box-shadow:inset 0 0 14px #0009}
.dc-ph .none{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:8px;font-size:20px;color:#e9d6ff;font-style:italic;line-height:1.2}
.dc-ph button{position:absolute;border:0;cursor:pointer;color:#fff3d4;background:#2a1240cc;border-radius:50%;width:34px;height:34px;font-size:22px;line-height:32px;padding:0}
.dc-ph .prev{left:4px;top:50%;margin-top:-17px}.dc-ph .next{right:4px;top:50%;margin-top:-17px}
.dc-ph .rm{right:4px;top:4px;width:30px;height:30px;font-size:18px;line-height:28px}
.dc-ph .add{left:50%;bottom:6px;transform:translateX(-50%);width:auto;height:34px;border-radius:17px;padding:0 12px;font-size:19px;white-space:nowrap;border:1px solid #f2c87799}
.dc-trips{overflow-y:auto;min-height:0;display:grid;gap:8px;align-content:start;padding-right:4px}
.dc-trip{border:1px solid #d8a96e;border-radius:12px;background:#fff7e6cc;padding:6px 10px;display:grid;gap:3px}
.dc-trip b{font-size:23px;line-height:1.1;color:#3a1a5a}
.dc-trip small{font-size:20px;color:#7a5a9a;line-height:1.1}
.dc-acts{display:flex;gap:8px;margin-top:2px}
.dc-acts button,.dc-foot button{border:1px solid #c9954a;background:linear-gradient(180deg,#8a4cc7,#5b2a93);color:#fff3d4;border-radius:16px;font-size:20px;padding:3px 12px;cursor:pointer;height:34px;white-space:nowrap}
.dc-acts button:hover,.dc-foot button:hover{filter:brightness(1.2)}
.dc-foot{display:flex;justify-content:center;gap:10px}
.dc-addj{cursor:pointer;color:#5b2a93;font:700 21px Georgia,serif;text-align:center;border-style:dashed}
.mg-close{position:fixed;z-index:3;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));width:46px;height:46px;border-radius:50%;border:1px solid #d8a96e;background:#2a1240e6;color:#ffe8c5;font-size:22px;cursor:pointer;box-shadow:0 0 14px #9a55ff66}
.mg-close:hover{background:#4a2478}
.pc-go span{background:linear-gradient(180deg,#5a2796,#431b78);border-radius:30px;padding:2px 22px;box-shadow:0 0 14px #1a0836}
/* ---- vertical collection cards (730 x 1024) ---- */
#mgPlaces{overflow:auto;align-content:start;place-items:start center}
#mgPlaces .pl-wrap{width:100%;min-height:100%;padding:56px 12px 24px;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-content:flex-start}
#mgPlaces h2{width:100%;text-align:center;font:italic 700 28px Georgia,serif;margin:0 0 4px;color:var(--mg-cream);text-shadow:0 0 16px #b86bff}
#mgPlaces .pl-empty{width:100%;text-align:center;color:#cdb3e6;font-style:italic;padding:60px 20px;line-height:1.5}
.vc{position:relative;width:calc(730px*var(--vs));height:calc(1024px*var(--vs));flex:none;cursor:pointer;background:none;border:0;padding:0;color:inherit}
.vc .mg-stage{position:absolute;left:0;top:0;transform:scale(var(--vs));transform-origin:0 0;width:730px;height:1024px;background-image:url(assets/card_v.webp);filter:drop-shadow(0 8px 14px #0008);transition:filter .2s}
.vc:hover .mg-stage,.vc:focus-visible .mg-stage{filter:drop-shadow(0 0 18px #c47bff) drop-shadow(0 8px 14px #0008)}
.vc:focus-visible{outline:2px solid var(--mg-gold);outline-offset:-4px}
.vc-in{position:absolute;left:182px;top:312px;width:366px;height:410px;display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--mg-ink);gap:8px}
.vc-ph{width:100%;height:190px;border-radius:16px;border:3px solid #d8a96e;background:radial-gradient(ellipse at 50% 40%,#5a2d93,#24103f 75%) center/cover;box-shadow:inset 0 0 20px #0009;display:grid;place-items:center;overflow:hidden}
.vc-ph img{width:78px;height:auto;filter:drop-shadow(0 0 10px #c47bff)}
.vc-in h3{margin:4px 0 0;font:700 46px Georgia,serif;line-height:1.05;color:#3a1a5a;max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.vc-in p{margin:0;font:italic 400 28px Georgia,serif;color:#7a5a9a}
.vc-in .meta{font:600 26px Georgia,serif;color:#5b2a93;margin-top:auto}
#mgPlaces .pl-x{position:fixed;top:max(10px,env(safe-area-inset-top));right:12px;width:46px;height:46px;border-radius:50%;border:1px solid #d8a96e;background:#2a1240e6;color:#ffe8c5;font-size:24px;cursor:pointer;z-index:2}
/* ---- route pill, toast, tooltip ---- */
#mgPill{position:fixed;z-index:13;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:6px;background:linear-gradient(180deg,#3b1d63f2,#22103bf2);border:1px solid #d8a96e;border-radius:28px;padding:6px 8px 6px 18px;color:#ffe8c5;font:600 14px Georgia,serif;box-shadow:0 0 24px #9a55ff66;max-width:min(92vw,560px)}
#mgPill[hidden]{display:none}
#mgPill .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;padding-right:6px}
#mgPill button{border:1px solid #d8a96e88;background:#5b2a93;color:#fff3d4;border-radius:20px;height:34px;padding:0 14px;cursor:pointer;font:600 13px Georgia,serif;white-space:nowrap}
#mgPill button:hover{background:#7a3fc0}
.mg-toast{position:fixed;z-index:60;left:50%;top:max(14px,env(safe-area-inset-top));transform:translate(-50%,-20px);opacity:0;background:#24113bf0;border:1px solid #d8a96e;color:#ffe8c5;border-radius:16px;padding:10px 18px;font:14px Georgia,serif;max-width:min(92vw,520px);text-align:center;transition:.3s;pointer-events:none;box-shadow:0 6px 24px #000a}
.mg-toast.show{opacity:1;transform:translate(-50%,0)}
.mg-toast.err{border-color:#ff9a9a}
#mgTip{position:fixed;z-index:14;pointer-events:none;transform:translate(-50%,-100%);background:#24113bee;border:1px solid #d8a96e99;color:#ffe8c5;border-radius:12px;padding:4px 10px;font:600 13px Georgia,serif;white-space:nowrap;opacity:0;transition:opacity .15s}
#mgTip.show{opacity:1}
.mg-spark{position:fixed;z-index:31;pointer-events:none;width:10px;height:10px;margin:-5px;border-radius:50%;background:radial-gradient(circle,#fff 0,#ffd98a 35%,#b05cff00 70%);animation:mgSpark .9s ease-out forwards}
@keyframes mgSpark{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
@media(prefers-reduced-motion:reduce){#mgCompass .idle,#mgCompass .halo{animation:none}.mg-ov.show .mg-anim{animation:none}}

@media(max-width:700px){body:not(.clean) footer{display:none}}
.pc-msgline:empty::after{content:"City search by Open-Meteo.com · data © GeoNames (CC BY 4.0)";font-size:17px;font-style:normal;opacity:.62}

/* ---- parchment: real close control over the baked-in circled X, repainted status buttons, clickable rows ---- */
.pc-x{position:absolute;left:1074px;top:78px;width:100px;height:100px;border-radius:50%;background:transparent;border:0;padding:0;cursor:pointer;z-index:3;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.pc-x:hover{background:radial-gradient(circle,#ffffff2e,#ffffff00 70%)}
.pc-x:focus-visible{outline:4px solid var(--mg-gold);outline-offset:-2px}
.pc-st{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:6px 4px 8px;border-radius:24px;cursor:pointer;color:#e9c98f;font:600 25px Georgia,serif;letter-spacing:.5px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:3px solid #c08a45;background:linear-gradient(180deg,#3b2142,#26122e);box-shadow:inset 0 0 0 3px #2a1431,inset 0 0 22px #0007;transition:background .2s,box-shadow .2s,border-color .2s,color .2s,transform .15s}
.pc-st .pc-st-i{width:58px;height:58px;display:block;filter:drop-shadow(0 0 5px #ffcf7a66)}
.pc-st .pc-st-i svg{width:100%;height:100%;fill:#e6b873;display:block}
.pc-st:hover{filter:brightness(1.12)}
.pc-st:active{transform:scale(.97)}
.pc-st[aria-pressed=true]{color:#fff3de;border-color:#ff9bf0;background:linear-gradient(180deg,#6b2d9b,#44186f);box-shadow:0 0 0 2px #ffb8f566,0 0 26px #e56dff,inset 0 0 22px #ff9bf066}
.pc-st[aria-pressed=true] .pc-st-i svg{fill:#ffe9f6}
.pc-st[aria-pressed=true]::after{content:"✓";position:absolute;right:12px;top:6px;font-size:24px;color:#ffe9f6}
.pc-st:focus-visible{outline:4px solid var(--mg-gold);outline-offset:3px}
.pc-act{cursor:pointer;border-left:3px solid transparent;transition:background .2s}
.pc-act:hover{background:#ffffff0d}
.pc-act.act{background:linear-gradient(90deg,#a05cff30,#a05cff00);border-left-color:var(--mg-gold)}
.pc-act.act em{color:#fff0c8}
.pc-act .pc-hint{text-decoration:underline dotted #b89bd266;text-underline-offset:5px}
/* ---- country panel ---- */
#mgCountry{overflow:auto;place-items:start center;align-content:start}
.cp-panel{position:relative;width:min(1180px,calc(100vw - 20px));margin:max(54px,env(safe-area-inset-top)) auto 28px;padding:22px 26px 30px;border-radius:30px;background:radial-gradient(ellipse at 50% 0,#4b2480ee,#1d0c36f2 70%);border:2px solid #d8a96e;box-shadow:0 0 0 5px #2a1244,0 0 0 7px #d8a96eaa,0 24px 60px #000a,inset 0 0 60px #a05cff33;color:var(--mg-cream);font-family:Georgia,'Times New Roman',serif;animation:mgOpen .6s cubic-bezier(.18,.9,.25,1.05) both}
.cp-panel::before,.cp-panel::after{content:"✦";position:absolute;top:10px;font-size:22px;color:#f2c877;opacity:.85}
.cp-panel::before{left:18px}.cp-panel::after{right:18px}
.cp-head{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:16px;text-align:left}
.cp-head img{width:84px;height:auto;filter:drop-shadow(0 0 14px #c47bff)}
.cp-head h2{margin:0;font:italic 700 clamp(30px,5vw,48px) Georgia,serif;color:#ffe8c5;text-shadow:0 0 18px #b86bff}
.cp-head small{display:block;margin-top:4px;font:italic 400 17px Georgia,serif;color:#d8c0ee}
.cp-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
#mgCountry .vc .mg-stage{background-image:url(assets/card_v.webp)}
.mg-back{position:fixed;z-index:3;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));height:46px;padding:0 18px;border-radius:23px;border:1px solid #d8a96e;background:#2a1240e6;color:#ffe8c5;font:600 17px Georgia,serif;cursor:pointer;box-shadow:0 0 14px #9a55ff66;max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mg-back:hover{background:#4a2478}
.dc-book{cursor:pointer;color:#fff3d4!important;font:700 21px Georgia,serif!important;text-align:center;background:linear-gradient(180deg,#8a4cc7,#5b2a93)!important;border-color:#c9954a!important}
.dc-book span{margin-right:6px}
.dc-acts button.soft{opacity:.78;border-style:dashed}
.dc-ph.has,.vc-ph.has{background-size:cover;background-position:center}
.pc-msgline:empty::after{white-space:nowrap}
/* the host app's 🪄 wand floats in the top-left corner of the screen: keep our top-left controls clear of it */
.mg-embed .mg-back{left:max(68px,env(safe-area-inset-left))}
