/* V45 · The Magic Toy Chest: one self-contained cinematic game surface */
.gb45-root{padding:0!important;background:#fcf7ee!important}
.gb45-root *{box-sizing:border-box}
.gb45-root button{font:700 15px/1.25 'Fredoka',sans-serif;cursor:pointer;touch-action:manipulation}
.gb45-root button:disabled{cursor:default}
.gb45-root button:focus-visible{outline:3px solid #4aa6df;outline-offset:4px}
.gb45-root .gb45-shell{position:relative;min-height:540px;background:#fcf8f1;color:#213e54;overflow:hidden}
.gb45-root .gb45-utility{background:#153b56;color:#fce5bc;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px clamp(15px,2.8vw,29px);font:600 10px 'Fredoka',sans-serif;letter-spacing:.1em}
.gb45-root .gb45-utility-actions{display:flex;gap:8px;align-items:center}
.gb45-root .gb45-textbutton{border:1px solid #ffffff58;border-radius:22px;background:#ffffff19;color:white;font-size:12px;letter-spacing:0;padding:8px 11px;white-space:nowrap}
.gb45-root .gb45-count{display:inline-grid;place-items:center;border-radius:30px;background:#fce4b5;color:#25465a;padding:3px 7px;margin-left:4px;font-size:11px}
.gb45-root .gb45-main-button{background:linear-gradient(135deg,#ffc972,#e7a44a);border:1px solid #e6ad5c;border-bottom:4px solid #ab6b2d;color:#293e4d;box-shadow:0 6px 19px #a87a423d;font-size:17px;padding:15px 24px;display:inline-flex;align-items:center;justify-content:center;gap:18px;border-radius:100px;min-height:54px;transition:transform .2s,filter .2s;max-width:100%}
.gb45-root .gb45-main-button:hover{filter:brightness(1.055);transform:translateY(-2px)}
.gb45-root .gb45-secondary-button{border:1px solid #aecbd2;background:#eff7f6;color:#28556b;min-height:47px;border-radius:100px;padding:11px 17px;font-size:14px}
.gb45-root .gb45-quiet-button{background:transparent;color:#506b77;border:0;text-decoration:underline;text-decoration-color:#a2b4bd;text-underline-offset:4px;padding:10px;min-height:42px;font-size:13px}
.gb45-root .gb45-kicker{font:700 11px 'Fredoka',sans-serif;color:#b67a45;text-transform:uppercase;letter-spacing:.13em}
.gb45-root h3{font:600 clamp(27px,4.5vw,47px)/1.1 'Fredoka',sans-serif;color:#173f5c;margin:10px 0 14px;letter-spacing:-.015em}
.gb45-root p{font:400 14px/1.75 'Andika',sans-serif;color:#4c6673;margin:8px 0 17px}
.gb45-root .gb45-tiny-note{font-size:11px;color:#74838e;margin:11px 0 0}
.gb45-root .gb45-welcome{min-height:515px;display:grid;grid-template-columns:52% 48%;background:linear-gradient(120deg,#c5dbe0 0%,#fffaed 65%)}
.gb45-root .gb45-scene{position:relative;overflow:hidden;min-height:505px;isolation:isolate;background:#244b60}
.gb45-root .gb45-main-art{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:50% 49%;display:block}
.gb45-root .gb45-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0b253e75,transparent 42%);z-index:1}
.gb45-root .gb45-scene-label{position:absolute;bottom:21px;left:22px;color:#fff5d8;font:600 11px 'Fredoka',sans-serif;letter-spacing:.16em;z-index:2;text-shadow:0 2px 6px #000}
.gb45-root .gb45-welcome-text{align-self:center;padding:clamp(20px,4vw,50px);text-align:left}
.gb45-root .gb45-welcome-text h3{font-size:clamp(34px,4vw,48px)}
.gb45-root .gb45-sparkles{position:absolute;inset:0;z-index:2;pointer-events:none}
.gb45-root .gb45-sparkles span{position:absolute;font-size:32px;color:#fff7c6;text-shadow:0 0 20px #ffb735,0 0 13px #ffe4af;animation:gb45-twinkle 3s ease-in-out infinite}
.gb45-root .gb45-sparkles span:nth-child(1){left:56%;top:29%}.gb45-root .gb45-sparkles span:nth-child(2){left:72%;top:20%;animation-delay:.55s}.gb45-root .gb45-sparkles span:nth-child(3){left:39%;top:57%;animation-delay:1.1s}.gb45-root .gb45-sparkles span:nth-child(4){left:77%;top:70%;animation-delay:1.8s}.gb45-root .gb45-sparkles span:nth-child(5){left:24%;top:33%;animation-delay:2.4s}
.gb45-root .gb45-step-heading{text-align:center;padding:35px 20px 15px}
.gb45-root .gb45-step-heading h3{font-size:clamp(29px,4.5vw,41px);margin:9px 0}
.gb45-root .gb45-step-heading p{margin:0}
.gb45-root .gb45-unlock-layout{padding:16px 25px 34px;display:grid;grid-template-columns:54% 1fr;align-items:center;gap:25px;max-width:900px;margin:auto}
.gb45-root .gb45-unlock-art{border-radius:24px;overflow:hidden;position:relative;box-shadow:0 16px 35px #1e49682c;aspect-ratio:4/3}
.gb45-root .gb45-unlock-art img{width:100%;height:100%;object-fit:cover}
.gb45-root .gb45-unlock-glow{position:absolute;right:20%;top:42%;font-size:32px;color:#ffe6a0;text-shadow:0 0 20px #fbb347;animation:gb45-twinkle 1.6s infinite}
.gb45-root .gb45-charm-column{text-align:center}
.gb45-root .gb45-charm-grid{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.gb45-root .gb45-charm{height:87px;min-width:80px;border-radius:24px;border:2px solid #ddbc83;background:radial-gradient(circle at 30% 20%,#fff9df,#f1d49d);font-size:45px;color:#a56a29;box-shadow:0 7px 16px #8d6e4630;transition:transform .22s,background .2s}
.gb45-root .gb45-charm:not([disabled]):hover{transform:translateY(-5px) rotate(-3deg)}
.gb45-root .gb45-charm.is-lit{background:#edfff4;color:#48a881;border-color:#9bcfb6;box-shadow:0 0 20px #65d1ab70;transform:scale(.94)}
.gb45-root .gb45-small-help{margin-top:21px}
.gb45-root .gb45-reveal{display:grid;grid-template-columns:51% 49%;min-height:520px;background:linear-gradient(130deg,var(--world),#fffaf4 85%)}
.gb45-root .gb45-world{position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;background:radial-gradient(circle at 50% 38%,#fff6db 0%,var(--world) 53%,#4e748e 140%);min-height:500px}
.gb45-root .gb45-world:before{content:"";position:absolute;border:2px solid #fffcdb90;border-radius:50%;width:82%;aspect-ratio:1;box-shadow:0 0 0 20px #ffffff15,0 0 0 50px #ffffff12;top:5%;left:9%}
.gb45-root .gb45-world-sky span{position:absolute;font-size:43px;color:#fff9c9;text-shadow:0 0 21px white;animation:gb45-twinkle 2.2s infinite}
.gb45-root .gb45-world-sky span:nth-child(1){left:20%;top:17%}.gb45-root .gb45-world-sky span:nth-child(2){right:13%;top:35%;animation-delay:.5s}.gb45-root .gb45-world-sky span:nth-child(3){left:18%;bottom:18%;animation-delay:1.1s}
.gb45-root .gb45-character-portrait{height:390px;max-width:90%;filter:drop-shadow(0 17px 19px #203b5744);position:relative;z-index:1;animation:gb45-rise .65s ease both}
.gb45-root .gb45-character-portrait img{height:100%;max-width:100%;object-fit:contain;mix-blend-mode:multiply;mask-image:linear-gradient(to bottom,#000 80%,transparent 100%)}
.gb45-root .gb45-world-name{position:absolute;bottom:20px;left:15px;right:15px;z-index:2;text-align:center;font:600 14px 'Fredoka',sans-serif;color:#25465c;background:#ffffffe8;border-radius:18px;padding:10px 12px}
.gb45-root .gb45-reveal-copy{align-self:center;padding:35px 30px}
.gb45-root .gb45-reveal-copy h3{font-size:clamp(36px,4.5vw,53px)}
.gb45-root .gb45-reveal-copy .gb45-encounter-title{font:600 20px 'Fredoka',sans-serif;color:var(--accent)}
.gb45-root .gb45-reveal-copy .gb45-quiet-button{display:block;margin-top:15px}
.gb45-root .gb45-challenge{background:linear-gradient(155deg,#fffaf4 35%,var(--world) 150%);min-height:530px}
.gb45-root .gb45-challenge-head{display:flex;gap:20px;padding:22px 27px 18px;align-items:center;border-bottom:1px solid #d8dacf;background:linear-gradient(110deg,#fffffff2,var(--world))}
.gb45-root .gb45-challenge-portrait{height:112px;width:103px;border-radius:20px;overflow:hidden;background:#ffffff9e;box-shadow:0 5px 20px #183f5723;flex-shrink:0}
.gb45-root .gb45-challenge-portrait img{width:100%;height:100%;object-fit:contain}
.gb45-root .gb45-challenge-head h3{font-size:31px;margin:4px 0}
.gb45-root .gb45-variation{font:600 14px 'Fredoka',sans-serif;color:var(--accent);margin:4px 0}
.gb45-root .gb45-challenge-play{padding:23px 24px 12px;text-align:center;max-width:850px;margin:0 auto}
.gb45-root .gb45-challenge-play>p{font-size:16px;max-width:650px;margin:0 auto 18px}
.gb45-root .gb45-choice-row{display:flex;justify-content:center;gap:12px;align-items:center;flex-wrap:wrap;margin:16px auto}
.gb45-root .gb45-play-item,.gb45-root .gb45-pop,.gb45-root .gb45-lantern,.gb45-root .gb45-find-item,.gb45-root .gb45-drum,.gb45-root .gb45-flower{border:2px solid #e3c58e;border-bottom:5px solid #b28e58;background:#fff8e6;border-radius:20px;min-width:80px;min-height:80px;font-size:35px;box-shadow:0 5px 14px #344f571e;transition:transform .18s,box-shadow .18s}
.gb45-root .gb45-play-item:hover,.gb45-root .gb45-pop:hover,.gb45-root .gb45-find-item:hover,.gb45-root .gb45-drum:hover{transform:translateY(-4px)}
.gb45-root .gb45-play-item.is-lit,.gb45-root .gb45-play-item.is-selected,.gb45-root .gb45-lantern.is-lit,.gb45-root .gb45-flower.is-glowing{background:#e3fff0;border-color:#81bda1;box-shadow:0 0 21px #8ad7a783}
.gb45-root .gb45-sequence{display:flex;justify-content:center;gap:12px;align-items:center;flex-wrap:wrap;margin:17px}
.gb45-root .gb45-sequence span{background:#f6eaca;border:2px dashed #d9b77c;border-radius:15px;padding:9px 14px;font-size:35px}
.gb45-root .gb45-built{font:600 15px/1.5 'Fredoka',sans-serif;color:#3e6678;background:#ffffffe0;border-radius:13px;padding:11px 16px;max-width:520px;min-height:48px;margin:18px auto}
.gb45-root .gb45-game-bottom{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;padding:12px 12px 25px}
.gb45-root .gb45-balloon-grid,.gb45-root .gb45-find-grid,.gb45-root .gb45-glow-garden,.gb45-root .gb45-secret-garden{display:grid;grid-template-columns:repeat(3,minmax(74px,104px));gap:10px;justify-content:center;max-width:460px;margin:15px auto}
.gb45-root .gb45-pop{border-radius:48% 48% 41% 41%;background:linear-gradient(145deg,#fff5d2,#ffcedb);min-height:92px}
.gb45-root .gb45-pop.is-popped{transform:scale(.4);opacity:.2;box-shadow:none}
.gb45-root .gb45-lanterns{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;padding:17px 0}
.gb45-root .gb45-lantern{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:100px;min-height:112px;background:linear-gradient(#fff9db,#ddf0eb)}
.gb45-root .gb45-lantern small{font:700 11px 'Fredoka';color:#6d7a7e}
.gb45-root .gb45-lantern strong{font-size:35px}
.gb45-root .gb45-bubble{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;width:190px;height:190px;border-radius:50%;border:2px solid #8bd4da;background:radial-gradient(circle at 30% 25%,#ffffff,#bdebf1,#61b4cf);box-shadow:inset 9px 11px 25px #ffffffa6,0 20px 45px #6ba5ad60;font-size:78px;color:#2d687c;margin:20px auto}
.gb45-root .gb45-bubble small{font:600 13px 'Fredoka',sans-serif;color:#356e7e}
.gb45-root .gb45-bubble.is-rising{animation:gb45-bubble .85s ease}
.gb45-root .gb45-bridge{display:flex;justify-content:center;align-items:end;gap:4px;min-height:150px;padding:18px;background:linear-gradient(#c8eefa 50%,#76c5d3 52%,#9bd8e6);border-radius:20px;max-width:540px;margin:auto}
.gb45-root .gb45-bridge-slot{width:105px;height:67px;display:grid;place-items:center;background:#ffffff70;border:3px dashed #ffffff;border-radius:13px;font-size:46px;color:#34758c}
.gb45-root .gb45-bridge-slot.is-built{background:#f6dbb8;border:3px solid #af835d}
.gb45-root .gb45-find-item.is-found,.gb45-root .gb45-hidden-star.is-found{border-color:#71b89b;background:#ddfff1;transform:scale(1.09)}
.gb45-root .gb45-find-item.is-try{background:#fff1db}
.gb45-root .gb45-secret-garden{max-width:520px;grid-template-columns:repeat(3,105px);border-radius:25px;padding:22px;background:radial-gradient(circle at top,#fff5cb,#c6e9ba 80%);box-shadow:inset 0 0 0 3px #a8cf96}
.gb45-root .gb45-hidden-star{border:0;background:transparent;font:700 52px 'Fredoka',sans-serif;color:#64815d;text-shadow:0 2px 9px #ffffffad;border-radius:18px;min-height:72px;transition:transform .2s}
.gb45-root .gb45-hidden-star:hover{transform:scale(1.18)}
.gb45-root .gb45-hidden-star.is-found{background:#f9eeb4;color:#bb8437}
.gb45-root .gb45-glow-garden{grid-template-columns:repeat(4,90px);background:radial-gradient(#164a69,#102d57);border-radius:25px;padding:20px 10px}
.gb45-root .gb45-flower{background:#183e62;border-color:#447a93;filter:brightness(.7);transition:filter .4s,box-shadow .4s}
.gb45-root .gb45-flower.is-glowing{filter:brightness(1.2);background:#4066a5;box-shadow:0 0 30px #b3eefb}
.gb45-root .gb45-face{font-size:90px;line-height:1.4;min-height:125px}
.gb45-root .gb45-option-label{font:700 13px 'Fredoka',sans-serif;color:#5d7680;margin:14px 0 0}
.gb45-root .gb45-drum-grid{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;padding:15px}
.gb45-root .gb45-drum{width:114px;height:114px;font-size:55px;background:radial-gradient(#ffeab9,#e4d1fa);border-radius:50%}
.gb45-root .gb45-drum.is-playing{transform:scale(1.14);box-shadow:0 0 28px #ffdb80}
.gb45-root .gb45-jungle-map{min-height:140px;background:linear-gradient(130deg,#ddf6b5,#8ccdc3);border-radius:25px;max-width:530px;margin:auto;padding:25px;position:relative}
.gb45-root #gb45-tiger{font-size:45px;display:inline-block;transition:transform .25s}
.gb45-root .gb45-jungle-path{font-size:35px;margin-top:10px}
.gb45-root .gb45-reward{text-align:center;min-height:535px;padding:27px 20px 37px;background:radial-gradient(circle at 45% 40%,#fff9df,var(--world) 100%)}
.gb45-root .gb45-reward-stars{font-size:25px;letter-spacing:18px;color:#c78b39;animation:gb45-twinkle 2s infinite}
.gb45-root .gb45-reward-image{display:block;object-fit:contain;width:235px;height:207px;margin:8px auto;filter:drop-shadow(0 12px 12px #344a6e44)}
.gb45-root .gb45-reward h3{font-size:clamp(30px,4vw,43px);margin:9px 0}
.gb45-root .gb45-reward p{max-width:560px;margin:8px auto 20px}
.gb45-root .gb45-reward-stats{display:flex;gap:13px;justify-content:center;margin:15px 0 21px}
.gb45-root .gb45-reward-stats span{background:#fff9eae0;display:flex;flex-direction:column;min-width:125px;gap:3px;border:1px solid #d4ba9d;padding:9px 14px;border-radius:15px;font:500 11px 'Andika',sans-serif;color:#567180}
.gb45-root .gb45-reward-stats strong{font:600 24px 'Fredoka';color:#315b6c}
.gb45-root .gb45-reward-buttons{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap}
.gb45-root .gb45-journal{text-align:center;padding:30px clamp(16px,3vw,38px) 40px;background:linear-gradient(#fcf8ef,#e6f0f1)}
.gb45-root .gb45-journal p{max-width:660px;margin:0 auto 22px}
.gb45-root .gb45-journal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:25px auto;max-width:810px}
.gb45-root .gb45-journal-card{background:#fff;border:1px solid #d5e3e3;border-radius:17px;padding:10px;box-shadow:0 4px 15px #28576b12}
.gb45-root .gb45-journal-card img{width:100%;height:120px;object-fit:contain;display:block;margin:auto}
.gb45-root .gb45-journal-card strong{font:600 16px 'Fredoka',sans-serif;color:#234966;display:block;margin:6px 0}
.gb45-root .gb45-journal-card small{font:400 10px 'Andika',sans-serif;color:#71838c}
.gb45-root .gb45-journal-card.is-missing{background:#e7e4dd}
.gb45-root .gb45-journal-card.is-missing img{filter:grayscale(1) blur(5px);opacity:.22}
@keyframes gb45-twinkle{0%,100%{opacity:.45;transform:scale(.84)}50%{opacity:1;transform:scale(1.1)}}
@keyframes gb45-rise{from{opacity:0;transform:translateY(35px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes gb45-bubble{0%{transform:scale(1)}50%{transform:scale(1.2) translateY(-12px)}100%{transform:scale(1)}}
@media(max-width:730px){.gb45-root .gb45-welcome,.gb45-root .gb45-reveal{grid-template-columns:1fr}.gb45-root .gb45-welcome .gb45-scene{min-height:290px}.gb45-root .gb45-welcome-text{text-align:center;padding:29px 23px 36px}.gb45-root .gb45-reveal .gb45-world{min-height:295px}.gb45-root .gb45-character-portrait{height:250px}.gb45-root .gb45-reveal-copy{text-align:center;padding:23px 20px 36px}.gb45-root .gb45-reveal-copy .gb45-quiet-button{margin:14px auto 0}.gb45-root .gb45-unlock-layout{grid-template-columns:1fr;gap:15px;padding:10px 18px 26px}.gb45-root .gb45-unlock-art{max-width:490px;width:100%;margin:auto;max-height:230px}.gb45-root .gb45-unlock-art img{object-position:center 41%}.gb45-root .gb45-challenge-head{gap:13px;padding:15px}.gb45-root .gb45-challenge-portrait{width:74px;height:84px}.gb45-root .gb45-challenge-head h3{font-size:24px}.gb45-root .gb45-challenge-play{padding:22px 13px 5px}.gb45-root .gb45-journal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gb45-root .gb45-journal-card img{height:100px}}
@media(max-width:440px){.gb45-root .gb45-utility{padding:9px 10px;letter-spacing:0}.gb45-root .gb45-brand{font-size:9px;max-width:90px}.gb45-root .gb45-textbutton{font-size:10px;padding:7px 9px}.gb45-root .gb45-utility-actions{gap:5px}.gb45-root .gb45-count{font-size:9px;padding:2px 5px;margin-left:1px}.gb45-root .gb45-welcome .gb45-scene{min-height:235px}.gb45-root .gb45-scene-label{font-size:9px;bottom:12px}.gb45-root .gb45-welcome-text{padding:24px 17px 30px}.gb45-root .gb45-step-heading{padding:24px 17px 12px}.gb45-root .gb45-step-heading h3{font-size:30px}.gb45-root .gb45-charm{height:76px;min-width:72px}.gb45-root .gb45-challenge-head h3{font-size:23px}.gb45-root .gb45-kicker{font-size:9px}.gb45-root .gb45-play-item,.gb45-root .gb45-find-item,.gb45-root .gb45-flower,.gb45-root .gb45-drum{min-width:68px;min-height:70px;font-size:30px}.gb45-root .gb45-balloon-grid,.gb45-root .gb45-find-grid{grid-template-columns:repeat(3,77px)}.gb45-root .gb45-secret-garden{grid-template-columns:repeat(3,75px);padding:10px}.gb45-root .gb45-hidden-star{min-height:62px;font-size:43px}.gb45-root .gb45-glow-garden{grid-template-columns:repeat(4,63px);gap:4px}.gb45-root .gb45-lantern{min-width:74px;min-height:97px}.gb45-root .gb45-lantern strong{font-size:29px}.gb45-root .gb45-bridge-slot{width:75px}.gb45-root .gb45-drum{width:86px;height:86px;font-size:42px}.gb45-root .gb45-challenge-play>p{font-size:14px}.gb45-root .gb45-game-bottom{gap:2px}.gb45-root .gb45-journal-grid{gap:6px}.gb45-root .gb45-journal-card{padding:5px}.gb45-root .gb45-journal-card img{height:77px}.gb45-root .gb45-journal-card strong{font-size:12px}.gb45-root .gb45-journal-card small{font-size:9px}}
@media(prefers-reduced-motion:reduce){.gb45-root *,.gb45-root *:before,.gb45-root *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
