/* Discovery and mastery sit on the existing radial world, including small screens. */
.adventure-map { --journey-top-space:20px; --oval-radius-y:calc((100cqh - var(--oval-icon-size) - var(--oval-label-height) - 36px - var(--oval-footer-space) - var(--journey-top-space)) / 2); --oval-center-y:calc((100cqh - var(--oval-label-height) - 4px - var(--oval-footer-space) + var(--journey-top-space)) / 2); }
/* Keep the desktop journey together on wide screens; every node and route
   continues to use the same ellipse rather than shifting only the side skills. */
@media (min-width:761px) {
  .adventure-map { --oval-radius-x:min(calc((100cqw - var(--oval-side-inset) - 32px) / 2),calc(28cqw + 100px),680px); }
}
@media (min-width:1000px) and (min-height:501px) {
  .adventure-map .destination-creativity { --oval-effective-angle:58deg; }
  .adventure-map .destination-coding { --oval-effective-angle:122deg; }
}
.journey-toolbar { position:absolute; inset:18px 24px auto; z-index:12; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; pointer-events:none; }
.journey-heading { text-shadow:0 2px 10px #192c8b; }
.journey-eyebrow { color:#adf5ff; font:800 10px/1.5 'Nunito',sans-serif; letter-spacing:2px; }
.journey-heading h1 { color:white; font:900 clamp(17px,1.7vw,25px)/1.2 'Nunito',sans-serif; margin:3px 0 4px; }
.journey-heading > span:last-child { color:#d4efff; font-size:11px; }
.journey-tools { display:flex; align-items:center; gap:8px; pointer-events:auto; }
.journey-toolbar button { cursor:pointer; font-family:'Nunito',sans-serif; }
.journey-wallet { display:flex; align-items:center; gap:3px; padding:8px 12px; height:44px; min-height:44px; box-sizing:border-box; border:1px solid #ffeaa0; border-radius:18px; background:linear-gradient(140deg,#fffde1,#ffe38b); color:#714210; box-shadow:0 4px 0 #d99129,0 6px 22px #03186838; font-size:12px; font-weight:800; }
.journey-wallet img { object-fit:contain; width:28px; height:28px; }
.journey-wallet strong { font-size:22px; margin-right:3px; }
.journey-wallet > span { white-space:nowrap; }
.journey-wallet.has-keys { animation:journey-wallet-glow 2s ease-in-out infinite; }
.journey-tool { display:flex; align-items:center; gap:6px; min-height:44px; padding:8px 12px; border:1px solid #ffffff60; border-radius:16px; color:white; background:#142b815c; backdrop-filter:blur(12px); font-size:12px; font-weight:800; box-shadow:0 4px 14px #13268130; }
.journey-tool > span:first-child { color:#ffdf71; font-size:22px; }
.journey-tool small { padding:3px 6px; border-radius:7px; background:#ffffff24; font-size:10px; }
.skill-destination.is-locked .destination-symbol img { filter:grayscale(1); opacity:.55; }
.skill-destination.is-locked .destination-orbit { background:#d5e1f3; box-shadow:0 0 0 3px #91aad0,0 6px 14px #0b24543d; border-color:#d2e4fa; }
.skill-destination.is-locked .destination-label { background:#dce6f2; border-color:#9ab0d0; box-shadow:0 3px 0 #566f9a; }
.skill-destination.is-locked .destination-label::before { border-color:#9ab0d0; background:#dce6f2; }
.skill-destination.is-locked .destination-title { color:#455d80; }
.destination-status { display:block; font-size:10px; line-height:1.3; font-weight:800; color:#346180; }
.journey-status-mobile { display:none; }
.destination-status.is-key-ready { color:#886007; }
.destination-lock { position:absolute; right:-3px; bottom:-2px; z-index:5; display:grid; place-items:center; width:25px; height:25px; background:#f1f6ff; color:#436086; border:2px solid #b1c5e4; border-radius:50%; box-shadow:0 2px 5px #11367740; }
.destination-lock svg { width:13px; height:13px; }
.destination-start { position:absolute; left:50%; top:-18px; z-index:6; transform:translateX(-50%); padding:4px 10px; border-radius:9px; background:#fff4a1; color:#5d4300; border:2px solid white; box-shadow:0 3px 12px #ffdd4790; font-size:9px; font-weight:900; white-space:nowrap; letter-spacing:.6px; }
.skill-destination.is-recommended .destination-orbit::after { opacity:1; border-color:#fff697; animation:journey-recommend-ring 2.3s ease-in-out infinite; }
.skill-destination.is-recommended .destination-orbit { box-shadow:0 0 0 4px #fff7ad,0 0 30px #ffec78a0; }
.adventure-routes path.is-locked { opacity:.24; }
.adventure-routes path.is-unlocking { opacity:1; stroke:#fff19a; stroke-width:5; animation:journey-route-reveal 1.6s ease-out; }
.skill-destination.is-unlocking .destination-visual { animation:journey-node-reveal 1s ease-out; }
.adventure-command { cursor:default; }
.journey-next { position:absolute; z-index:8; top:calc(var(--oval-command-y) + 39px); left:50%; width:260px; transform:translateX(-50%); color:white; text-align:center; }
.journey-next > button { width:100%; padding:9px 13px; display:flex; flex-direction:column; align-items:center; gap:3px; border:1px solid #bbecff80; border-radius:17px; background:linear-gradient(130deg,#142c986e,#173ea86b); backdrop-filter:blur(10px); box-shadow:0 5px 18px #12307c25; color:inherit; cursor:pointer; font-family:'Nunito',sans-serif; }
.journey-next-kicker { color:#b8f1ff; font-size:9px; font-weight:900; letter-spacing:1.2px; }
.journey-next strong { font-size:13px; line-height:1.3; }
#journey-next-action { font-size:10px; color:#fff6ae; }
.journey-key-progress { margin-top:8px; font-size:10px; line-height:1.4; color:#e8f7ff; }
.journey-progress-track { width:100px; height:5px; margin:5px auto 0; overflow:hidden; background:#0e246b66; border:1px solid #b9e9ff5c; border-radius:10px; }
.journey-progress-track i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#ffc753,#fff5ac); transition:width .6s ease; }
#category-games .activity-card.is-daily-mission { outline:2px solid #a079ed; outline-offset:1px; box-shadow:0 0 0 4px #eee4ff,0 6px 20px #7b47bd22; }
#category-games .activity-card.is-daily-mission .activity-card-top { background:linear-gradient(110deg,#fff9e8,#f6f0ff); }
#category-games .activity-card.is-daily-mission-complete { outline-color:#33b395; box-shadow:0 0 0 4px #def7ee,0 6px 20px #17896e1a; }
#category-games .activity-card.is-daily-mission-complete .activity-card-top { background:linear-gradient(110deg,#edfff5,#f3fbff); }
#category-games .activity-card.is-daily-mission:focus-visible { outline:3px solid #6135a5; outline-offset:3px; }
.daily-mission-badge { position:absolute; z-index:5; top:9px; left:9px; display:inline-flex; align-items:center; gap:5px; max-width:calc(100% - 18px); box-sizing:border-box; padding:6px 9px; border:1px solid #fff5ba; border-radius:9px; background:linear-gradient(120deg,#ffe88a,#fff4b9); box-shadow:0 2px 8px #24135d42,inset 0 1px 1px #fff9; color:#6d3ca6; font:900 10px/1.2 'Nunito',sans-serif; letter-spacing:.35px; text-transform:uppercase; white-space:nowrap; pointer-events:none; }
.daily-mission-badge svg { width:14px; height:14px; flex-shrink:0; color:#9b57df; }
.is-daily-mission-complete .daily-mission-badge { background:linear-gradient(120deg,#c8f7e4,#edfff7); border-color:#f2fff9; color:#086d56; }
.is-daily-mission-complete .daily-mission-badge svg { color:#087f60; }
@media (max-width:600px) {
  .daily-mission-badge { top:5px; left:5px; gap:3px; max-width:calc(100% - 10px); padding:4px 5px; border-radius:6px; font-size:8px; letter-spacing:.15px; }
  .daily-mission-badge svg { width:10px; height:10px; }
}
.journey-dialog { box-sizing:border-box; padding:0; width:min(640px,calc(100vw - 28px)); max-height:calc(100dvh - 32px); margin:auto; overflow:auto; border:1px solid #e7dffc; border-radius:28px; background:linear-gradient(155deg,#fff,#f6f4ff 62%,#effbff); color:#203d61; box-shadow:0 30px 100px #11164766; font-family:'Nunito',sans-serif; }
.journey-dialog::backdrop { background:#101c60a6; backdrop-filter:blur(7px); }
.journey-dialog-shell { padding:25px 28px 20px; position:relative; text-align:center; }
.journey-dialog-close { position:absolute; right:13px; top:12px; width:36px; height:36px; border:0; border-radius:50%; background:#e9ecfa; color:#526084; font-size:26px; cursor:pointer; }
.journey-dialog-hero { height:84px; width:84px; object-fit:contain; filter:drop-shadow(0 8px 8px #f0bc735c); margin:0 auto 4px; }
.journey-dialog-kicker { display:block; color:#7d5fc1; font-size:10px; font-weight:900; letter-spacing:1.8px; }
.journey-dialog h2 { color:#253d67; font-size:26px; line-height:1.2; font-weight:900; margin:7px 25px 9px; }
.journey-dialog p { font-size:13px; color:#64728c; margin:0 auto 16px; max-width:430px; }
.journey-unlock-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:19px 0 12px; }
.journey-unlock-choice { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:16px 7px 12px; min-height:133px; border:2px solid #e2e5f3; border-radius:19px; background:#fff; color:#294261; cursor:pointer; font:900 12px/1.3 'Nunito',sans-serif; transition:transform .18s,box-shadow .18s,border-color .18s; }
.journey-unlock-choice:hover,.journey-unlock-choice:focus-visible { transform:translateY(-3px); border-color:var(--choice-color,#b091f3); box-shadow:0 8px 18px #323a9415; }
.journey-unlock-choice > img { width:48px; height:48px; object-fit:contain; }
.journey-unlock-choice small { color:#886100; font-size:10px; font-weight:800; }
.journey-unlock-choice:disabled { opacity:.55; cursor:wait; }
.journey-info-note { border-radius:12px; padding:10px; background:#eeeafc; color:#6f5b9c; font-size:11px; }
.journey-primary { padding:12px 22px; border:0; border-bottom:4px solid #d5911a; border-radius:14px; background:linear-gradient(#ffed96,#ffcf58); color:#604200; font:900 13px/1.3 'Nunito',sans-serif; cursor:pointer; }
.journey-primary:disabled { opacity:.5; cursor:default; }
.journey-dialog-feedback { min-height:20px; margin:10px 0 0!important; color:#a04e3c!important; }
.journey-mission-list { display:grid; gap:9px; margin:20px 0; }
.journey-mission { display:flex; align-items:center; gap:12px; width:100%; padding:12px; text-align:left; border:1px solid #dfe6f8; border-radius:17px; background:white; color:#2c476a; font-family:inherit; cursor:pointer; }
.journey-mission img { width:48px; height:48px; object-fit:cover; border-radius:11px; background:#eef4ff; }
.journey-mission > span { flex:1; }
.journey-mission strong { display:block; font-size:13px; }
.journey-mission small { color:#7f70a4; font-size:10px; font-weight:900; letter-spacing:.5px; }
.journey-mission em { font-size:11px; color:#267c76; font-weight:900; font-style:normal; }
.journey-mission.done { background:#f0fbf6; border-color:#afe6cb; }
.journey-badge-visual { display:block; font-size:64px; line-height:1.3; }
.journey-reward-toast { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); z-index:11000; display:flex; align-items:center; gap:10px; width:min(490px,calc(100vw - 24px)); padding:12px 16px; border:2px solid #ffe48b; border-radius:22px; background:linear-gradient(120deg,#fffdef,#fff3c1); color:#63451a; box-shadow:0 10px 45px #10205255; font-family:'Nunito',sans-serif; animation:journey-toast-in .4s ease-out; }
.journey-reward-toast[hidden] { display:none; }
.journey-reward-toast img { flex-shrink:0; object-fit:contain; }
.journey-reward-toast strong { display:block; font-size:14px; }
.journey-reward-toast span { display:block; font-size:11px; }
.journey-reward-toast button { border:0; margin-left:auto; background:#7145c9; color:white; border-radius:12px; padding:11px; font:800 11px/1.3 'Nunito',sans-serif; cursor:pointer; }
body.brainlabs-page :is(.journey-tool,.journey-wallet,.journey-next button,.journey-dialog button):focus-visible { outline:3px solid #ffcf57; outline-offset:4px; }
@keyframes journey-recommend-ring { 0%,100% { transform:scale(1); opacity:.8; } 50% { transform:scale(1.12); opacity:.4; } }
@keyframes journey-wallet-glow { 50% { box-shadow:0 4px 0 #d99129,0 0 25px #ffe48b90; } }
@keyframes journey-route-reveal { from { stroke-dashoffset:160; opacity:.2; } to { stroke-dashoffset:0; opacity:1; } }
@keyframes journey-node-reveal { 0% { transform:scale(.8); filter:grayscale(1); } 65% { transform:scale(1.14); filter:grayscale(0) drop-shadow(0 0 20px #fff6aa); } 100% { transform:scale(1); } }
@keyframes journey-toast-in { from { opacity:0; translate:0 20px; } to { opacity:1; translate:0 0; } }
@media (max-width:1050px) and (min-width:761px) { .journey-heading h1 { font-size:17px; } .journey-missions-label { display:none; } .journey-tools { gap:5px; } .journey-wallet,.journey-tool { padding:7px 9px; } }
@media (max-width:760px) {
  body.home-world-active main { overflow-y:auto; display:block; }
  body.home-world-active #page-home { height:max(720px,calc(100dvh - var(--brainlabs-site-header-height,70px))); min-height:720px; }
  .adventure-map { --journey-top-space:100px; --oval-footer-space:145px; --oval-label-height:52px; }
  .journey-toolbar { inset:10px 12px auto; gap:6px; }
  .journey-eyebrow { font-size:7px; letter-spacing:1px; }
  .journey-heading h1 { font-size:16px; margin-top:1px; }
  .journey-heading > span:last-child { display:none; }
  .journey-tools { flex-wrap:wrap; justify-content:flex-end; max-width:168px; gap:5px; }
  .journey-wallet { height:36px; min-height:36px; padding:4px 8px; border-radius:12px; font-size:9px; }
  .journey-wallet img { width:28px; height:28px; }
  .journey-wallet strong { font-size:17px; }
  .journey-tool { height:36px; min-height:36px; font-size:9px; padding:4px 8px; border-radius:10px; gap:4px; }
  .journey-tool > span:first-child { font-size:15px; }
  .journey-tool small { font-size:8px; padding:2px 4px; }
  .journey-missions-label { display:none; }
  .destination-start { font-size:7px; top:-16px; padding:3px 7px; }
  .destination-status { font-size:8px; margin-top:1px; }
  .journey-status-desktop { display:none; }
  .journey-status-mobile { display:inline; }
  .destination-lock { width:19px; height:19px; right:-4px; bottom:-1px; }
  .destination-lock svg { width:10px; height:10px; }
  .adventure-command { display:flex; top:calc(var(--oval-center-y) + 48px); bottom:auto; width:190px; max-width:190px; height:auto; min-height:32px; padding:5px 8px; font-size:10px; white-space:normal; text-align:center; }
  .journey-next { top:auto; bottom:12px; width:min(310px,calc(100% - 32px)); }
  .journey-next > button { padding:8px 12px; border-radius:15px; gap:2px; }
  .journey-next strong { font-size:12px; }
  .journey-next-kicker { font-size:8px; }
  .journey-key-progress { font-size:9px; margin-top:6px; }
  .journey-progress-track { margin-top:4px; }
  .journey-dialog-shell { padding:24px 16px 14px; }
  .journey-dialog h2 { font-size:23px; }
  .journey-dialog p { font-size:12px; }
  .journey-unlock-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:15px; }
  .journey-unlock-choice { min-height:114px; padding:12px 6px; font-size:11px; }
  .journey-unlock-choice > img { width:40px; height:40px; }
  .journey-reward-toast { gap:7px; padding:10px; bottom:12px; }
  .journey-reward-toast img { width:40px; height:40px; }
  .journey-reward-toast strong { font-size:12px; }
  .journey-reward-toast span { font-size:10px; }
  .journey-reward-toast button { font-size:10px; padding:9px; }
}
@media (orientation:landscape) and (max-height:500px) {
  body.home-world-active main { overflow-y:auto; display:block; }
  body.home-world-active #page-home { height:max(430px,calc(100dvh - var(--brainlabs-site-header-height,70px))); min-height:430px; }
  .adventure-map { --journey-top-space:44px; --oval-footer-space:0px; }
  .journey-toolbar { inset:5px 10px auto; }
  .journey-eyebrow,.journey-heading > span:last-child { display:none; }
  .journey-heading h1 { font-size:14px; }
  .journey-tools { max-width:none; }
  .journey-wallet { height:32px; min-height:32px; padding:4px 8px; }
  .journey-wallet img { width:24px; height:24px; }
  .journey-tool { height:32px; min-height:32px; padding:4px 8px; }
  .journey-next { top:calc(var(--oval-center-y) + 32px); bottom:auto; width:180px; }
  .journey-next > button { padding:5px 8px; }
  .journey-next strong { font-size:10px; }
  .journey-next-kicker { display:none; }
  .journey-key-progress { font-size:8px; margin-top:3px; }
  .adventure-command { display:none; }
  .destination-status { font-size:8px; }
}
@media (prefers-reduced-motion:reduce) {
  .journey-wallet,.skill-destination.is-recommended .destination-orbit::after,.adventure-routes path.is-unlocking,.skill-destination.is-unlocking .destination-visual,.journey-reward-toast { animation:none!important; }
  .journey-unlock-choice,.journey-progress-track i { transition:none; }
}

/* Keep the same oval world on phones; a taller orbit separates all nine skills. */
@media (max-width:480px) {
  body.home-world-active #page-home { height:max(780px,calc(100dvh - var(--brainlabs-site-header-height,70px))); min-height:780px; }
  .adventure-map { --oval-card-width:clamp(90px,28vw,106px); --oval-icon-size:44px; --oval-explorer-size:62px; --oval-label-height:44px; --oval-footer-space:150px; --journey-top-space:48px; --oval-radius-x:calc((100cqw - var(--oval-card-width) - 16px) / 2); }
  .journey-toolbar { inset:10px 10px auto; }
  .journey-heading { min-width:0; }
  .journey-heading h1 { font-size:14px; }
  .journey-eyebrow { font-size:6px; letter-spacing:.8px; }
  .journey-tools { max-width:162px; flex-wrap:nowrap; flex-shrink:0; }
  .journey-wallet,.journey-tool { padding:4px 6px; }
  .journey-wallet { font-size:8px; }
  .journey-wallet img { width:24px; height:24px; }
  .journey-tool { min-width:38px; justify-content:center; }
  .adventure-map .destination-focus { --oval-effective-angle:-32deg; }
  .adventure-map .destination-brain-games { --oval-effective-angle:212deg; }
  .adventure-map .destination-logic { --oval-effective-angle:0deg; }
  .adventure-map .destination-spatial { --oval-effective-angle:180deg; }
  .adventure-map .destination-planning { --oval-effective-angle:25deg; }
  .adventure-map .destination-codes { --oval-effective-angle:155deg; }
  .adventure-map .destination-creativity { --oval-effective-angle:60deg; }
  .adventure-map .destination-coding { --oval-effective-angle:120deg; }
  .adventure-map .destination-title { font-size:9px; line-height:1.2; }
  .adventure-map .destination-status { font-size:7.5px; line-height:1.25; }
  .adventure-map .destination-label { padding:4px 3px; border-radius:13px; }
  .adventure-map .adventure-explorer { width:var(--oval-explorer-size); }
  .adventure-map .adventure-command { top:calc(var(--oval-center-y) + 48px); width:calc(100cqw - 2 * var(--oval-card-width) - 30px); min-width:0; max-width:145px; min-height:32px; padding:5px; font-size:9px; line-height:1.25; }
  .adventure-command-spark { display:none; }
  .adventure-routes { display:block; opacity:.55; }
  .adventure-mobile-trail { width:calc(var(--oval-radius-x) * 2); height:calc(var(--oval-radius-y) * 2); opacity:.65; }
  .journey-next { width:calc(100% - 32px); bottom:18px; }
  .journey-dialog { max-height:calc(100dvh - 20px); width:calc(100vw - 20px); border-radius:22px; }
  .journey-dialog-shell { padding-inline:13px; }
}
