/* رحلة الثروة — World Boards 3D v150 */
.worldboards-v150{--v150-gold:#f5c84c;--v150-navy:#06233d;--v150-cyan:#36daf1}

/* Real map-specific board proportions. The 32 gameplay tiles are still the same engine path. */
.worldboards-v150 .board-scene{aspect-ratio:var(--board-ratio,1/1)!important;transition:transform .72s cubic-bezier(.18,.84,.22,1),filter .45s ease,width .55s ease,aspect-ratio .55s ease!important}
.worldboards-v150 .board{grid-template-columns:repeat(var(--board-cols,9),minmax(0,1fr))!important;grid-template-rows:repeat(var(--board-rows,9),minmax(0,1fr))!important;aspect-ratio:var(--board-cols,9)/var(--board-rows,9)!important}
.worldboards-v150 .board-scene.layout-switch150{animation:v150LayoutSwitch .72s cubic-bezier(.14,.84,.18,1)}
@keyframes v150LayoutSwitch{0%{opacity:.35;filter:blur(7px) brightness(1.35);transform:translateY(26px) rotateX(10deg) scale(.85)}100%{opacity:1;filter:none}}

@media(min-width:1051px){
  .worldboards-v150[data-board-layout="world"] .board-scene{width:min(calc(100svh - 188px),calc(100vw - 590px),900px)!important}
  .worldboards-v150[data-board-layout="gulf"] .board-scene{width:min(calc(100vw - 570px),1040px)!important}
  .worldboards-v150[data-board-layout="europe"] .board-scene{width:min(calc(100vw - 580px),920px)!important}
  .worldboards-v150[data-board-layout="future"] .board-scene{width:min(calc(100vw - 560px),1060px)!important}
  .worldboards-v150[data-board-layout="egypt"] .board-scene{width:min(calc((100svh - 190px)*.6363),calc(100vw - 600px),570px)!important}
}

/* map-specific physical materials */
.worldboards-v150[data-board-layout="gulf"] .board-scene .board{background:linear-gradient(145deg,#8b5c19,#51310f 47%,#1f3a3a)!important;box-shadow:0 20px 0 #173238,0 29px 0 #b78424,0 52px 80px #00354e70,inset 0 0 0 5px #fff0a1,inset 0 0 0 12px #d9a430!important}
.worldboards-v150[data-board-layout="egypt"] .board-scene .board{background:linear-gradient(155deg,#9a6425,#644018 45%,#2c1c10)!important;box-shadow:0 20px 0 #39200d,0 28px 0 #c28a32,0 52px 86px #351d0c77,inset 0 0 0 5px #ffe5a0,inset 0 0 0 12px #b57628!important}
.worldboards-v150[data-board-layout="europe"] .board-scene .board{background:linear-gradient(145deg,#60513d,#3a3027 48%,#17263d)!important;box-shadow:0 20px 0 #1b2634,0 28px 0 #b79b58,0 52px 82px #00183366,inset 0 0 0 5px #fff5c5,inset 0 0 0 12px #b59449!important}
.worldboards-v150[data-board-layout="future"] .board-scene .board{background:linear-gradient(145deg,#102b45,#081725 48%,#181143)!important;box-shadow:0 18px 0 #061323,0 25px 0 #19a9c9,0 48px 90px #001b4b99,inset 0 0 0 4px #aaffff,inset 0 0 0 10px #22c5e5,inset 0 0 32px #b33aff44!important}
.worldboards-v150[data-board-layout="future"] .tile-3d{border-color:#4fc5dc!important;box-shadow:0 7px 0 #173e58,0 11px 12px #0006,inset 0 1px #fff,0 0 12px #54e7ff20!important}

/* richer 3D building bases on the actual property tile */
.worldboards-v150 .iso-build{transform-style:preserve-3d!important;isolation:isolate!important}
.worldboards-v150 .building-plinth150{position:absolute!important;left:9%!important;right:9%!important;bottom:4%!important;height:22%!important;border-radius:45%!important;background:radial-gradient(ellipse,#13213399 0 35%,#06090ddd 58%,transparent 72%)!important;filter:blur(1px)!important;transform:translateZ(-8px) rotateX(67deg)!important;z-index:-2!important;pointer-events:none!important}
.worldboards-v150 .developed150 .iso-build::before{content:"";position:absolute;left:16%;right:16%;bottom:7%;height:16%;border-radius:5px;background:linear-gradient(135deg,#d8b25a,#6f491d 62%,#3d260f);box-shadow:0 5px 0 #35200c,0 9px 8px #0006,inset 0 1px #fff6;transform:translateZ(7px);z-index:-1}
.worldboards-v150 .developed150 .iso-build::after{content:"";position:absolute;inset:12% 19% 18%;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 8px,#ffe78344 8px 10px),repeating-linear-gradient(0deg,transparent 0 9px,#fff19a35 9px 11px);mix-blend-mode:screen;filter:blur(.2px);opacity:.38;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);transform:translateZ(26px);z-index:4}
.worldboards-v150 .landmark150tile .iso-build img{filter:drop-shadow(0 16px 6px #0009) drop-shadow(0 0 10px #ffe47b99)!important;transform:translateZ(38px) translateY(-7px) scale(1.08)!important}
.worldboards-v150 .landmark150tile .tile-3d{box-shadow:0 8px 0 #654015,0 13px 12px #0005,0 0 0 2px #ffe68c99,0 0 24px #ffd85b33!important}

/* Diorama layer: geometric 3D landmarks + roads + micro-airport */
.world-interior150{position:absolute;inset:9% 8% 8%;z-index:3;pointer-events:none;transform-style:preserve-3d;perspective:520px;overflow:hidden;border-radius:inherit}
.map-water150{position:absolute;inset:6%;border-radius:45%;background:radial-gradient(ellipse at 48% 42%,#77efff55,#0cb8d322 46%,transparent 68%);filter:blur(.2px);transform:translateZ(4px)}
.map-road150{position:absolute;inset:19% 14%;border:5px solid #6f6a5a70;border-radius:34%;transform:rotateX(58deg) translateZ(10px);box-shadow:0 0 0 2px #e7c46833,inset 0 0 0 1px #fff5}
.map-road150::after{content:"";position:absolute;inset:3px;border:1px dashed #fff5;border-radius:inherit}
.landmark-cluster150{position:absolute;inset:16% 13% 13%;transform-style:preserve-3d}
.landmark150{position:absolute;width:28px;height:54px;transform-style:preserve-3d;filter:drop-shadow(0 9px 4px #001a2e88)}
.landmark150 b{position:absolute;inset:0;background:linear-gradient(90deg,#f1d17b,#d69b29 45%,#85631e);border:1px solid #fff2a488;border-radius:3px 3px 1px 1px;box-shadow:inset 0 0 0 2px #ffffff14}
.landmark150 b::after{content:"";position:absolute;inset:7px 5px;background:repeating-linear-gradient(#59bddd 0 3px,#173d58 3px 6px);opacity:.72}
.landmark150 i{position:absolute;left:100%;top:5px;width:10px;height:calc(100% - 5px);background:linear-gradient(90deg,#735319,#3e2c10);transform-origin:left;transform:skewY(-35deg)}
.landmark150 em{position:absolute;left:4px;right:-4px;top:-8px;height:12px;background:linear-gradient(135deg,#fff0a3,#a76d18);clip-path:polygon(50% 0,100% 100%,0 100%)}
.landmark150.l1{left:14%;top:19%;height:62px}.landmark150.l2{right:15%;top:17%;height:49px;transform:scale(.9)}.landmark150.l3{left:24%;bottom:14%;height:68px;transform:scale(1.08)}.landmark150.l4{right:23%;bottom:15%;height:42px;transform:scale(.82)}
[data-board-layout="egypt"] .landmark150 b{background:linear-gradient(90deg,#eac778,#b37a2d,#724619)}
[data-board-layout="egypt"] .landmark150.l1 b,[data-board-layout="egypt"] .landmark150.l4 b{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0;background:linear-gradient(135deg,#f5d38a,#9b6125)}
[data-board-layout="future"] .landmark150 b{background:linear-gradient(90deg,#69efff,#245ca2 42%,#6a2cc0);box-shadow:0 0 14px #4de8ff88}
[data-board-layout="future"] .landmark150 b::after{background:repeating-linear-gradient(#a8ffff 0 2px,#331973 2px 5px)}
[data-board-layout="future"] .map-road150{border-color:#26d9ef99;box-shadow:0 0 14px #45eaff66,inset 0 0 12px #bf4cff44}

.mini-airport150{position:absolute;right:4%;bottom:3%;width:35%;height:22%;transform:translateZ(16px) rotate(-7deg)}
.runway150{position:absolute;left:2%;right:2%;bottom:8%;height:24%;background:#2d3942;border:1px solid #c8d3d688;box-shadow:0 3px 5px #0007;overflow:hidden}
.runway150::after{content:"";position:absolute;left:5%;right:5%;top:48%;border-top:2px dashed #fff9}
.runway150 i{position:absolute;inset:2px;background:repeating-linear-gradient(90deg,#50eaff 0 2px,transparent 2px 16px);opacity:.6}
.terminal150{position:absolute;right:6%;bottom:30%;width:34%;height:39%;background:linear-gradient(160deg,#e7f2f2,#55727d);border-radius:5px 5px 1px 1px;box-shadow:4px 5px 0 #223943,0 7px 8px #0006}
.terminal150::before{content:"";position:absolute;inset:7px 5px;background:repeating-linear-gradient(90deg,#2ea7c3 0 5px,#183c53 5px 9px)}
.terminal150 i:first-child{position:absolute;left:-18%;bottom:0;width:23%;height:60%;background:#9eafb3}.terminal150 i:last-child{position:absolute;right:-18%;bottom:0;width:23%;height:60%;background:#9eafb3}
.parked-plane150{position:absolute;left:18%;bottom:25%;width:32%;height:12%;transform:rotate(-7deg)}
.parked-plane150 b,.plane-fuselage150{position:absolute;left:0;right:0;top:35%;height:30%;border-radius:999px;background:linear-gradient(#fff,#b9d6e5);box-shadow:0 2px 3px #0006}
.parked-plane150 i{position:absolute;left:38%;top:-55%;width:38%;height:190%;background:#dfeff6;clip-path:polygon(0 38%,100% 0,72% 52%,100% 100%,0 62%)}
.parked-plane150 em{position:absolute;right:2%;top:-15%;width:13%;height:70%;background:#e7f4f7;clip-path:polygon(0 100%,100% 0,100% 100%)}
.center-traffic150 i{position:absolute;width:10px;height:5px;border-radius:3px;background:#ffda4f;box-shadow:0 2px 2px #0007,0 0 4px #fff5}.center-traffic150 i:nth-child(1){left:22%;top:48%;animation:centerCar150 6s linear infinite}.center-traffic150 i:nth-child(2){left:38%;bottom:24%;background:#ff677e;animation:centerCar150 8s linear -3s infinite}.center-traffic150 i:nth-child(3){right:25%;top:35%;background:#56dfff;animation:centerCar150 7s linear -1s infinite}
@keyframes centerCar150{0%{translate:-12px 0;rotate:0deg}50%{translate:58px 20px;rotate:18deg}100%{translate:105px -5px;rotate:-10deg}}

/* Airport on the real travel tile */
.tile-airport150{position:absolute;inset:18% 8% 28%;z-index:4;pointer-events:none}.tile-airport150 i{position:absolute;left:4%;right:4%;bottom:0;height:22%;background:#495257;border-radius:2px;box-shadow:0 2px #20272a}.tile-airport150 i::after{content:"";position:absolute;left:8%;right:8%;top:48%;border-top:1px dashed #fff}.tile-airport150 b{position:absolute;right:6%;bottom:23%;width:28%;height:42%;background:linear-gradient(#d9e7e8,#728b91);box-shadow:2px 3px #33464c;border-radius:2px}.tile-airport150 em{position:absolute;left:17%;bottom:22%;width:36%;height:10%;border-radius:99px;background:#fff;box-shadow:0 1px 2px #0005}

/* Aircraft crossing the board on real travel state */
.board-plane150{position:absolute;left:0;top:0;width:72px;height:42px;z-index:260;pointer-events:none;opacity:0;transform-style:preserve-3d;filter:drop-shadow(0 18px 7px #0008) drop-shadow(0 0 9px #d9f8ff88)}
.plane-fuselage150{left:8%;right:8%;top:42%;height:24%}.plane-fuselage150::before{content:"";position:absolute;left:-8%;top:-35%;width:14%;height:170%;border-radius:70% 10% 10% 70%;background:#eaf7fb}.plane-fuselage150::after{content:"";position:absolute;right:-8%;top:12%;border-left:12px solid #b8d5e2;border-top:4px solid transparent;border-bottom:4px solid transparent}
.plane-wing150{position:absolute;left:31%;top:2%;width:41%;height:91%;background:linear-gradient(90deg,#eaf6fb,#9ebdca);clip-path:polygon(0 39%,100% 0,78% 47%,100% 100%,0 62%)}.plane-wing150.b{transform:scaleY(-1);opacity:.45}.plane-tail150{position:absolute;right:14%;top:15%;width:15%;height:55%;background:#d9edf4;clip-path:polygon(0 100%,100% 0,100% 100%)}.plane-shadow150{position:absolute;left:15%;right:15%;bottom:-14px;height:9px;border-radius:50%;background:#0006;filter:blur(5px)}
.board-plane150.flying150{opacity:1;animation:planeFlight150 1.5s cubic-bezier(.18,.72,.25,1) both}
@keyframes planeFlight150{0%{transform:translate3d(var(--x0),var(--y0),70px) translate(-50%,-50%) rotate(-12deg) scale(.55);opacity:0}12%{opacity:1}52%{transform:translate3d(var(--xm),var(--ym),180px) translate(-50%,-50%) rotate(7deg) scale(1.22)}88%{opacity:1}100%{transform:translate3d(var(--x1),var(--y1),70px) translate(-50%,-50%) rotate(2deg) scale(.62);opacity:0}}

/* Ambient cars live on the physical board perimeter. */
.board-traffic150{position:absolute;inset:10%;z-index:1;pointer-events:none;overflow:hidden;border-radius:15%;opacity:.78}.car150{position:absolute;width:18px;height:9px;border-radius:4px;background:linear-gradient(#ffdb55,#d47d18);box-shadow:0 3px 3px #0007,6px 0 8px #ffd54b33}.car150::before,.car150::after{content:"";position:absolute;bottom:-2px;width:4px;height:4px;border-radius:50%;background:#17212a}.car150::before{left:3px}.car150::after{right:3px}.car150 b{position:absolute;inset:2px 5px 3px;background:#baf1ff;border-radius:2px}.car150.c1{left:-6%;top:7%;animation:roadTop150 9s linear infinite}.car150.c2{right:8%;top:-5%;background:linear-gradient(#ff6d83,#a82942);animation:roadRight150 11s linear -3s infinite}.car150.c3{right:-6%;bottom:8%;background:linear-gradient(#62e5ff,#167aa9);animation:roadBottom150 10s linear -5s infinite}.car150.c4{left:6%;bottom:-5%;background:linear-gradient(#8df26d,#3b9c34);animation:roadLeft150 12s linear -7s infinite}
@keyframes roadTop150{to{translate:1160% 0}}@keyframes roadBottom150{to{translate:-1160% 0}}@keyframes roadRight150{to{translate:0 950%;rotate:90deg}}@keyframes roadLeft150{to{translate:0 -950%;rotate:90deg}}
[data-board-layout="future"] .car150{box-shadow:0 0 10px currentColor,0 3px 3px #000}.worldboards-v150[data-time="night"] .board-traffic150,.worldboards-v150[data-time="neon"] .board-traffic150{opacity:1;filter:saturate(1.3) brightness(1.1)}

/* Arrival transition between cities */
.city-route150{position:fixed;left:50%;top:17%;z-index:240;width:min(520px,78vw);transform:translate(-50%,-18px) scale(.94);opacity:0;pointer-events:none;padding:12px 24px 14px;border-radius:18px;border:1px solid #f8d77888;background:linear-gradient(180deg,#0b3150f5,#04192cf6);box-shadow:0 16px 36px #00101e99,inset 0 0 0 1px #fff2;backdrop-filter:blur(12px);text-align:center;transition:.25s ease}.city-route150.show150{opacity:1;transform:translate(-50%,0) scale(1)}.city-route150>small{color:#63eaff;font-size:10px;font-weight:900}.city-route150>div:last-child{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:4px;color:#fff}.city-route150 b{font-size:19px;color:#fff3b1}.city-route150 strong{font-size:24px;color:#ffd85c}.route-map150{height:18px!important;position:relative;margin-bottom:4px!important}.route-map150>i{position:absolute;left:22%;right:22%;top:50%;height:2px;background:linear-gradient(90deg,#3be7ff,#ffd85c);box-shadow:0 0 8px #49e8ff;transform-origin:right;animation:routeDraw150 .75s ease both}.route-dot150{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;background:#58edff;box-shadow:0 0 12px #4eeaff;translate:0 -50%}.route-dot150.from{left:20%}.route-dot150.to{right:20%;background:#ffe070;box-shadow:0 0 12px #ffe070}@keyframes routeDraw150{from{transform:scaleX(.05);opacity:.2}to{transform:scaleX(1);opacity:1}}
.tile.arrival150 .tile-3d{animation:arrivalTile150 1s cubic-bezier(.15,.85,.2,1)!important}@keyframes arrivalTile150{0%,100%{filter:none}32%{transform:translateZ(26px) translateY(-8px) scale(1.09);filter:brightness(1.35);box-shadow:0 10px 0 #6b4215,0 0 0 5px #fff8bd,0 0 35px #59eaff}}
.board-scene.city-pan150{animation:cityPan150 .85s cubic-bezier(.18,.85,.2,1)}@keyframes cityPan150{0%,100%{filter:none}40%{filter:brightness(1.09) saturate(1.15);transform:translate3d(var(--follow-x),calc(var(--cam-y) + var(--follow-y) - 8px),0) rotateX(calc(var(--cam-rx) + var(--parallax-x))) rotateY(calc(var(--cam-ry-base) + var(--parallax-y) + var(--orbit-y) + 3deg)) rotateZ(calc(var(--cam-rz) + var(--follow-rz) + var(--orbit-z))) scale(calc(var(--cam-scale) * 1.025))}}

/* map-shape badge */
.map-shape150{position:fixed;top:94px;left:50%;translate:-50% 0;z-index:46;display:flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid #f1c85f77;border-radius:999px;background:#071d31d9;box-shadow:0 4px 10px #00142177;color:#fff;pointer-events:none;backdrop-filter:blur(8px)}.map-shape150>i{font-style:normal;font-size:12px}.map-shape150 small{display:block;color:#71dded;font-size:6px;line-height:1}.map-shape150 b{display:block;color:#ffe784;font-size:8px;line-height:1.25}
.layout-preview150{display:grid!important;grid-template-columns:40px 1fr!important;grid-template-rows:auto auto!important;gap:0 7px!important;align-items:center!important;margin-top:7px!important;padding-top:6px!important;border-top:1px solid #ffffff12!important;text-align:right!important}.layout-preview150>i{grid-row:1/3;width:38px;height:25px;border:2px solid #e9c35c;border-radius:5px;background:#0a2b45;box-shadow:inset 0 0 0 3px #0fb4cd22;aspect-ratio:var(--c)/var(--r)!important;justify-self:center}.layout-preview150>b{font-size:8px!important;color:#fff2a0!important}.layout-preview150>small{font-size:7px!important;color:#8fdce9!important}

/* Responsive: keep real map ratios but fit safely into the mobile stage. */
@media(max-width:1050px){
  .worldboards-v150 .board-scene{max-width:calc(100vw - 10px)!important;max-height:calc(100svh - 210px)!important;width:min(calc(100vw - 10px),760px)!important;height:auto!important}
  .map-shape150{top:74px}.city-route150{top:12%;width:min(430px,88vw);padding:9px 14px}.city-route150 b{font-size:14px}.world-interior150{inset:11% 9% 9%}
}
@media(max-width:650px){
  .worldboards-v150[data-board-layout="egypt"] .board-scene{width:min(calc((100svh - 195px)*.636),calc(100vw - 8px))!important}
  .worldboards-v150[data-board-layout="gulf"] .board-scene,.worldboards-v150[data-board-layout="future"] .board-scene,.worldboards-v150[data-board-layout="europe"] .board-scene{width:calc(100vw - 8px)!important}
  .worldboards-v150 .landmark150{transform:scale(.7)}.worldboards-v150 .mini-airport150{opacity:.75}.board-traffic150{display:none}.map-shape150{display:none}.city-route150{top:9%;width:86vw}.city-route150 b{font-size:12px}.city-route150 strong{font-size:17px}
}
@media(prefers-reduced-motion:reduce){.board-plane150,.car150,.center-traffic150 i,.tile.arrival150 .tile-3d,.board-scene.city-pan150,.board-scene.layout-switch150{animation:none!important}.city-route150{transition:none!important}}
