.game-intro{max-width:720px}.game-intro p{margin:16px 0;line-height:1.7}.game-intro button{margin:8px}.game-screen{position:fixed;inset:0;background:#102e29;z-index:150;display:flex;align-items:center;justify-content:center;touch-action:none;user-select:none}.game-screen canvas{width:100%;height:100%;object-fit:contain}.game-screen header{position:absolute;top:0;left:0;right:0;display:flex;gap:12px;align-items:center;padding:8px 16px;color:white;background:#102e29dc;font-size:13px}.game-screen header span{margin-right:auto}.game-screen button{cursor:pointer;border:1px solid #ffffff60;border-radius:12px;padding:10px 14px;background:#173e33;color:white;font:inherit;min-height:44px}.game-controls{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:16px;right:16px;display:flex;gap:12px}.game-controls button{font-size:22px;min-width:64px;min-height:56px;background:#173e33c9;touch-action:none}.game-controls button:last-child{margin-left:auto}.game-result{position:absolute;inset:0;background:#102e29e8;color:white;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;text-align:center;padding:24px}.game-result[hidden],.game-rotate{display:none}.game-rotate{position:absolute;inset:0;background:#102e29ef;color:white;align-items:center;justify-content:center;padding:30px;text-align:center;font-size:24px}@media(orientation:portrait) and (pointer:coarse){.game-rotate{display:flex}.game-screen header{z-index:2}.game-screen header strong{display:none}}.gallery-card .button{margin:8px}.gallery-card.locked .gallery-picture{min-height:210px}
@media(max-width:760px){.worker:has(.chat-open) .topbar{display:none}.worker .chat-open{inset:0}.worker .chat-header{height:52px;min-height:52px;padding:6px 10px}.worker .chat-header .avatar{width:30px;height:30px;font-size:12px}.worker .chat-header h2{font-size:14px}.worker .chat-header .chat-state{font-size:9px}.worker .chat-language-tools{padding:4px 10px;gap:5px;flex-wrap:nowrap;min-height:38px}.worker .chat-language-tools label{font-size:0;white-space:nowrap}.worker .chat-language-tools label:after{content:'Escribir EN';font-size:10px}.worker .chat-language-tools .button{padding:6px 8px;min-height:30px}.worker .chat-language-tools>span:not(.translation-progress){display:none}.worker .chat-language-tools .translation-progress{min-width:0;font-size:9px;gap:2px}.worker .translation-progress small{display:none}.worker .composer-actions{padding:3px 10px;min-height:28px}.worker .composer-actions .button{padding:4px 6px;font-size:10px}.worker .composer-foot{padding:4px 12px}.worker .composer-foot span:first-child:before{content:''}.worker .chat-messages{min-height:0;flex:1}.worker .activity:empty{display:none}}
@media(max-width:760px){.worker .chat-header>div{min-width:0;flex:1}.worker .chat-header h2{line-height:18px;margin:0 0 3px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.worker .chat-header .chat-state{display:block;line-height:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.worker .composer-foot #composer-hint{font-size:0}.worker .chat-language-tools input{flex-shrink:0}}

.game-description{white-space:pre-wrap;overflow-wrap:anywhere}
.adventure-shop{position:absolute;inset:0;z-index:155;overflow:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 30% 0,#387669,#132f31 65%);padding:max(20px,var(--game-safe-top,0px),env(safe-area-inset-top)) max(24px,var(--game-safe-right,0px),env(safe-area-inset-right)) max(20px,var(--game-safe-bottom,0px),env(safe-area-inset-bottom)) max(24px,var(--game-safe-left,0px),env(safe-area-inset-left));color:#fff3d6;user-select:none}
.adventure-shop-header{display:flex;align-items:center;gap:20px}.adventure-shop-header>div{margin-right:auto}.adventure-shop-header h1{margin:8px 0;font-size:30px;letter-spacing:-1px}.adventure-shop-header .eyebrow{color:#accbbb}.adventure-shop-header>strong{white-space:nowrap;color:#f5d17b;border:1px solid #eacd7444;padding:12px 16px;border-radius:20px;background:#102b3280}.adventure-shop-header .button,.shop-confirm .button.secondary{background:#ffffff12;color:#fff2d7;border:1px solid #ffffff33}.adventure-shop-note{font-size:12px;color:#bbd3c8;line-height:1.7;max-width:880px;margin:10px 0 20px}.adventure-shop-grid{display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:18px;max-width:1300px;margin:auto}.shop-item{position:relative;border:1px solid #a4c7b633;border-radius:25px;background:linear-gradient(145deg,#31524bea,#183a36ea);overflow:hidden;box-shadow:0 12px 25px #071b272a;display:flex;flex-direction:column}.shop-item-art{position:relative;height:140px;flex-shrink:0;border-bottom:1px solid #ffffff10;background:radial-gradient(ellipse at center,#69a08822,transparent)}.shop-item-art canvas{width:100%;height:100%;object-fit:contain}.shop-item-copy{padding:18px;display:flex;flex-direction:column;flex:1}.shop-item-type{font-size:9px;letter-spacing:1.5px;color:#bed4b7;font-weight:700}.shop-item h2{font-size:20px;margin:10px 0;color:#fff0ce}.shop-item p{color:#c5d9c9;font-size:12px;line-height:1.7;margin:0 0 12px;min-height:62px;white-space:pre-wrap;overflow-wrap:anywhere}.shop-item small{font-size:11px;color:#d2e7ba;margin-top:auto}.shop-item-price{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:16px 0}.shop-item-price strong{font-size:23px;color:#ffdf8a}.shop-item-price del{font-size:13px;color:#c4c8ae}.shop-item .button,.shop-confirm .button.primary{border-radius:13px;background:#f3d181;color:#354431;border:1px solid #ffe6a8;box-shadow:0 3px 0 #ad924d;font-weight:700}.shop-item .button:disabled{opacity:.5;cursor:default;box-shadow:none}.shop-item.is-sale{border-color:#e8c37077;background:linear-gradient(145deg,#77734366,#304a35ea);box-shadow:0 0 30px #ebc06013,0 12px 25px #071b272a}.shop-offer{font-size:10px;letter-spacing:.3px;color:#ffe8a0;padding:4px 7px;border-radius:9px;background:#e9ac3922;border:1px solid #eac57233;white-space:nowrap}.shop-offer i{display:inline-block;font-style:normal;animation:shop-fire .65s ease-in-out infinite alternate;transform-origin:50% 100%}.shop-sparkles{position:absolute;left:20%;top:30%;font-size:18px;color:#ffedaf;text-shadow:70px 30px #ffeeab,-5px 65px #ffeeab,145px -10px #ffeeab,120px 80px #ffeeab;animation:shop-shimmer 2.7s infinite;pointer-events:none}.shop-status{font-size:13px;color:#ffd69a;line-height:1.6}.shop-confirm{max-width:430px;max-height:90dvh;overflow:auto;border:1px solid #efdcaa77;border-radius:24px;background:linear-gradient(145deg,#33594e,#173739);padding:24px;color:#fff0d2;text-align:center}.shop-confirm::backdrop{background:#071e28c9;backdrop-filter:blur(6px)}.shop-confirm .shop-item-art{height:150px}.shop-confirm h2{font-size:26px;margin:16px 0 10px}.shop-confirm p{font-size:13px;line-height:1.7;color:#c9dfce;white-space:pre-wrap}.shop-confirm .shop-item-price{justify-content:center}.shop-confirm-actions{display:flex;justify-content:center;gap:10px}.shop-acquired{animation:shop-receive .5s ease both}.game-shop-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.shop-editor-item{overflow:hidden}.shop-admin-preview{margin:-22px -22px 20px;background:#23483f}.shop-admin-preview canvas{max-width:360px;display:block;margin:auto}.shop-sale-check{display:flex;align-items:center;gap:10px}.shop-sale-check input{width:18px;height:18px}.game-shop-editor-grid .shop-item-art{height:130px}.game-controls .game-jetpack{font-size:13px;min-width:90px;width:96px;height:56px;margin-left:auto;margin-right:14px;background:linear-gradient(145deg,#507494,#2c5268)}.game-controls .game-jetpack:disabled{opacity:.6}.game-controls .game-jetpack[hidden]{display:none}.game-controls button:last-child{margin-left:0}.game-controls:has(.game-jetpack[hidden]) button:last-child{margin-left:auto}.campaign-map-ui .button:disabled{opacity:.7;cursor:default}
@keyframes shop-fire{from{transform:rotate(-6deg) scale(.95)}to{transform:rotate(5deg) scale(1.15)}}@keyframes shop-shimmer{0%,100%{opacity:.2;transform:translateY(4px) scale(.7)}50%{opacity:1;transform:translateY(-5px) scale(1)}}@keyframes shop-receive{from{opacity:0;transform:translateY(35px) scale(.8)}to{opacity:1;transform:none}}
@media(max-width:1100px){.adventure-shop-grid{grid-template-columns:repeat(2,minmax(240px,1fr))}}@media(max-width:650px){.game-shop-editor-grid{grid-template-columns:1fr}.adventure-shop-header h1{font-size:22px}.adventure-shop-header{gap:10px}.adventure-shop-header>strong{font-size:11px;padding:8px}.adventure-shop-grid{grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px}.shop-item-copy{padding:13px}.shop-item h2{font-size:17px}.adventure-shop{padding:16px}.shop-item-art{height:110px}.adventure-shop-header .eyebrow{font-size:8px}}
@media(max-height:500px) and (min-width:650px){.adventure-shop-grid{grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px}.shop-item-art{height:94px}.shop-item-copy{padding:12px}.shop-item h2{font-size:17px}.shop-item p{font-size:10px;min-height:48px}.shop-item-price{margin:10px 0}.shop-item-price strong{font-size:18px}.adventure-shop-note{margin-bottom:10px}.adventure-shop-header h1{font-size:23px}.adventure-shop .button{font-size:11px;padding:8px 12px;min-height:34px}}
@media(prefers-reduced-motion:reduce){.shop-offer i,.shop-sparkles,.shop-acquired{animation:none}}
.campaign-title{position:relative;min-height:560px;overflow:hidden;border-radius:30px;background:#173e33;isolation:isolate;color:#fff}.campaign-title-canvas,.campaign-title-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.campaign-title-shade{background:linear-gradient(90deg,#0c302ee8,#143e3266 60%,#143e3315),linear-gradient(0deg,#173b3277,transparent 50%)}.campaign-title-copy{position:relative;z-index:1;padding:65px 55px;max-width:650px}.campaign-title-badge{display:inline-block;border:1px solid #e7efc34d;border-radius:30px;padding:9px 13px;font-size:10px;letter-spacing:2px;background:#143e3244}.campaign-title-copy h1{font-size:clamp(56px,7vw,94px);letter-spacing:-4px;line-height:.96;margin:25px 0;color:#fff6d5;text-shadow:0 4px 0 #153a3244}.campaign-title-copy h1 em{font-style:normal;color:#e2eaa0}.campaign-title-copy p{color:#e8efdd;font-size:15px;margin:24px 0}.campaign-title-copy>.button{padding:17px 34px;border-radius:18px;background:#f0d584;color:#274333;font-size:21px;box-shadow:0 6px 0 #b99c4e,0 12px 30px #12372b55;min-width:195px;display:flex;gap:30px;align-items:center;justify-content:center}.campaign-title-copy>.button:hover{background:#f8e1a0;transform:translateY(-2px)}.campaign-title-copy>small{display:block;margin-top:24px;color:#dce6ce;font-size:12px}.campaign-title-wallet{position:absolute;top:22px;right:25px;border:1px solid #ffffff33;border-radius:24px;padding:10px 14px;background:#123a32aa;color:#f5e3a0;font-size:13px}.campaign-instructions{margin-top:22px}.campaign-instructions>p{line-height:1.8}.campaign-world{max-width:960px;margin:0 auto}.campaign-map-heading{display:flex;align-items:center;gap:25px;margin-bottom:24px}.campaign-map-heading h1{font-size:32px;letter-spacing:-1px;margin:8px 0}.campaign-map-heading p{color:#6a7e65;font-size:13px;margin:0}.campaign-map{height:1060px;position:relative;border:1px solid #c1d2a4;border-radius:30px;background:linear-gradient(180deg,#dee6bb,#d3e4bb 35%,#b9d7a7 75%,#b3d2b6);overflow:hidden;box-shadow:inset 0 0 70px #f7f3cd66}.campaign-map>svg{position:absolute;width:100%;height:100%;inset:0}.campaign-node{position:absolute;transform:translate(-50%,-50%);width:170px;border:0;padding:0;background:none;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;color:#244335;font:inherit;z-index:1;text-align:center}.campaign-node-circle{display:flex;width:64px;height:64px;align-items:center;justify-content:center;border-radius:50%;border:5px solid #fff2cf;background:linear-gradient(140deg,#fbe49f,#e8c76c);box-shadow:0 6px 0 #a08c4c,0 10px 16px #415c3a33;font-size:26px;font-weight:800}.campaign-node strong{font-size:12px;padding:5px 8px 0;line-height:1.3;text-shadow:0 1px #fff9}.campaign-node small{font-size:10px;color:#4d6850}.campaign-node.is-complete .campaign-node-circle{color:#fff8db;background:linear-gradient(140deg,#739d6a,#396e52);box-shadow:0 6px 0 #34604b,0 10px 16px #415c3a33}.campaign-node.is-locked{cursor:default;color:#667664}.campaign-node.is-locked .campaign-node-circle{background:linear-gradient(140deg,#bfc6af,#95a38d);border-color:#dce3cf;box-shadow:0 5px 0 #7d8d76;font-size:28px}.campaign-node.is-next .campaign-node-circle{outline:2px dashed #fff3c4;outline-offset:8px;animation:campaign-beacon 2s ease-in-out infinite}.campaign-node:not(:disabled):hover .campaign-node-circle{filter:brightness(1.12);transform:translateY(-3px)}.campaign-node:focus-visible{outline:3px solid #365c49;outline-offset:12px;border-radius:20px}.map-landmark{position:absolute;pointer-events:none;opacity:.65}.map-sun{right:12%;top:2%;font-size:60px;color:#e5c86e}.map-mountain{left:4%;top:32%;font-size:110px;color:#9faf92;text-shadow:35px 20px #a9b69b}.map-camp{right:10%;bottom:5%;font-size:85px;color:#889b6e}.map-start-label{position:absolute;bottom:24px;left:0;right:0;text-align:center;font-size:11px;letter-spacing:1px;color:#4f785a}.campaign-map-note{margin:20px auto;text-align:center;font-size:13px;line-height:1.7;color:#6a7e65;max-width:600px}@keyframes campaign-beacon{50%{outline-offset:13px;filter:brightness(1.1)}}
@media(max-width:760px){.campaign-title{min-height:530px;border-radius:23px}.campaign-title-copy{padding:80px 25px 36px}.campaign-title-copy h1{font-size:65px;letter-spacing:-3px}.campaign-title-copy p{font-size:13px;max-width:240px;line-height:1.7}.campaign-title-wallet{top:17px;right:17px;font-size:11px}.campaign-title-badge{font-size:8px;letter-spacing:1.5px}.campaign-title-shade{background:linear-gradient(90deg,#123d33d9,#123d3355),linear-gradient(0deg,#153d3366,transparent 55%)}.campaign-map-heading{gap:12px;align-items:flex-start}.campaign-map-heading h1{font-size:25px}.campaign-map-heading .eyebrow{font-size:8px}.campaign-map{height:1140px;border-radius:22px}.campaign-node{width:126px}.campaign-node-circle{width:57px;height:57px;font-size:22px}.campaign-node strong{font-size:11px}.campaign-map-note{font-size:12px}.map-sun{font-size:45px}.map-mountain{font-size:70px}.map-camp{font-size:60px}.game-screen header strong{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.campaign-node.is-next .campaign-node-circle{animation:none}.campaign-title-copy>.button:hover{transform:none}}
.game-features{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.game-features span{padding:9px 12px;border-radius:10px;color:#426758;background:#eef5e7;font-size:12px;border:1px solid #dbe8d0}
.game-screen{background:#123a43}.game-screen header{padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left));background:linear-gradient(#103d49ed,#123c43c7);border-bottom:1px solid #ffffff20;box-shadow:0 4px 20px #10384022;gap:10px}.game-screen header strong{font-size:14px;letter-spacing:.2px;white-space:nowrap}.game-brand-leaf{color:#efcf73;font-size:20px;margin-right:4px}#game-hud{display:flex;align-items:center;gap:9px;margin-left:auto;margin-right:auto}.game-stat{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:7px 10px;background:#11313d80;border:1px solid #a6d8cd30;border-radius:11px;font-size:13px}.game-stat b{font-weight:650;font-variant-numeric:tabular-nums}.game-stat i{font-style:normal;font-size:21px;line-height:20px;color:#d2e8ce}.game-coin-icon{width:16px;height:19px;border:2px solid #fff0aa;border-radius:50%;background:linear-gradient(135deg,#ffe68a,#e7a22b);box-shadow:0 0 10px #ffe18344}.game-stat .game-heart-icon{color:#ffa2b7;font-size:21px}.game-screen header button{background:#e3f1dc12;border:1px solid #afd8cf55;border-radius:12px;min-height:38px;padding:8px 12px;font-size:12px;box-shadow:inset 0 1px #ffffff12}.game-screen button:focus-visible{outline:3px solid #f1d480;outline-offset:3px}.game-screen header button:hover{background:#e3f1dc30}.game-tip{position:absolute;top:79px;left:50%;transform:translateX(-50%);padding:10px 16px;border-radius:30px;background:#eff7dddf;color:#365e50;font-size:12px;text-align:center;box-shadow:0 5px 20px #27615416;pointer-events:none;white-space:nowrap}.game-tip[hidden]{display:none}.game-tip b{display:inline-block;background:#f5c555;color:#77562c;padding:0 5px;border-radius:4px;margin:0 3px}.game-controls{bottom:max(16px,env(safe-area-inset-bottom));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right));align-items:flex-end;justify-content:space-between;pointer-events:none}.game-direction{display:flex;gap:12px}.game-controls button{pointer-events:auto;width:68px;height:64px;min-height:56px;border-radius:20px;border:1px solid #f4f9da8c;background:linear-gradient(145deg,#306d70df,#194854e8);box-shadow:0 5px 0 #143943b5,0 8px 18px #103d4322,inset 0 1px #c4efdd66;color:#f8f4d9;font-size:23px;text-shadow:0 1px 2px #173c46}.game-controls button[data-key="4"]{width:122px;font-size:16px;background:linear-gradient(145deg,#efca6be8,#d89a3bf0);color:#51402b;border-color:#ffebb2;text-shadow:none;box-shadow:0 5px 0 #956734b5,0 8px 18px #103d4322,inset 0 1px #fff2c0}.game-controls button[data-key="4"] span{font-size:25px;vertical-align:middle;margin-right:5px}.game-controls button.is-held,.game-controls button:active{transform:translateY(3px);box-shadow:0 2px 0 #143943b5,inset 0 3px 8px #08283144}.game-result{background:linear-gradient(135deg,#153e4cf5,#1f5949f5)}.game-result h2{font-size:28px;letter-spacing:-.5px}.game-result p{color:#d8ebdf;font-size:16px}.game-result p strong{color:#ffe49b}.game-result .game-result-detail{font-size:12px;color:#afcdbd}.game-result .button{background:#f2cc70;color:#4c432d;border:1px solid #ffe9a9;font-weight:650;padding:12px 20px}.game-rotate{background:#143d47f5;font-size:21px}
@media(max-width:760px){.game-screen header{padding:7px 10px;gap:6px}.game-screen header strong{font-size:11px}.game-brand-leaf{display:none}.game-screen header button{font-size:10px;padding:6px 8px;min-height:34px}.game-stat{font-size:11px;padding:5px 7px;gap:5px}#game-hud{gap:5px}.game-controls button{width:62px;height:56px;min-height:56px;border-radius:17px}.game-controls button[data-key="4"]{width:104px}.game-controls{bottom:max(12px,env(safe-area-inset-bottom));left:14px;right:14px}.game-tip{top:61px;font-size:10px;padding:8px 12px}}
@media(max-height:360px){.game-tip{top:54px}.game-controls button{height:50px;min-height:50px}.game-controls{bottom:10px}.game-screen header{padding-top:5px;padding-bottom:5px}}
@media(orientation:portrait) and (pointer:coarse){.game-screen header strong,.game-time{display:none}.game-screen header{z-index:2}.game-tip{display:none}}
@media(prefers-reduced-motion:reduce){.game-controls button{transition:none}}

body.nexo-game-active{overflow:hidden}body.nexo-game-active .notification-popup{visibility:hidden;pointer-events:none}

.campaign-node[data-campaign-level="1"]{left:23%;top:90%}.campaign-node[data-campaign-level="2"]{left:72%;top:78%}.campaign-node[data-campaign-level="3"]{left:28%;top:66%}.campaign-node[data-campaign-level="4"]{left:70%;top:54%}.campaign-node[data-campaign-level="5"]{left:26%;top:42%}.campaign-node[data-campaign-level="6"]{left:73%;top:30%}.campaign-node[data-campaign-level="7"]{left:30%;top:18%}.campaign-node[data-campaign-level="8"]{left:66%;top:7%}

.campaign-node:disabled{opacity:1}.campaign-node-circle .icon{width:23px;height:23px}.campaign-node.is-locked strong{color:#4b624a}.campaign-node.is-locked small{color:#526a4f}

body.campaign-open{overflow:hidden}body.campaign-open .notification-popup{visibility:hidden;pointer-events:none}
.campaign-shell{position:fixed;inset:0;z-index:145;background:#173e33;color:#f9f3da;overflow:hidden;user-select:none}.campaign-stage{width:100%;height:100%;display:flex;flex-direction:column}.campaign-loading{margin:auto;color:#fff}.campaign-toolbar{height:56px;flex-shrink:0;display:flex;align-items:center;gap:18px;padding:6px max(16px,env(safe-area-inset-right)) 6px max(16px,env(safe-area-inset-left));background:#173e33;color:#fff}.campaign-toolbar>span{margin-right:auto;font-weight:700}.campaign-toolbar .button{color:#fff;background:#ffffff12;border:1px solid #ffffff35;padding:8px 12px;min-height:36px;font-size:12px}.campaign-toolbar strong{color:#f0d584;font-size:13px}.campaign-shell .campaign-title{width:100%;height:100%;min-height:0;border-radius:0;flex:1}.campaign-expanding{transform-origin:top left;will-change:transform}.campaign-shell .campaign-title-copy{padding:clamp(22px,6vh,65px) 7%;}.campaign-shell .campaign-world{max-width:none;width:100%;flex:1;min-height:0;display:flex;flex-direction:column;background:#d5e3b9;color:#244335}.campaign-shell .campaign-map-heading{margin:0;padding:12px 24px;align-items:center;justify-content:space-between;gap:16px}.campaign-shell .campaign-map-heading h1{font-size:24px;margin:3px 0}.campaign-shell .campaign-map-heading .eyebrow{font-size:9px}.campaign-shell .campaign-map-heading p{font-size:11px}.campaign-map-scroll{flex:1;min-height:0;overflow-x:auto;overflow-y:hidden;touch-action:pan-x;overscroll-behavior:contain;scrollbar-color:#668969 #d5e3b9;scrollbar-width:thin}.campaign-shell .campaign-map{width:2300px;height:100%;min-height:230px;border-radius:0;border:0;box-shadow:inset 0 0 70px #f7f3cd66}.campaign-shell .campaign-map-note{margin:0;max-width:none;padding:7px;font-size:11px}.campaign-shell .campaign-node{width:170px}.campaign-shell .campaign-node[data-campaign-level="1"]{left:7.3913%;top:60%}.campaign-shell .campaign-node[data-campaign-level="2"]{left:19.5652%;top:30%}.campaign-shell .campaign-node[data-campaign-level="3"]{left:31.7391%;top:60%}.campaign-shell .campaign-node[data-campaign-level="4"]{left:43.913%;top:30%}.campaign-shell .campaign-node[data-campaign-level="5"]{left:56.087%;top:60%}.campaign-shell .campaign-node[data-campaign-level="6"]{left:68.2609%;top:30%}.campaign-shell .campaign-node[data-campaign-level="7"]{left:80.4348%;top:60%}.campaign-shell .campaign-node[data-campaign-level="8"]{left:92.6087%;top:30%}.campaign-shell .map-sun{top:5%;right:5%}.campaign-shell .map-mountain{top:65%;left:60%}.campaign-rotate{display:none}.campaign-help{max-width:600px;max-height:85dvh;overflow:auto;border:1px solid #8fa57d;border-radius:22px;padding:25px;color:#244335;background:#f5f7ec;user-select:text}.campaign-help::backdrop{background:#0e302ad9}.campaign-help p{line-height:1.6}.campaign-help .button{margin:8px 8px 0 0}
@media(max-height:500px){.campaign-shell .campaign-title-copy h1{font-size:58px;margin:14px 0}.campaign-shell .campaign-title-copy p{margin:14px 0}.campaign-shell .campaign-title-copy>small{margin-top:12px}.campaign-shell .campaign-title-copy>.button{padding:12px 24px}.campaign-shell .campaign-title-badge{padding:6px 10px}.campaign-toolbar{height:46px}.campaign-shell .campaign-map-heading{padding:6px 18px}.campaign-shell .campaign-map-heading h1{font-size:19px}.campaign-shell .campaign-node-circle{width:52px;height:52px;font-size:21px}.campaign-shell .campaign-node strong{font-size:11px}.campaign-shell .campaign-map{min-height:210px}}
@media(orientation:portrait) and (pointer:coarse){.campaign-rotate{display:flex;position:absolute;inset:46px 0 0;align-items:center;justify-content:center;background:#173e33f5;color:#fff;padding:40px;text-align:center;font-size:22px;z-index:5}}

.campaign-map-scroll{cursor:grab;-webkit-overflow-scrolling:touch}.campaign-map-scroll.is-dragging{cursor:grabbing}

/* The scene fills every display ratio; the HUD floats over its artwork. */
.game-screen canvas{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill}
.game-screen header{background:none;border:0;box-shadow:none;pointer-events:none}.game-screen header>*{pointer-events:auto}.game-screen header strong{padding:8px 12px;border-radius:16px;background:#153e4bd9}.game-screen header button{background:#153e4bd9}.game-stat{background:#153e4bd9}
.campaign-stage:has(.campaign-map-ui){position:relative}.campaign-map-ui{position:absolute;inset:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) auto max(14px,env(safe-area-inset-left));height:auto;padding:0;background:none;z-index:3;pointer-events:none}.campaign-map-ui>*{pointer-events:auto}.campaign-map-ui>span,.campaign-map-ui>strong,.campaign-map-ui .button{padding:10px 14px;border:1px solid #fff3c355;border-radius:18px;background:#244c3dde;box-shadow:0 3px 10px #244c3d22;color:#fff6d5}.campaign-map-ui>span{font-size:14px}.campaign-map-ui>strong{color:#f8da82}
.campaign-stage:has(.campaign-map-ui) .campaign-world{position:absolute;inset:0;display:block;height:100%}.campaign-stage:has(.campaign-map-ui) .campaign-map-scroll{position:absolute;inset:0;scrollbar-width:none}.campaign-map-scroll::-webkit-scrollbar{display:none}.campaign-stage:has(.campaign-map-ui) .campaign-map{min-height:0;height:100%}.campaign-stage:has(.campaign-map-ui) .campaign-map-heading{position:absolute;top:max(60px,calc(env(safe-area-inset-top) + 60px));left:max(24px,env(safe-area-inset-left));right:24px;padding:0;z-index:2;pointer-events:none}.campaign-stage:has(.campaign-map-ui) .campaign-map-heading .eyebrow{display:none}.campaign-stage:has(.campaign-map-ui) .campaign-map-heading h1{font-size:18px;color:#294b38;text-shadow:0 1px #fff8}.campaign-stage:has(.campaign-map-ui) .campaign-map-heading p{padding:6px 10px;border-radius:14px;background:#f5efd1bb;color:#3c6349}.campaign-stage:has(.campaign-map-ui) .campaign-map-note{position:absolute;bottom:max(10px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:85%;padding:7px 15px;background:#edf1d4c9;border-radius:20px;z-index:2;pointer-events:none}
@media(max-height:360px){.campaign-map-ui>span{font-size:12px}.campaign-map-ui>span,.campaign-map-ui>strong,.campaign-map-ui .button{padding:7px 10px}.campaign-stage:has(.campaign-map-ui) .campaign-map-heading{top:51px}.campaign-stage:has(.campaign-map-ui) .campaign-map-heading h1{font-size:15px}}

/* Only controls avoid the camera; the map and canvas paint behind it. */
.game-screen header{top:max(0px,var(--game-safe-top,0px));padding-left:max(16px,env(safe-area-inset-left),calc(var(--game-safe-left,0px) + 12px));padding-right:max(16px,env(safe-area-inset-right),calc(var(--game-safe-right,0px) + 12px))}.game-controls{left:max(20px,env(safe-area-inset-left),calc(var(--game-safe-left,0px) + 12px));right:max(20px,env(safe-area-inset-right),calc(var(--game-safe-right,0px) + 12px));bottom:max(12px,env(safe-area-inset-bottom),calc(var(--game-safe-bottom,0px) + 12px))}.campaign-map-ui{left:max(14px,env(safe-area-inset-left),calc(var(--game-safe-left,0px) + 12px));right:max(14px,env(safe-area-inset-right),calc(var(--game-safe-right,0px) + 12px));top:max(10px,env(safe-area-inset-top),calc(var(--game-safe-top,0px) + 10px))}.campaign-stage:has(.campaign-map-ui) .campaign-map-heading{left:max(24px,env(safe-area-inset-left),calc(var(--game-safe-left,0px) + 12px));right:max(24px,env(safe-area-inset-right),calc(var(--game-safe-right,0px) + 12px));top:max(60px,calc(env(safe-area-inset-top) + 60px),calc(var(--game-safe-top,0px) + 60px))}.campaign-stage:has(.campaign-map-ui) .campaign-map-note{bottom:max(10px,env(safe-area-inset-bottom),calc(var(--game-safe-bottom,0px) + 10px))}

.admin-game-modal{max-width:760px;width:calc(100% - 32px)}.admin-game-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.admin-game-stats>div{padding:14px;background:#eef4e7;border-radius:15px;display:flex;flex-direction:column;gap:7px}.admin-game-stats small{color:#607460;font-size:11px}.admin-game-stats strong{color:#244c3d;font-size:17px}.admin-game-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-game-reset{margin:22px 0;padding:15px;border:1px solid #dedbc7;border-radius:14px}.admin-game-reset summary{cursor:pointer;font-weight:600}.admin-game-reset form{margin-top:14px}.admin-game-history{padding:0;list-style:none}.admin-game-history li{display:flex;flex-direction:column;gap:5px;padding:12px 0;border-bottom:1px solid #dce5d3}.admin-game-history span,.admin-game-history small{font-size:11px;color:#617460}.admin-game-history small{overflow-wrap:anywhere}@media(max-width:480px){.admin-game-stats strong{font-size:14px}.admin-game-fields{grid-template-columns:1fr}}

.team-online{display:inline-flex;align-items:center;gap:6px;color:#a33f3f;font-size:10px;white-space:nowrap}.team-online:before{content:'';width:8px;height:8px;border-radius:50%;background:#d95d5d;box-shadow:0 0 0 3px #d95d5d15}.team-online.online{color:#34794c}.team-online.online:before{background:#43b66b;box-shadow:0 0 0 3px #43b66b20}.team-access-modal{max-width:760px}.access-summary{display:flex;gap:16px;justify-content:space-between;margin-bottom:20px;padding:15px;background:#eef4e7;border-radius:14px;font-size:12px}.access-search{display:flex;flex-direction:column;gap:8px;font-size:12px;margin-bottom:18px}.access-search input{padding:12px;border:1px solid #d5dfcf;border-radius:10px}.access-cards article{padding:16px;margin:12px 0;border:1px solid #dce5d3;border-radius:14px}.access-cards article>div{display:flex;justify-content:space-between;gap:16px;margin-bottom:9px}.access-cards time,.access-cards article>span{font-size:11px;color:#617460}.access-cards details{margin-top:12px;font-size:11px;color:#617460}.access-cards summary{cursor:pointer}.access-cards details p{margin-top:10px;overflow-wrap:anywhere;line-height:1.6}.campaign-shell .notification-popup{z-index:200;top:max(70px,calc(var(--game-safe-top,0px) + 70px));bottom:auto}.campaign-open .notification-popup,.nexo-game-active .notification-popup{visibility:visible!important;pointer-events:auto!important}@media(max-width:600px){.access-cards article>div,.access-summary{flex-direction:column;gap:6px}}

.notification-popup p{white-space:pre-wrap;overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){.shop-offer i{animation:shop-fire 1.6s ease-in-out infinite alternate}.shop-sparkles{animation:shop-shimmer 6s ease-in-out infinite}}

@media(max-height:500px) and (min-width:650px){.adventure-shop .shop-item-art{height:72px}.adventure-shop .shop-item-copy{padding:10px}.adventure-shop .shop-item h2{margin:8px 0}.adventure-shop .shop-item p{line-height:1.55}}
@media(max-width:650px){.adventure-shop{padding:max(16px,var(--game-safe-top,0px),env(safe-area-inset-top)) max(16px,var(--game-safe-right,0px),env(safe-area-inset-right)) max(16px,var(--game-safe-bottom,0px),env(safe-area-inset-bottom)) max(16px,var(--game-safe-left,0px),env(safe-area-inset-left))}}

.shop-avatar-strip{display:flex;align-items:center;gap:18px;padding:10px 24px;background:linear-gradient(100deg,#193e4e,#265e57);border-bottom:1px solid #c5e7d12e;color:#f3ead0}.shop-avatar-strip>canvas{width:125px;height:65px;object-fit:contain;flex:none}.shop-avatar-strip>div{display:flex;flex-direction:column;gap:5px}.shop-avatar-strip small{font-size:9px;color:#a6d3bd;letter-spacing:2px}.shop-avatar-strip strong{font-size:17px}.shop-avatar-strip span{font-size:11px;color:#c6dfcf}.shop-avatar-strip nav{display:flex;gap:8px;margin-left:auto}.shop-avatar-strip nav button{font-size:12px;white-space:nowrap}.shop-item.skin-equipped{border:2px solid #9edcc5;box-shadow:0 0 20px #a5e8ce22}.shop-item.skin-equipped .shop-item-type{color:#b7f8d9}
@media(max-height:500px){.shop-avatar-strip{padding:5px 18px;gap:8px}.shop-avatar-strip>canvas{width:90px;height:48px}.shop-avatar-strip strong{font-size:13px}.shop-avatar-strip span{font-size:10px}.shop-avatar-strip nav button{padding:8px 12px}.adventure-shop-header{padding-top:max(10px,var(--game-safe-top,0px))}}
@media(max-width:650px){.shop-avatar-strip{flex-wrap:wrap}.shop-avatar-strip nav{width:100%;margin-left:0}.shop-avatar-strip nav button{flex:1}}

.game-password-dialog{max-width:480px;width:calc(100% - 32px);padding:32px;border:1px solid #b7e0c755;border-radius:26px;background:radial-gradient(ellipse at 0 0,#3b7663 0,transparent 60%),linear-gradient(145deg,#173c48,#142c38);color:#edf4db;box-shadow:0 20px 90px #091c3980;position:relative}.game-password-dialog::backdrop{background:#0b263dbb;backdrop-filter:blur(6px)}.game-password-close{position:absolute;top:14px;right:14px;color:#cfe6da}.game-password-emblem{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 18px;border:1px solid #e8d08a88;border-radius:20px;background:#f2d27b15;box-shadow:0 0 24px #d6e8b015}.game-password-emblem .icon{width:32px;height:32px;color:#f4dc9a}.game-password-dialog>.eyebrow{display:block;text-align:center;color:#a5d9c5;font-size:9px;letter-spacing:2px}.game-password-dialog h1{text-align:center;font-size:28px;letter-spacing:-.8px;margin:12px 0}.game-password-intro{color:#b7cfc8;text-align:center;font-size:12px;line-height:1.7;margin-bottom:24px}.game-password-dialog label{color:#d5e8df}.game-password-dialog input:not([type=checkbox]){color:#f7f1d9;background:#0c253d99;border:1px solid #9dc7bd50;border-radius:12px;padding:13px}.game-password-dialog input:focus{outline:2px solid #d6cc83;outline-offset:2px}.game-password-dialog .button.primary{background:linear-gradient(110deg,#f3d783,#dcb660);color:#263c39;border:1px solid #ffedb0;box-shadow:0 4px 0 #90743e}.game-password-meter{display:flex;gap:6px;margin-top:-4px}.game-password-meter i{height:4px;flex:1;background:#466369;border-radius:5px}.game-password-meter i.lit{background:#a9e1b9;box-shadow:0 0 8px #a9e1b940}.game-password-hint{font-size:10px;line-height:1.6;color:#abcac0}.game-password-show{display:flex;align-items:center;gap:9px;font-size:12px}.game-password-status{min-height:18px;font-size:12px;line-height:1.6;color:#ffd5a5}.game-password-dialog .form-stack{gap:14px}@media(max-height:550px){.game-password-dialog{max-height:calc(100dvh - 24px);overflow:auto;padding:22px}.game-password-emblem{width:42px;height:42px;margin-bottom:10px}.game-password-dialog h1{font-size:23px}.game-password-intro{margin-bottom:16px}.game-password-dialog .form-stack{gap:10px}}

.game-account-home{min-height:100dvh;background:radial-gradient(ellipse at 15% 15%,#275c5e55,transparent 50%),radial-gradient(ellipse at 90% 70%,#62589633,transparent 50%),linear-gradient(150deg,#102c3a,#172f38 55%,#142532);color:#e6ead4;position:relative;overflow:hidden}.game-account-home:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.25;background-image:radial-gradient(circle,#c6ead8 1px,transparent 1px);background-size:82px 82px;mask-image:linear-gradient(#000,transparent 85%)}.game-account-home>.personal-space{position:relative;max-width:1360px;padding:26px 32px 32px}.game-account-home .personal-header{border-bottom:1px solid #b9e5cf24;margin-bottom:26px;padding-bottom:22px;gap:20px}.game-account-home .brand{color:#eef0dc}.game-account-home .brand-light{color:#c0d8d0}.game-account-brand{display:flex!important;flex-direction:column;align-items:flex-start!important;gap:9px!important}.game-account-brand>small{font-size:8px;letter-spacing:2.5px;color:#8fc7b5}.game-account-player{display:flex;align-items:center;gap:12px;padding-right:14px;border-right:1px solid #acd7c433}.game-account-player>.avatar{border:1px solid #dcca86aa;background:linear-gradient(135deg,#50786d,#2d4d59);color:#f6dda0;box-shadow:0 0 18px #e9cd6820;border-radius:14px}.game-account-player>span:last-child{display:flex;flex-direction:column;gap:5px}.game-account-player small{font-size:8px;letter-spacing:2px;color:#94c5b2}.game-account-player strong{font-size:13px;color:#ecf0dc}.game-account-tools{gap:12px!important}.game-account-home #game-account-password{background:#c6e4d90c;border:1px solid #b3dbcc50;color:#dce9dc;border-radius:12px;padding:11px 16px}.game-account-home #game-account-logout{color:#b4d2c4}.game-account-home .campaign-title{border:1px solid #b9e8db35;box-shadow:0 24px 80px #061b3440,inset 0 0 0 1px #e8edc611}.game-account-home .campaign-title-badge{background:#ccecc51a;color:#cce6d9;border-color:#d3e2bd55}.game-account-home .campaign-title-copy h1{filter:drop-shadow(0 3px 0 #2b53594d)}.game-account-home .campaign-instructions{background:linear-gradient(135deg,#1d414a,#233e43);border:1px solid #a0d3c433;border-radius:24px;color:#dae8d9;box-shadow:0 12px 36px #0a203122}.game-account-home .campaign-instructions h2{color:#f0e2b5}.game-account-home .campaign-instructions .game-description{color:#bcd4c8;line-height:1.85}.game-account-home .game-features span{background:#a8d8bd12;border:1px solid #cbe2b51a;color:#bdd9c6;border-radius:10px;padding:10px 13px}.game-account-footer{display:flex;justify-content:space-between;gap:15px;padding:24px 4px 0;font-size:10px;letter-spacing:.5px;color:#88b4a6}.game-account-footer>span{color:#6f9b8e}@media(max-width:650px){.game-account-home>.personal-space{padding:20px 16px}.game-account-home .personal-header{flex-wrap:wrap;gap:18px}.game-account-home .game-account-tools{width:100%;justify-content:space-between}.game-account-player{flex:1;border-right:0}.game-account-home #game-account-password{font-size:11px;padding:10px}.game-account-home .campaign-title{min-height:480px}.game-account-footer{flex-direction:column;gap:8px}.game-account-home .campaign-instructions{padding:22px}}
.game-password-dialog{padding:24px;max-height:calc(100dvh - 32px);overflow:auto}.game-password-emblem{width:50px;height:50px;margin-bottom:12px}.game-password-dialog h1{font-size:25px}.game-password-intro{margin-bottom:18px}.game-password-dialog .form-stack{gap:10px}.game-password-dialog .form-stack label.game-password-show{flex-direction:row;align-items:center;justify-content:flex-start}.game-password-show input{width:auto;margin:0}.game-password-dialog input:not([type=checkbox]){padding:11px}
.game-account-home .game-account-header{height:auto;min-height:92px;position:relative;flex-shrink:0;padding-top:env(safe-area-inset-top);align-items:center}.game-account-home .game-account-tools{display:flex;align-items:center;min-width:0}.game-account-player{min-width:0}.game-account-player>span:last-child{min-width:0}.game-account-player strong{overflow-wrap:anywhere}.game-account-home #space-content{position:relative;clear:both}.game-account-home .campaign-title-canvas{transform:translateY(var(--cover-drift,0px)) scale(1.08);transform-origin:center;pointer-events:none}.game-account-home .campaign-title{box-shadow:0 24px 80px #061b3440,0 0 45px rgb(141 224 184 / var(--cover-glow,0))}.game-account-home .game-scroll-reveal{opacity:0;transform:translateY(26px);transition:opacity .65s ease var(--reveal-delay,0ms),transform .65s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}.game-account-home .game-scroll-reveal.is-revealed{opacity:1;transform:translateY(0)}.game-account-home #campaign-play{animation:game-play-glow 3s ease-in-out infinite}@keyframes game-play-glow{50%{box-shadow:0 6px 0 #b99c4e,0 12px 34px #efd58440}}
@media(max-width:760px){.game-account-home .game-account-header{height:auto;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:20px;margin-bottom:24px;padding-bottom:20px}.game-account-home .game-account-tools{width:100%;gap:8px!important;flex-wrap:wrap}.game-account-player{flex:1 1 120px;padding-right:0;border-right:0}.game-account-home #game-account-password{flex:0 0 auto;min-height:44px}.game-account-home #game-account-logout{flex:0 0 44px}.game-account-home .game-account-brand{max-width:100%}.game-account-home .campaign-title-copy h1{font-size:clamp(42px,13.5vw,65px)}.game-account-home .campaign-title-copy{padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){.game-account-home .game-scroll-reveal{opacity:1;transform:none;transition:none}.game-account-home .campaign-title-canvas{transform:none}.game-account-home #campaign-play{animation:none}}

/* Fifty-level atlas: labels remain readable above the illustrated terrain. */
.campaign-shell .campaign-node strong{background:#fff9e7dc;padding:6px 10px;border-radius:10px;box-shadow:0 3px 10px #27425215;color:#294354;text-shadow:none;max-width:170px}
.campaign-shell .campaign-node small{background:#fff9e7bc;border-radius:8px;padding:3px 7px;color:#3d5360;font-weight:600}
.campaign-shell .campaign-node-circle{background:radial-gradient(circle at 30% 22%,#fff2bd,#edbf5a 65%,#ba8542);border-color:#fff8dd;box-shadow:0 5px 0 #916b3b,0 9px 22px #28465040,inset 0 2px 5px #ffffffb0}
.campaign-shell .campaign-node.is-complete .campaign-node-circle{background:radial-gradient(circle at 30% 20%,#8ed3a0,#427969 70%);box-shadow:0 5px 0 #315950,0 9px 22px #28465030}
.campaign-shell .campaign-node.is-locked .campaign-node-circle{background:linear-gradient(135deg,#d6dde1,#8c9eae);border-color:#eef0e9;box-shadow:0 5px 0 #647787,0 8px 18px #28465025}
.campaign-shell .campaign-node[data-campaign-level="50"] .campaign-node-circle{border-color:#ffe399;outline:3px solid #b88e51;outline-offset:4px}
@media(max-height:440px){.campaign-shell .campaign-node strong{font-size:10px;padding:4px 8px}.campaign-shell .campaign-node small{font-size:9px}.campaign-shell .campaign-node-circle{width:48px;height:48px;border-width:4px}.campaign-stage:has(.campaign-map-ui) .campaign-map-heading h1{display:none}.campaign-stage:has(.campaign-map-ui) .campaign-map-heading{justify-content:flex-end;top:58px}}

.atlas-current-level,.atlas-region-nav{position:absolute;bottom:max(12px,env(safe-area-inset-bottom),calc(var(--game-safe-bottom,0px) + 10px));z-index:4}
.atlas-region-nav{left:max(16px,var(--game-safe-left,0px));max-width:calc(100% - 200px);display:flex;gap:7px;padding:7px;border:1px solid #ffffff80;border-radius:20px;background:#254a48d9;box-shadow:0 6px 20px #244b4433;overflow-x:auto;scrollbar-width:none;touch-action:pan-x;backdrop-filter:blur(12px)}
.atlas-region-chip,.atlas-current-level{font:inherit;font-size:11px;white-space:nowrap;border:1px solid #f9efc844;background:#ffffff12;color:#fff5da;border-radius:13px;padding:9px 12px;cursor:pointer}
.atlas-region-chip.is-active{background:#eedba0;color:#304d48;border-color:#fff1c5;box-shadow:0 2px 5px #102d3333}.atlas-current-level{right:max(16px,var(--game-safe-right,0px));background:#244c3dea;font-weight:700;padding:15px 18px;box-shadow:0 6px 20px #244b4433}.atlas-current-level:hover,.atlas-region-chip:hover{filter:brightness(1.12)}
.atlas-cloud,.atlas-balloon{transform-box:fill-box;transform-origin:center;animation:atlas-float 8s ease-in-out infinite;animation-delay:var(--cloud-delay,0s)}.atlas-cloud{animation-name:atlas-cloud-drift;animation-duration:19s}.atlas-current{animation:atlas-flow 5s linear infinite}.atlas-ripple{transform-box:fill-box;transform-origin:center;animation:atlas-ripple 4s ease-out infinite}.atlas-firefly{animation:atlas-twinkle 3s ease-in-out infinite;animation-delay:var(--cloud-delay,0s)}.atlas-flag{transform-box:fill-box;transform-origin:left center;animation:atlas-wave 2s ease-in-out infinite}.atlas-route-glow{animation:atlas-flow 6s linear infinite}
@keyframes atlas-flow{to{stroke-dashoffset:-144}}@keyframes atlas-float{50%{translate:0 -12px;rotate:3deg}}@keyframes atlas-cloud-drift{50%{translate:28px 0}}@keyframes atlas-ripple{0%{scale:.6;opacity:.7}100%{scale:1.6;opacity:0}}@keyframes atlas-twinkle{0%,100%{opacity:.15}50%{opacity:1}}@keyframes atlas-wave{50%{scale:1 .72}}
@media(max-height:440px){.atlas-region-nav{padding:4px;max-width:calc(100% - 155px);bottom:9px}.atlas-region-chip{font-size:10px;padding:7px 10px}.atlas-current-level{font-size:10px;padding:12px;bottom:9px}}
@media(prefers-reduced-motion:reduce){.atlas-cloud,.atlas-balloon,.atlas-current,.atlas-ripple,.atlas-firefly,.atlas-flag,.atlas-route-glow{animation:none}}

/* Small independent SVG regions avoid oversized animated backing surfaces in WebView. */
.campaign-atlas-tiles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.campaign-atlas-tile{position:absolute;top:0;height:100%;max-width:none;overflow:hidden;contain:paint}
.campaign-shell .campaign-map{box-shadow:none}
.campaign-shell .campaign-node{opacity:1;visibility:visible;backface-visibility:visible}
.campaign-node-circle{position:relative;flex-shrink:0;overflow:visible}
.campaign-node-state{position:absolute;right:-6px;bottom:-4px;width:22px;height:22px;display:grid;place-items:center;background:#355762;border:2px solid #f8f2d6;border-radius:50%;color:#fff7dd;font-size:13px;line-height:1;box-shadow:0 2px 4px #233d4933}
.campaign-node-state:empty{display:none}.campaign-node-state .icon{width:12px!important;height:12px!important;display:block;position:static}
.campaign-node.is-complete .campaign-node-state{background:#326e55}
.campaign-shell .campaign-node.is-next .campaign-node-circle{animation:none;outline:2px dashed #fff3c4;outline-offset:7px;filter:none}
.atlas-region-nav{backdrop-filter:none;background:#254a48f5}
/* Opacity animations retain a stable paint boundary; avoid scaling SVG filter surfaces. */
.atlas-ripple{animation-name:atlas-ripple-stable;transform:none}
.atlas-flag{animation-name:atlas-flag-stable}
@keyframes atlas-ripple-stable{0%,100%{opacity:.2}50%{opacity:.8}}
@keyframes atlas-flag-stable{0%,100%{opacity:.8}50%{opacity:1}}

@media(prefers-reduced-motion:reduce){.atlas-ripple,.atlas-flag{animation:none}}

/* The map remains available on return, but never animates behind a running game. */
.nexo-game-active .campaign-shell .campaign-stage{visibility:hidden}
.nexo-game-active .campaign-shell .campaign-stage *{animation-play-state:paused!important}
