/* Oddusee H.B.C.U Globe — rgb() colors only. Text is light on the dark stage, dark only on gold buttons. */
.hx-app .hero.hxg-hero{padding-top:18px;grid-template-columns:1.3fr 1fr}
.hx-app .hxg-stage{grid-column:1/-1;position:relative;border-radius:18px;overflow:hidden;margin:0 0 6px;border:1px solid rgb(58,58,68);background:radial-gradient(ellipse at 50% 42%,rgb(24,26,48) 0%,rgb(11,11,20) 58%,rgb(5,5,10) 100%);color:rgb(246,243,236);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
.hx-app .hxg-stage *{box-sizing:border-box}

/* flat map (first paint, no-WebGL, reduced motion, weak phones) */
.hx-app .hxg-flat{position:relative}
.hx-app .hxg-flat-map{position:relative;aspect-ratio:65/35;background-repeat:no-repeat;background-size:553.85% 514.29%;background-position:18.64% 27.59%;background-color:rgb(14,22,40)}
.hx-app .hxg-flat-map::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(5,5,10,.35),rgba(5,5,10,.05) 30%,rgba(5,5,10,.05) 70%,rgba(5,5,10,.55))}
.hx-app .hxg-dot{position:absolute;z-index:1;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--pin,rgb(242,207,116));box-shadow:0 0 0 2px rgba(0,0,0,.5),0 0 10px var(--pin,rgb(242,207,116));pointer-events:none}
.hx-app .hxg-dot.on{width:16px;height:16px;margin:-8px 0 0 -8px;background:rgb(255,255,255)}

/* 3D */
.hx-app .hxg-canvas{display:none}
.hx-app .hxg-stage.hxg-3d{height:clamp(440px,66vh,660px)}
.hx-app .hxg-3d .hxg-flat{display:none}
.hx-app .hxg-3d .hxg-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab}
.hx-app .hxg-3d.hxg-over .hxg-canvas{cursor:pointer}
.hx-app .hxg-3d.hxg-drag .hxg-canvas{cursor:grabbing}
.hx-app .hxg-flat-map{cursor:default}
.hx-app .hxg-stage.hxg-over .hxg-flat-map{cursor:pointer}

/* top bar: label + search + 3D button */
.hx-app .hxg-top{position:absolute;left:12px;right:12px;top:12px;z-index:4;display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;pointer-events:none}
.hx-app .hxg-top > *{pointer-events:auto}
.hx-app .hxg-label{background:rgba(10,10,18,.8);border:1px solid rgb(70,70,84);border-radius:20px;padding:7px 13px;font-size:13px;font-weight:700;letter-spacing:.02em;color:rgb(246,243,236)}
.hx-app .hxg-label b{color:rgb(242,207,116)}
.hx-app .hxg-tools{display:flex;gap:8px;align-items:center}
.hx-app .hxg-find input{width:min(250px,56vw);font:inherit;font-size:16px;background:rgba(10,10,18,.88);color:rgb(246,243,236);border:1px solid rgb(96,96,112);border-radius:20px;padding:7px 14px;outline:none}
.hx-app .hxg-find input::placeholder{color:rgb(196,191,182)}
.hx-app .hxg-find input:focus{border-color:rgb(220,168,62);box-shadow:0 0 0 2px rgba(220,168,62,.35)}
.hx-app .hxg-3dbtn{background:rgba(10,10,18,.88);color:rgb(242,207,116);border:1px solid rgb(220,168,62);border-radius:20px;padding:8px 13px;font:800 12px/1 inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.hx-app .hxg-3dbtn[hidden]{display:none}

/* zoom */
.hx-app .hxg-zoom{position:absolute;right:12px;bottom:12px;z-index:4;display:none;flex-direction:column;gap:6px}
.hx-app .hxg-3d .hxg-zoom{display:flex}
.hx-app .hxg-zoom button{width:40px;height:40px;border-radius:50%;background:rgba(10,10,18,.88);color:rgb(246,243,236);border:1px solid rgb(96,96,112);font:700 22px/1 Arial,sans-serif;cursor:pointer;padding:0}
.hx-app .hxg-zoom button:hover,.hx-app .hxg-zoom button:focus-visible{border-color:rgb(220,168,62);color:rgb(242,207,116)}

/* help line */
.hx-app .hxg-hint{position:absolute;left:14px;right:66px;bottom:14px;z-index:3;margin:0;font-size:13px;line-height:1.35;color:rgb(226,222,214);text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 12px rgba(0,0,0,.8);pointer-events:none}

/* hover label */
.hx-app .hxg-tip{position:absolute;z-index:5;transform:translate(-50%,calc(-100% - 12px));background:rgb(13,9,16);color:rgb(246,243,236);border:1px solid rgb(201,162,75);border-radius:8px;padding:5px 9px;font-size:13px;font-weight:700;white-space:nowrap;pointer-events:none;box-shadow:0 8px 20px rgba(0,0,0,.5)}
.hx-app .hxg-tip[hidden]{display:none}
.hx-app .hxg-tip i{font-style:normal;color:rgb(242,207,116);font-weight:600}

/* school card */
.hx-app .hxg-card{position:absolute;z-index:6;width:min(300px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;background:rgb(13,9,16);border:1px solid rgb(201,162,75);border-radius:12px;padding:14px 14px 12px;box-shadow:0 18px 40px rgba(0,0,0,.6);color:rgb(246,243,236)}
.hx-app .hxg-card[hidden]{display:none}
.hx-app .hxg-x{position:absolute;right:6px;top:4px;background:none;border:0;color:rgb(226,222,214);font:400 24px/1 Arial,sans-serif;cursor:pointer;padding:4px 8px}
.hx-app .hxg-x:hover{color:rgb(242,207,116)}
.hx-app .hxg-card-h{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgb(242,207,116);margin:0 24px 8px 0}
.hx-app .hxg-sch{display:flex;flex-direction:column;gap:2px;padding:0 0 10px}
.hx-app .hxg-sch + .hxg-sch{border-top:1px solid rgb(58,58,68);padding-top:10px}
.hx-app .hxg-sch strong{font-size:16px;line-height:1.2;color:rgb(255,255,255);padding-right:22px}
.hx-app .hxg-sch span{font-size:13px;color:rgb(214,209,200)}
.hx-app .hxg-card a.hxg-fly{align-self:flex-start;margin-top:8px;background:rgb(220,168,62);color:rgb(20,20,15);border-radius:20px;padding:8px 14px;font-size:13px;font-weight:800;text-decoration:none}
.hx-app .hxg-card a.hxg-fly:hover,.hx-app .hxg-card a.hxg-fly:focus-visible{background:rgb(242,207,116);color:rgb(20,20,15)}
.hx-app .hxg-more{font-size:12px;color:rgb(214,209,200)}

/* boarding overlay + jet (lives on <body>) */
.hxg-board{position:fixed;inset:0;z-index:1000001;background:rgba(6,4,8,.6)}
.hxg-board[hidden]{display:none}
.hxg-board-card{position:absolute;top:16%;left:50%;transform:translateX(-50%);background:rgb(13,9,16);border:1px solid rgb(215,166,63);border-radius:12px;padding:16px 22px 14px;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:min(88vw,300px);max-width:92vw;box-shadow:0 20px 60px rgba(0,0,0,.65);text-align:center;font-family:"Archivo",-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
.hxg-eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:rgb(242,207,116)}
.hxg-board-card strong{font-weight:900;font-size:24px;letter-spacing:.01em;text-transform:uppercase;color:rgb(246,243,236);line-height:1.1}
.hxg-skip{margin-top:8px;background:none;border:1px solid rgb(96,96,112);color:rgb(246,243,236);font:700 12px/1 inherit;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border-radius:20px;cursor:pointer}
.hxg-skip:hover{border-color:rgb(215,166,63);color:rgb(242,207,116)}
.hxg-jet{position:fixed;left:0;top:0;width:72px;height:72px;filter:drop-shadow(0 0 10px rgba(255,190,90,.75));will-change:transform;pointer-events:none}
.hxg-jet-fire{transform-box:fill-box;transform-origin:50% 0;animation:hxg-fire .12s infinite alternate}
@keyframes hxg-fire{from{opacity:.55;transform:scaleY(.75)}to{opacity:1;transform:scaleY(1.3)}}
@media(prefers-reduced-motion:reduce){.hxg-jet-fire{animation:none}}

/* phones */
@media(max-width:640px){
	.hx-app .hero.hxg-hero{grid-template-columns:1fr;padding-top:12px}
	.hx-app .hxg-stage{border-radius:14px;margin-left:-8px;margin-right:-8px}
	.hx-app .hxg-stage.hxg-3d{height:min(74svh,520px)}
	.hx-app .hxg-top{left:10px;right:10px;top:10px;gap:8px}
	.hx-app .hxg-tools,.hx-app .hxg-find,.hx-app .hxg-find input{width:100%}
	.hx-app .hxg-label{display:none}
	.hx-app .hxg-hint{font-size:12px;left:12px;bottom:12px}
}
/* flat mode: the bar and the help line sit above and below the map instead of over it */
.hx-app .hxg-stage:not(.hxg-3d) .hxg-top{position:relative;left:auto;right:auto;top:auto;padding:12px}
.hx-app .hxg-stage:not(.hxg-3d) .hxg-hint{position:relative;left:auto;right:auto;bottom:auto;padding:10px 14px 12px}
