@font-face { font-family:"AOW";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Cinzel-Regular-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"AOW";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Cinzel-Regular-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"SpectralText";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Spectral-Bold-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"SpectralText";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/Spectral-Bold-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
:root { color-scheme:dark;--goody-gold:232,190,77;--goody-gold-soft:248,218,139;--goody-emerald:98,224,139;--goody-cyan:91,215,240;--goody-ease:cubic-bezier(.2,.82,.2,1); }
* { box-sizing:border-box; }
html,body { width:100%;height:100%;margin:0;overflow:hidden; }
button,a { -webkit-tap-highlight-color:transparent; }
.goody-page { background:#030806;color:#fff;font-family:"Outfit",sans-serif; }
.goody-world { position:relative;width:100vw;height:100vh;isolation:isolate;overflow:hidden;background:#07100b; }
.goody-map-image { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;user-select:none; }
.goody-map-shade { position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(1,5,4,.52),transparent 19%,transparent 74%,rgba(1,5,4,.34)),radial-gradient(ellipse at center,transparent 56%,rgba(0,0,0,.3)); }

.goody-topbar { position:absolute;z-index:20;top:18px;left:50%;display:flex;align-items:center;gap:clamp(12px,1vw,19px);width:min(1420px,calc(100% - 260px));min-height:clamp(96px,6vw,110px);padding:10px 14px;border:1px solid rgba(var(--goody-gold),.48);border-radius:3px;background:linear-gradient(108deg,rgba(11,24,20,.97),rgba(3,10,9,.97) 58%,rgba(15,20,18,.98));box-shadow:0 24px 55px rgba(0,0,0,.46),0 0 32px rgba(var(--goody-emerald),.07),inset 0 1px rgba(255,255,255,.045);transform:translateX(-50%);backdrop-filter:blur(14px); }
.goody-topbar::before { position:absolute;top:-1px;left:7%;width:38%;height:2px;content:"";background:linear-gradient(90deg,transparent,rgba(var(--goody-cyan),.72),rgba(var(--goody-gold),.92),transparent);box-shadow:0 0 18px rgba(var(--goody-cyan),.35); }
.goody-topbar::after { position:absolute;right:-1px;bottom:-1px;width:55px;height:55px;border-right:1px solid rgba(var(--goody-gold),.78);border-bottom:1px solid rgba(var(--goody-gold),.78);content:"";pointer-events:none; }
.goody-brand { display:flex;align-items:center;gap:14px;min-width:clamp(320px,25vw,405px); }
.goody-brand>img { width:clamp(72px,4.2vw,82px);height:clamp(72px,4.2vw,82px);padding:3px;border:1px solid rgba(var(--goody-gold),.68);border-radius:2px;object-fit:cover;background:#102219;box-shadow:0 0 0 4px rgba(3,10,8,.7),0 0 24px rgba(var(--goody-emerald),.15);clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px)); }
.goody-brand div,.goody-essence div { display:flex;flex-direction:column; }
.goody-brand small,.goody-essence small { color:rgba(191,207,198,.7);font-size:clamp(.68rem,.58vw,.82rem);font-weight:800;letter-spacing:.16em;text-transform:uppercase; }
.goody-brand strong { margin-top:4px;color:#fff2d7;font:400 clamp(1.3rem,1.2vw,1.65rem)/1.05 "AOW",serif;letter-spacing:.055em;text-shadow:0 3px 20px rgba(0,0,0,.8); }
.goody-essence { position:relative;display:flex;align-items:center;gap:13px;min-width:clamp(235px,17vw,290px);margin-left:auto;padding:10px 18px;border:1px solid rgba(var(--goody-emerald),.3);border-radius:2px;background:linear-gradient(125deg,rgba(35,100,56,.2),rgba(3,12,8,.5));clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px)); }
.goody-essence::after { position:absolute;right:0;bottom:0;width:35%;height:1px;content:"";background:linear-gradient(90deg,transparent,rgba(var(--goody-emerald),.78));box-shadow:0 0 10px rgba(var(--goody-emerald),.5); }
.goody-essence img { width:clamp(52px,3vw,62px);height:clamp(52px,3vw,62px);object-fit:contain;filter:drop-shadow(0 0 12px rgba(var(--goody-emerald),.65));animation:goodyEssenceOrbit 4s ease-in-out infinite; }
.goody-essence strong { margin-top:3px;color:#aaffbf;font:400 clamp(1.35rem,1.25vw,1.7rem)/1 "AOW",serif;text-shadow:0 0 16px rgba(var(--goody-emerald),.42); }

.goody-tools { display:flex;gap:10px; }
.goody-tools button { position:relative;isolation:isolate;width:clamp(68px,4vw,78px);height:clamp(68px,4vw,78px);padding:7px;border:1px solid rgba(var(--goody-gold),.34);border-radius:2px;background:radial-gradient(circle at 50% 45%,rgba(var(--goody-gold),.11),transparent 62%),#07100c;color:#fff;cursor:pointer;transition:transform 380ms var(--goody-ease),border-color 250ms,box-shadow 380ms;clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px)); }
.goody-tools button::before { position:absolute;z-index:-1;inset:6px;border:1px solid rgba(var(--goody-emerald),.13);content:"";transform:rotate(45deg) scale(.48);transition:transform 650ms var(--goody-ease),border-color 300ms; }
.goody-tools button::after { position:absolute;z-index:-1;inset:-1px;content:"";background:conic-gradient(from 0deg,transparent 0 34%,rgba(var(--goody-emerald),.76) 43%,transparent 53% 84%,rgba(var(--goody-gold),.62) 92%,transparent);opacity:0;animation:goodyToolSpin 4.6s linear infinite; }
.goody-tools button:hover,.goody-tools button:focus-visible,.goody-tools button.is-active { border-color:rgba(var(--goody-gold-soft),.86);outline:0;transform:translateY(-7px) scale(1.045);box-shadow:0 18px 32px rgba(0,0,0,.46),0 0 28px rgba(var(--goody-emerald),.2); }
.goody-tools button:hover::before,.goody-tools button:focus-visible::before,.goody-tools button.is-active::before { border-color:rgba(var(--goody-emerald),.62);transform:rotate(135deg) scale(.72); }
.goody-tools button:hover::after,.goody-tools button:focus-visible::after,.goody-tools button.is-active::after { opacity:.34; }
.goody-tools img { position:relative;z-index:2;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 7px 8px rgba(0,0,0,.55));animation:goodyToolFloat 3.2s ease-in-out infinite;transition:filter 250ms,transform 450ms var(--goody-ease); }
.goody-tools button:nth-child(2) img { animation-delay:-.8s; }
.goody-tools button:nth-child(3) img { animation-delay:-1.6s; }
.goody-tools button:nth-child(4) img { animation-delay:-2.4s; }
.goody-tools button:hover img,.goody-tools button:focus-visible img { filter:drop-shadow(0 8px 13px rgba(0,0,0,.6)) drop-shadow(0 0 11px rgba(var(--goody-gold),.35));transform:scale(1.12) rotate(-3deg); }
.goody-tools span { position:absolute;z-index:5;left:50%;bottom:-31px;padding:7px 11px;border:1px solid rgba(var(--goody-gold),.32);border-radius:1px;background:rgba(3,10,8,.96);color:#f4e4bd;font-size:.7rem;font-weight:800;letter-spacing:.08em;opacity:0;transform:translate(-50%,-5px);transition:.24s;white-space:nowrap;box-shadow:0 8px 20px rgba(0,0,0,.45); }
.goody-tools button:hover span,.goody-tools button:focus-visible span { opacity:1;transform:translate(-50%,0); }

.goody-back { position:absolute;z-index:25;top:42px;left:30px;display:flex;align-items:center;gap:10px;min-height:48px;padding:0 18px;border:1px solid rgba(var(--goody-gold),.52);border-radius:2px;background:linear-gradient(120deg,rgba(12,24,19,.96),rgba(4,10,8,.96));color:#fff0cf;font-size:.9rem;font-weight:800;letter-spacing:.04em;text-decoration:none;box-shadow:0 13px 27px rgba(0,0,0,.38);transition:.28s var(--goody-ease);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px)); }
.goody-back:first-letter { color:#efc861;font-size:1.55rem; }
.goody-back:hover,.goody-back:focus-visible { border-color:rgba(var(--goody-gold-soft),.9);outline:0;transform:translateX(-4px);box-shadow:0 15px 30px rgba(0,0,0,.48),0 0 18px rgba(var(--goody-gold),.15); }

.goody-node-layer { position:absolute;z-index:8;inset:0; }
.goody-node { --node-size:clamp(62px,4.9vw,96px);position:absolute;display:grid;place-items:center;width:var(--node-size);height:var(--node-size);padding:3px;border:0;border-radius:50%;background:transparent;cursor:pointer;transform:translate(-50%,-50%);filter:drop-shadow(0 7px 10px rgba(0,0,0,.72)); }
.goody-node img { width:100%;height:100%;border-radius:50%;object-fit:contain; }
.goody-node-number { position:absolute;display:grid;place-items:center;min-width:29px;height:29px;padding:0 7px;border:1px solid rgba(var(--goody-gold-soft),.92);border-radius:50%;background:linear-gradient(145deg,#234b2c,#08120d);color:#fff8df;font:400 .88rem "AOW",serif;box-shadow:0 3px 9px #000,0 0 12px rgba(var(--goody-emerald),.25); }
.goody-node.is-playable { animation:goodyNodePulse 1.8s ease-in-out infinite; }
.goody-node.is-playable::before,.goody-node.is-playable::after { position:absolute;inset:-9px;border:2px solid rgba(var(--goody-emerald),.82);border-radius:50%;content:"";animation:goodyRing 2.1s ease-out infinite; }
.goody-node.is-playable::after { inset:-17px;animation-delay:1.05s;border-width:1px; }
.goody-node.is-completed img { filter:hue-rotate(55deg) saturate(1.25); }
.goody-node.is-replayable { cursor:pointer; }
.goody-node.is-replayable:hover { transform:translate(-50%,-50%) scale(1.12);filter:brightness(1.13) drop-shadow(0 8px 13px #000); }
.goody-node.is-locked { cursor:not-allowed;filter:grayscale(.72) brightness(.62) drop-shadow(0 5px 8px #000); }
.goody-node.is-locked::after { position:absolute;right:-28px;bottom:-15px;padding:5px 8px;border:1px solid rgba(var(--goody-gold-soft),.4);border-radius:1px;background:rgba(5,9,7,.94);color:#e9d9ae;content:"ZÁROLVA";font-size:.55rem;font-weight:900;letter-spacing:.1em;box-shadow:0 5px 12px #000; }
.goody-node.is-soon { cursor:not-allowed;filter:grayscale(.72) brightness(.62) drop-shadow(0 5px 8px #000); }
.goody-node.is-soon::after { position:absolute;right:-31px;bottom:-15px;padding:5px 8px;border:1px solid rgba(var(--goody-gold-soft),.4);border-radius:1px;background:rgba(5,9,7,.94);color:#e9d9ae;content:"HAMAROSAN";font-size:.55rem;font-weight:900;letter-spacing:.1em;box-shadow:0 5px 12px #000; }

.goody-location-card { position:absolute;z-index:12;left:30px;bottom:30px;display:flex;flex-direction:column;min-width:clamp(410px,25vw,520px);padding:22px 26px 20px;border:1px solid rgba(var(--goody-gold),.55);border-radius:2px;background:linear-gradient(118deg,rgba(9,23,17,.97),rgba(3,10,8,.95));box-shadow:0 20px 44px rgba(0,0,0,.5),inset 0 1px rgba(255,255,255,.035);backdrop-filter:blur(12px);clip-path:polygon(0 0,calc(100% - 15px) 0,100% 15px,100% 100%,15px 100%,0 calc(100% - 15px)); }
.goody-location-card::before { position:absolute;top:0;left:25px;width:42%;height:2px;content:"";background:linear-gradient(90deg,rgba(var(--goody-emerald),.9),rgba(var(--goody-gold),.72),transparent);box-shadow:0 0 13px rgba(var(--goody-emerald),.35); }
.goody-location-card small { color:#8de39f;font-size:clamp(.7rem,.58vw,.84rem);font-weight:900;letter-spacing:.18em; }
.goody-location-card strong { margin-top:7px;color:#fff1d1;font:400 clamp(1.35rem,1.35vw,1.9rem)/1.08 "AOW",serif;letter-spacing:.035em;text-shadow:0 3px 16px rgba(0,0,0,.8); }
.goody-location-card span { margin-top:7px;color:rgba(226,231,219,.78);font:400 clamp(.9rem,.75vw,1.05rem)/1.45 "SpectralText",Georgia,serif; }

.goody-panel-backdrop { position:fixed;z-index:39;inset:0;background:radial-gradient(circle at 74% 45%,rgba(var(--goody-emerald),.08),transparent 35%),rgba(0,0,0,.58);backdrop-filter:blur(5px);animation:goodyBackdropIn .35s ease both; }
.goody-side-panel { position:fixed;z-index:40;top:0;right:0;width:min(620px,96vw);height:100vh;padding:clamp(105px,9vh,135px) clamp(36px,3vw,58px) 45px;overflow:auto;border-left:1px solid rgba(var(--goody-gold),.52);border-radius:0;background:linear-gradient(142deg,rgba(12,25,22,.995),rgba(3,9,8,.998) 62%,rgba(18,16,10,.995));box-shadow:-35px 0 90px rgba(0,0,0,.65),-2px 0 26px rgba(var(--goody-emerald),.08),inset 1px 0 rgba(255,255,255,.035);opacity:.3;transform:translateX(108%) scale(.9);transform-origin:right center;transition:transform .58s var(--goody-ease),opacity .42s ease; }
.goody-side-panel::before { position:absolute;top:0;left:0;width:72%;height:2px;content:"";background:linear-gradient(90deg,rgba(var(--goody-emerald),.92),rgba(var(--goody-gold),.72),transparent);box-shadow:0 0 20px rgba(var(--goody-emerald),.38); }
.goody-side-panel::after { position:absolute;z-index:-1;right:-190px;bottom:-210px;width:520px;height:520px;border:1px solid rgba(var(--goody-gold),.06);border-radius:50%;content:"";box-shadow:0 0 0 55px rgba(var(--goody-gold),.012),0 0 0 56px rgba(var(--goody-gold),.035),0 0 0 118px rgba(var(--goody-emerald),.01),0 0 0 119px rgba(var(--goody-emerald),.025);animation:goodyPanelOrbit 24s linear infinite; }
.goody-side-panel.is-open { opacity:1;transform:translateX(0) scale(1); }
.goody-side-panel.is-open #goodyPanelContent { animation:goodyPanelContentIn .62s .12s var(--goody-ease) both; }
.goody-panel-close { position:absolute;top:31px;right:34px;width:54px;height:54px;border:1px solid rgba(var(--goody-gold),.52);border-radius:2px;background:rgba(8,20,15,.84);color:#f6d982;font-size:1.8rem;cursor:pointer;transition:.35s var(--goody-ease);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px)); }
.goody-panel-close:hover,.goody-panel-close:focus-visible { border-color:#f4d884;outline:0;color:#fff3ce;transform:rotate(90deg) scale(1.07);box-shadow:0 0 22px rgba(var(--goody-gold),.2); }
.goody-panel-eyebrow { display:flex;align-items:center;gap:10px;color:#87dfa0;font-size:.78rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase; }
.goody-panel-eyebrow::before { width:28px;height:1px;background:currentColor;content:"";box-shadow:0 0 8px currentColor; }
.goody-side-panel h2 { margin:10px 0 14px;color:#fff1d6;font:400 clamp(2.25rem,2.65vw,3.2rem)/1 "AOW",serif;letter-spacing:.04em;text-shadow:0 5px 24px rgba(0,0,0,.7); }
.goody-side-panel p { color:rgba(220,226,214,.75);font:400 1.02rem/1.7 "SpectralText",Georgia,serif; }
.goody-area-list { display:grid;gap:18px;margin-top:30px; }
.goody-area { position:relative;display:flex;align-items:stretch;flex-direction:column;min-height:0;padding:0 0 17px;overflow:hidden;border:1px solid rgba(var(--goody-gold),.2);border-radius:2px;background:linear-gradient(110deg,rgba(255,255,255,.045),rgba(255,255,255,.012));transition:.3s var(--goody-ease);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px)); }
.goody-area:hover { border-color:rgba(var(--goody-gold),.48);transform:translateX(-5px);background:rgba(var(--goody-gold),.055); }
.goody-area img { display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;border-bottom:1px solid rgba(var(--goody-gold),.25);border-radius:0;object-fit:cover; }
.goody-area>div { padding:15px 18px 0; }
.goody-area strong,.goody-area span { display:block; }
.goody-area strong { color:#f4ead2;font:400 1.28rem "AOW",serif; }
.goody-area span { margin-top:6px;color:#9daa9f;font-size:.9rem; }
.goody-area.is-locked { filter:grayscale(.82);opacity:.5; }

.goody-upgrade-card { position:relative;isolation:isolate;margin-top:28px;padding:26px;border:1px solid rgba(var(--goody-gold),.28);border-radius:2px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012));box-shadow:inset 0 0 35px rgba(var(--goody-emerald),.025);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px)); }
.goody-upgrade-card::before { position:absolute;z-index:-1;top:35px;left:50%;width:210px;height:210px;border:1px solid rgba(var(--goody-emerald),.12);border-radius:50%;content:"";box-shadow:0 0 0 20px rgba(var(--goody-emerald),.015),0 0 0 21px rgba(var(--goody-gold),.05);transform:translateX(-50%);animation:goodyUpgradeHalo 8s linear infinite; }
.goody-upgrade-card>img { display:block;width:clamp(155px,11vw,205px);height:clamp(155px,11vw,205px);margin:0 auto 18px;object-fit:contain;filter:drop-shadow(0 14px 15px rgba(0,0,0,.55)) drop-shadow(0 0 20px rgba(var(--goody-emerald),.25));animation:goodyUpgradeFloat 3.6s ease-in-out infinite; }
.goody-upgrade-card>strong { display:block;color:#fff0c7;font:400 1.35rem "AOW",serif;text-align:center; }
.goody-upgrade-stats { display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:22px 0; }
.goody-upgrade-stats div { position:relative;min-height:88px;padding:16px 17px;border:1px solid rgba(var(--goody-gold),.15);border-radius:1px;background:linear-gradient(120deg,rgba(0,0,0,.32),rgba(var(--goody-emerald),.035));clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px)); }
.goody-upgrade-stats div::after { position:absolute;right:0;bottom:0;width:32px;height:1px;background:rgba(var(--goody-emerald),.65);content:"";box-shadow:0 0 8px rgba(var(--goody-emerald),.35); }
.goody-upgrade-stats small,.goody-upgrade-stats strong { display:block; }
.goody-upgrade-stats small { color:rgba(179,197,185,.65);font-size:.69rem;font-weight:900;letter-spacing:.12em; }
.goody-upgrade-stats strong { margin-top:7px;color:#fff0bf;font:400 1.65rem "AOW",serif;text-shadow:0 0 13px rgba(var(--goody-gold),.16); }
.goody-upgrade-button,.goody-primary { width:100%;min-height:54px;padding:14px 19px;border:1px solid rgba(var(--goody-gold-soft),.78);border-radius:1px;background:linear-gradient(115deg,#6f541c,#bd963d 55%,#6d521a);color:#fff7dc;font:800 .86rem "Outfit",sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.16);transition:.3s var(--goody-ease);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px)); }
.goody-upgrade-button:hover:not(:disabled),.goody-primary:hover { filter:brightness(1.16);transform:translateY(-3px);box-shadow:0 15px 29px rgba(0,0,0,.4),0 0 22px rgba(var(--goody-gold),.14); }
.goody-upgrade-button:disabled { cursor:not-allowed;filter:grayscale(.75);opacity:.46; }
.goody-treasure-progress { height:15px;margin:24px 0;border:1px solid rgba(var(--goody-gold),.2);border-radius:0;background:#030806;overflow:hidden; }
.goody-treasure-progress i { display:block;height:100%;background:linear-gradient(90deg,#3da963,#8de393 55%,#e2be50);box-shadow:0 0 15px rgba(var(--goody-emerald),.45);transition:width .6s var(--goody-ease); }

.goody-dialog { position:fixed;z-index:60;inset:0;display:grid;place-items:end center;padding:clamp(24px,4vh,54px); }
.goody-dialog[hidden] { display:none; }
.goody-dialog-backdrop { position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,rgba(var(--goody-emerald),.08),transparent 42%),rgba(0,0,0,.58);backdrop-filter:blur(5px);animation:goodyBackdropIn .35s ease both; }
.goody-dialog-card { position:relative;display:grid;grid-template-columns:clamp(180px,13vw,245px) 1fr;gap:clamp(24px,2.2vw,40px);width:min(1080px,94vw);min-height:clamp(270px,25vh,350px);padding:clamp(26px,2.2vw,40px);overflow:hidden;border:1px solid rgba(var(--goody-gold),.62);border-radius:2px;background:linear-gradient(118deg,rgba(12,28,21,.985),rgba(3,10,8,.992) 70%);box-shadow:0 35px 100px rgba(0,0,0,.76),0 0 40px rgba(var(--goody-emerald),.08),inset 0 1px rgba(255,255,255,.04);animation:goodyDialogIn .48s var(--goody-ease) both;clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px)); }
.goody-dialog-card::before { position:absolute;top:0;left:22%;width:38%;height:2px;content:"";background:linear-gradient(90deg,transparent,rgba(var(--goody-emerald),.8),rgba(var(--goody-gold),.9),transparent);box-shadow:0 0 17px rgba(var(--goody-emerald),.32); }
.goody-dialog-avatar { align-self:end;width:100%;height:clamp(220px,22vh,285px);border:1px solid rgba(var(--goody-gold),.32);border-radius:1px;object-fit:cover;object-position:top;background:#102218;box-shadow:0 16px 32px rgba(0,0,0,.42);clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px)); }
.goody-dialog-copy { display:flex;flex-direction:column;min-width:0;padding:13px 8px 4px; }
.goody-dialog-copy>small { color:#8be4a3;font-size:.8rem;font-weight:900;letter-spacing:.2em; }
.goody-dialog-copy h1 { margin:8px 0 15px;color:#fff1d5;font:400 clamp(2rem,2.4vw,3rem)/1.05 "AOW",serif;letter-spacing:.035em;text-shadow:0 4px 22px rgba(0,0,0,.75); }
.goody-dialog-text { margin:0;color:rgba(229,233,221,.82);font:400 clamp(1.03rem,1vw,1.2rem)/1.65 "SpectralText",Georgia,serif; }
.goody-dialog-actions { display:flex;justify-content:flex-end;gap:12px;margin-top:auto;padding-top:22px; }
.goody-dialog-actions button { min-width:170px;min-height:50px;padding:12px 20px;border:1px solid rgba(var(--goody-gold),.5);border-radius:1px;background:#101d17;color:#f5e8c7;font-size:.85rem;font-weight:800;letter-spacing:.07em;cursor:pointer;transition:.28s var(--goody-ease);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px)); }
.goody-dialog-actions button:hover { border-color:rgba(var(--goody-gold-soft),.9);transform:translateY(-3px); }
.goody-dialog-actions .goody-primary { width:auto;background:linear-gradient(115deg,#6f541c,#b38e37 55%,#624914); }
.goody-dialog.is-reward { place-items:center;padding:clamp(14px,3vw,38px); }
.goody-dialog.is-reward .goody-dialog-backdrop { background:radial-gradient(circle at 50% 48%,rgba(var(--goody-emerald),.18),transparent 38%),radial-gradient(circle at 50% 110%,rgba(var(--goody-gold),.12),transparent 52%),rgba(0,0,0,.76);backdrop-filter:blur(9px); }
.goody-dialog.is-reward .goody-dialog-card { display:block;width:min(1120px,95vw);min-height:0;max-height:94vh;padding:clamp(24px,3vw,45px);overflow:auto;text-align:center;background:radial-gradient(circle at 50% 0,rgba(var(--goody-emerald),.11),transparent 35%),linear-gradient(145deg,rgba(11,29,21,.995),rgba(2,9,7,.998) 72%);box-shadow:0 38px 120px rgba(0,0,0,.88),0 0 62px rgba(var(--goody-emerald),.12),inset 0 1px rgba(255,255,255,.055); }
.goody-dialog.is-reward .goody-dialog-card::after { position:absolute;z-index:-1;inset:8px;border:1px solid rgba(var(--goody-gold),.1);content:"";pointer-events:none;clip-path:polygon(0 0,calc(100% - 15px) 0,100% 15px,100% 100%,15px 100%,0 calc(100% - 15px)); }
.goody-dialog.is-reward .goody-dialog-avatar { display:none; }
.goody-dialog.is-reward .goody-dialog-copy { align-items:center;padding:0; }
.goody-dialog.is-reward .goody-dialog-copy>small { display:flex;align-items:center;justify-content:center;gap:13px;color:#8ff0ae; }
.goody-dialog.is-reward .goody-dialog-copy>small::before,.goody-dialog.is-reward .goody-dialog-copy>small::after { width:clamp(35px,6vw,78px);height:1px;background:linear-gradient(90deg,transparent,rgba(var(--goody-emerald),.8));content:""; }
.goody-dialog.is-reward .goody-dialog-copy>small::after { transform:scaleX(-1); }
.goody-dialog.is-reward .goody-dialog-copy h1 { margin:9px 0 5px;font-size:clamp(2rem,3.1vw,3.35rem); }
.goody-dialog.is-reward .goody-dialog-text { width:100%; }
.goody-reward-lead { margin:0!important;color:rgba(219,231,218,.7)!important;font-size:clamp(.9rem,1vw,1.08rem)!important; }
.goody-reward-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(10px,1.4vw,18px);width:100%;margin-top:clamp(20px,2.8vh,31px); }
.goody-reward-card { --reward-accent:112,223,145;position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;min-height:245px;padding:20px 14px 18px;overflow:hidden;border:1px solid rgba(var(--reward-accent),.28);background:linear-gradient(155deg,rgba(var(--reward-accent),.085),rgba(255,255,255,.018) 50%,rgba(0,0,0,.18));box-shadow:0 16px 30px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.04);opacity:0;animation:goodyRewardCardIn .72s calc(.18s + var(--reward-index)*.13s) var(--goody-ease) both;clip-path:polygon(0 0,calc(100% - 11px) 0,100% 11px,100% 100%,11px 100%,0 calc(100% - 11px)); }
.goody-reward-card::before { position:absolute;inset:-80% -35%;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.11) 50%,transparent 58%);content:"";transform:translateX(-45%) rotate(12deg);animation:goodyRewardShine 1.2s calc(.45s + var(--reward-index)*.13s) ease-out both;pointer-events:none; }
.goody-reward-card::after { position:absolute;right:0;bottom:0;width:48px;height:1px;background:rgba(var(--reward-accent),.8);box-shadow:0 0 13px rgba(var(--reward-accent),.55);content:""; }
.goody-reward-card--xp { --reward-accent:123,191,255; }
.goody-reward-card--mysticEssence { --reward-accent:198,113,255; }
.goody-reward-card--heroCoin { --reward-accent:239,194,75; }
.goody-reward-card--dimensionEssence { --reward-accent:84,236,151; }
.goody-reward-card--rare { --reward-accent:255,212,93; }
.goody-reward-card.is-rare { grid-column:1/-1;justify-self:center;width:min(285px,100%); }
.goody-reward-icon { position:relative;display:grid;place-items:center;width:130px;height:130px;margin-bottom:7px;isolation:isolate; }
.goody-reward-icon::before,.goody-reward-icon i { position:absolute;border:1px solid rgba(var(--reward-accent),.36);border-radius:50%;content:"";box-shadow:0 0 20px rgba(var(--reward-accent),.13),inset 0 0 18px rgba(var(--reward-accent),.07);animation:goodyRewardRing 4.8s linear infinite; }
.goody-reward-icon::before { inset:7px;border-style:dashed; }
.goody-reward-icon i { inset:19px;border-color:rgba(var(--reward-accent),.22);animation-direction:reverse;animation-duration:3.5s; }
.goody-reward-icon img { z-index:1;width:88px;height:88px;object-fit:contain;filter:drop-shadow(0 10px 10px rgba(0,0,0,.42)) drop-shadow(0 0 14px rgba(var(--reward-accent),.28));animation:goodyRewardIconPop .75s calc(.32s + var(--reward-index)*.13s) var(--goody-ease) both,goodyRewardIconFloat 3.2s calc(1.1s + var(--reward-index)*.13s) ease-in-out infinite; }
.goody-reward-value { color:#fff4d6;font:400 clamp(1.75rem,2.15vw,2.3rem)/1 "AOW",Georgia,serif;letter-spacing:.03em;text-shadow:0 3px 13px rgba(0,0,0,.75),0 0 17px rgba(var(--reward-accent),.3); }
.goody-reward-label { margin-top:7px;color:rgba(224,235,225,.7);font:800 .68rem/1.3 "Outfit",sans-serif;letter-spacing:.13em;text-transform:uppercase; }
.goody-reward-rarity { margin-top:10px;padding:4px 9px!important;border:1px solid rgba(var(--reward-accent),.32);background:rgba(var(--reward-accent),.08);color:#ffe596!important;font:800 .57rem/1 "Outfit",sans-serif!important;letter-spacing:.15em; }
.goody-dialog.is-reward .goody-dialog-actions { justify-content:center;margin-top:0;padding-top:clamp(21px,2.6vh,30px); }
.goody-dialog.is-reward .goody-dialog-actions .goody-primary { min-width:230px; }

@keyframes goodyNodePulse { 0%,100%{filter:drop-shadow(0 0 9px rgba(var(--goody-emerald),.35))}50%{filter:drop-shadow(0 0 24px rgba(var(--goody-emerald),.95))} }
@keyframes goodyRing { from{opacity:.95;transform:scale(.76)}to{opacity:0;transform:scale(1.34)} }
@keyframes goodyToolFloat { 0%,100%{transform:translateY(1px)}50%{transform:translateY(-5px)} }
@keyframes goodyToolSpin { to{transform:rotate(360deg)} }
@keyframes goodyEssenceOrbit { 0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.07) rotate(5deg)} }
@keyframes goodyBackdropIn { from{opacity:0}to{opacity:1} }
@keyframes goodyPanelContentIn { from{opacity:0;transform:translateX(38px) scale(.96)}to{opacity:1;transform:none} }
@keyframes goodyPanelOrbit { to{transform:rotate(360deg)} }
@keyframes goodyUpgradeHalo { to{transform:translateX(-50%) rotate(360deg)} }
@keyframes goodyUpgradeFloat { 0%,100%{transform:translateY(2px) rotate(-1deg)}50%{transform:translateY(-9px) rotate(2deg)} }
@keyframes goodyDialogIn { from{opacity:0;transform:translateY(45px) scale(.95)}to{opacity:1;transform:none} }
@keyframes goodyRewardCardIn { from{opacity:0;transform:translateY(32px) scale(.9)}to{opacity:1;transform:none} }
@keyframes goodyRewardIconPop { 0%{opacity:0;transform:scale(.25) rotate(-18deg)}70%{opacity:1;transform:scale(1.12) rotate(3deg)}100%{opacity:1;transform:scale(1) rotate(0)} }
@keyframes goodyRewardIconFloat { 0%,100%{transform:translateY(2px)}50%{transform:translateY(-6px)} }
@keyframes goodyRewardRing { to{transform:rotate(360deg)} }
@keyframes goodyRewardShine { from{transform:translateX(-45%) rotate(12deg)}to{transform:translateX(45%) rotate(12deg)} }

@media (max-width:1500px),(max-height:900px) {
    .goody-side-panel { width:min(560px,96vw);padding:85px 38px 34px; }
    .goody-upgrade-card>img { width:145px;height:145px; }
    .goody-dialog-card { min-height:245px; }
}
@media (max-width:700px) {
    .goody-tools span { display:none; }
    .goody-side-panel { width:100vw;padding:85px 22px 30px; }
    .goody-panel-close { top:20px;right:20px;width:48px;height:48px; }
    .goody-side-panel h2 { font-size:2rem; }
    .goody-side-panel p { font-size:.9rem; }
    .goody-dialog { padding:12px; }
    .goody-dialog-card { grid-template-columns:100px 1fr;gap:15px;min-height:220px;padding:16px; }
    .goody-dialog-avatar { height:155px; }
    .goody-dialog-copy { padding:4px 2px; }
    .goody-dialog-copy h1 { font-size:1.4rem; }
    .goody-dialog-text { font-size:.84rem;line-height:1.5; }
    .goody-dialog-actions { padding-top:13px; }
    .goody-dialog-actions button { min-width:120px;min-height:42px;padding:9px 12px;font-size:.72rem; }
    .goody-dialog.is-reward .goody-dialog-card { width:min(620px,96vw);padding:22px 16px; }
    .goody-dialog.is-reward .goody-dialog-copy h1 { font-size:clamp(1.55rem,7vw,2.2rem); }
    .goody-reward-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:17px; }
    .goody-reward-card { min-height:184px;padding:12px 7px; }
    .goody-reward-icon { width:92px;height:92px; }
    .goody-reward-icon img { width:65px;height:65px; }
    .goody-reward-value { font-size:1.48rem; }
    .goody-reward-label { font-size:.58rem;letter-spacing:.09em; }
}
@media (max-width:520px) {
    .goody-dialog-card { grid-template-columns:82px 1fr; }
    .goody-dialog-avatar { height:128px; }
    .goody-dialog.is-reward .goody-dialog-card { display:block; }
    .goody-reward-card { min-height:164px; }
    .goody-reward-icon { width:78px;height:78px; }
    .goody-reward-icon img { width:56px;height:56px; }
    .goody-reward-value { font-size:1.28rem; }
    .goody-upgrade-stats { gap:7px; }
    .goody-upgrade-stats div { min-height:74px;padding:12px; }
    .goody-upgrade-stats strong { font-size:1.3rem; }
}
/* Reserve space for the HUD so it never covers a map station. */
.goody-world {
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr) auto;
    gap:8px 12px;
    width:100%;height:100vh;height:100dvh;
    padding:12px;
}
.goody-world::before {
    position:absolute;z-index:-1;inset:-20px;content:"";
    background:url("../image/goody kaland/area_1.webp") center/cover;
    filter:blur(12px) brightness(.25);pointer-events:none;
}
.goody-map-stage {
    position:relative;grid-column:1/-1;grid-row:2;
    min-width:0;min-height:0;overflow:hidden;
}
.goody-map-image { object-fit:contain; }
.goody-topbar {
    position:relative;grid-column:2;grid-row:1;
    top:auto;right:auto;left:auto;transform:none;
    width:100%;max-width:none;min-width:0;min-height:0;
    gap:12px;padding:8px 12px;
}
.goody-brand { min-width:0;gap:10px;flex:1; }
.goody-brand div { display:flex;min-width:0; }
.goody-brand>img { flex:none;width:52px;height:52px; }
.goody-brand strong { font-size:clamp(1rem,1.4vw,1.45rem);overflow-wrap:anywhere; }
.goody-brand small,.goody-essence small { font-size:.65rem;letter-spacing:.1em; }
.goody-essence { flex:none;min-width:0;margin-left:0;gap:8px;padding:5px 10px; }
.goody-essence img { width:40px;height:40px; }
.goody-essence strong { font-size:1.2rem;overflow-wrap:anywhere; }
.goody-tools { flex:none;gap:6px; }
.goody-tools button { width:52px;height:52px;padding:5px; }
.goody-back {
    position:relative;grid-column:1;grid-row:1;align-self:center;
    top:auto;left:auto;min-height:44px;padding:0 14px;
}
.goody-back span { display:inline; }
.goody-node { --node-size:var(--map-node-size,48px); }
.goody-node-number { min-width:22px;height:22px;padding:0 4px;font-size:.7rem; }
.goody-node.is-locked::after,.goody-node.is-soon::after {
    right:auto;left:50%;bottom:-13px;transform:translateX(-50%);
    padding:3px 5px;font-size:.5rem;white-space:nowrap;
}
.goody-location-card {
    position:relative;grid-column:1/-1;grid-row:3;justify-self:start;
    left:auto;bottom:auto;min-width:0;width:min(540px,100%);max-width:100%;
    padding:10px 16px;
}
.goody-location-card small { font-size:.62rem; }
.goody-location-card strong { margin-top:4px;font-size:clamp(1rem,1.4vw,1.4rem);overflow-wrap:anywhere; }
.goody-location-card span { margin-top:4px;font-size:.8rem;line-height:1.3;overflow-wrap:anywhere; }
.goody-side-panel { height:100vh;height:100dvh;max-width:100%; }
.goody-dialog { padding:12px; }
.goody-dialog-card,.goody-dialog.is-reward .goody-dialog-card {
    max-width:100%;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto;
}
.goody-dialog-copy { min-width:0; }
.goody-dialog-actions { flex-wrap:wrap; }

@media (max-width:1100px),(max-height:700px) {
    .goody-world { padding:8px;gap:6px 8px; }
    .goody-topbar { gap:8px;padding:6px 8px; }
    .goody-brand>img,.goody-tools button { width:44px;height:44px; }
    .goody-brand small { display:none; }
    .goody-essence img { width:32px;height:32px; }
    .goody-essence small { font-size:.58rem; }
    .goody-location-card { padding:8px 12px; }
    .goody-side-panel { padding:70px 24px 24px; }
    .goody-panel-close { top:14px;right:20px;width:44px;height:44px; }
    .goody-side-panel h2 { font-size:2rem; }
    .goody-upgrade-card { margin-top:16px;padding:18px; }
    .goody-upgrade-card>img { width:110px;height:110px; }
}
@media (max-width:760px) {
    .goody-back { padding:0 12px; }
    .goody-back span { display:none; }
    .goody-topbar { flex-wrap:wrap; }
    .goody-brand { flex:1 1 120px; }
    .goody-brand>img { display:none; }
    .goody-essence small { display:none; }
    .goody-tools { margin-left:auto; }
    .goody-node.is-locked::after,.goody-node.is-soon::after { display:none; }
}
@media (max-width:520px) {
    .goody-topbar { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px; }
    .goody-brand { display:flex; }
    .goody-brand strong { font-size:.95rem; }
    .goody-essence { gap:4px;padding:3px 6px; }
    .goody-essence img { width:28px;height:28px; }
    .goody-tools { grid-column:1/-1;justify-content:space-between;margin:0; }
    .goody-tools button { width:44px;height:44px; }
    .goody-location-card { width:100%; }
    .goody-dialog-actions button { min-width:0;flex:1 1 120px; }
}
@media (prefers-reduced-motion:reduce) { *{scroll-behavior:auto!important}.goody-node,.goody-node::before,.goody-node::after,.goody-side-panel,.goody-side-panel::after,.goody-tools button::after,.goody-tools img,.goody-essence img,.goody-upgrade-card::before,.goody-upgrade-card>img,.goody-dialog-card,.goody-reward-card,.goody-reward-card::before,.goody-reward-icon::before,.goody-reward-icon i,.goody-reward-icon img{animation:none!important;transition:none!important}.goody-reward-card{opacity:1!important} }
