:root{font-family:Inter,Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#eef3ff;background:#17233c;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #b9f3df;outline-offset:5px}#scene{position:fixed;inset:0;touch-action:none;background:radial-gradient(ellipse at 64% 40%,#41516b,#17233c 75%)}#scene canvas{display:block;width:100%;height:100%}header{position:absolute;top:32px;left:4vw;right:4vw;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:20px;font-weight:800;letter-spacing:3px;pointer-events:auto}.brand-mark{font-size:40px;font-weight:400;color:#c2d9ce}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:6px;color:#a8b7ce}.guest{font-size:10px;letter-spacing:1.5px;border:1px solid #92a4c13b;border-radius:30px;padding:12px 16px;color:#d0d9e9}.guest i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#b8c8dd;margin:0 8px}.intro{position:absolute;left:6vw;top:24vh;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:2px;color:#bdcdde}.intro h1{font-size:clamp(30px,3.7vw,55px);line-height:1.3;font-weight:650;letter-spacing:-2.5px;margin:22px 0}.lead{font-size:13px;line-height:1.9;color:#acbbcf}.count{display:flex;gap:14px;align-items:center;margin-top:35px}.count b{font-size:36px;font-weight:300;color:#e5efee}.count span{font-size:8px;letter-spacing:1.7px;line-height:1.8}.count small{font-size:10px;letter-spacing:0;color:#8e9eb4}.destination{position:absolute;right:4vw;bottom:10vh;width:300px;padding:24px;background:#142039d9;backdrop-filter:blur(18px);border:1px solid #a6bbd52b;border-radius:20px;box-shadow:0 12px 40px #0b152a20}.card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.card-top .eyebrow{font-size:7px;letter-spacing:1.4px}.badge{font-size:9px;color:#d3d9e3}.destination h2{font-size:24px;font-weight:600;margin:19px 0 6px}.english{font-size:8px;letter-spacing:1.3px;color:#98aec9;margin:0 0 18px}#approach{font-size:11px;line-height:1.6;color:#b4c2d5;min-height:18px}.enter{display:flex;align-items:center;justify-content:space-between;text-decoration:none;background:#d7e9e1;color:#1d3540;padding:15px 17px;border-radius:10px;font-size:12px;font-weight:650;min-height:46px;transition:background .2s}.enter:hover{background:#f0fff8}.enter.near{box-shadow:0 0 0 3px #afdfc677}.server-note{font-size:9px;line-height:1.7;color:#98abc1;margin:12px 0 0}.movement{position:absolute;bottom:12vh;left:4vw;display:flex;align-items:center;gap:15px}.movement>span{font-size:10px;line-height:1.8;color:#99adc6}.dpad{display:grid;grid-template:repeat(2,44px)/repeat(3,44px);gap:5px}.dpad button{border:1px solid #b5c9df40;background:#22334b99;color:#e5eefb;border-radius:11px;touch-action:none;font-size:20px;cursor:pointer}.dpad button:active,.dpad button.active{background:#4f6b79}.dpad button:first-child{grid-column:2}.dpad button:nth-child(2){grid-column:1;grid-row:2}.dpad button:nth-child(3){grid-column:2;grid-row:2}.dpad button:nth-child(4){grid-column:3;grid-row:2}#reset{position:absolute;bottom:5vh;right:4vw;background:transparent;border:0;color:#afc0d5;min-height:44px;font-size:11px;cursor:pointer}footer{position:absolute;bottom:3vh;left:4vw;font-size:9px;color:#8fa0ba;max-width:70vw;line-height:1.6}#status{position:absolute;top:100px;left:50%;transform:translateX(-50%);text-align:center;font-size:11px;color:#dce6f5;max-width:80vw}.no-script{position:absolute;top:100px;left:5vw;background:#17233c;padding:12px;font-size:12px}@media(max-width:760px){header{top:18px;left:22px;right:22px}.brand{font-size:16px;gap:8px}.brand-mark{font-size:30px}.brand small{font-size:6px}.guest{font-size:8px;padding:9px 11px}.intro{left:24px;top:105px}.intro .eyebrow{font-size:7px;letter-spacing:1.5px}.intro h1{font-size:29px;line-height:1.3;letter-spacing:-1.5px;margin:14px 0}.lead,.count{display:none}.destination{right:18px;bottom:72px;width:calc(100% - 190px);max-width:280px;min-width:178px;padding:16px;border-radius:16px}.card-top .eyebrow{font-size:6px;letter-spacing:.6px}.badge{display:none}.destination h2{font-size:20px;margin:14px 0 5px}.english{font-size:6px;letter-spacing:.8px;margin-bottom:10px}#approach{font-size:10px}.enter{padding:12px 10px;font-size:10px}.server-note{font-size:8px}.movement{left:18px;bottom:100px;display:block}.movement>span{display:block;font-size:8px;margin-top:8px}.dpad{grid-template:repeat(2,44px)/repeat(3,44px);gap:3px}footer{left:18px;bottom:19px;max-width:75vw;font-size:7px}#reset{right:15px;bottom:19px;font-size:9px}#status{top:76px;width:80vw;font-size:9px}}@media(max-height:600px) and (min-width:761px){.intro{top:20vh}.intro h1{font-size:32px}.count{display:none}.movement{bottom:12vh}.destination{bottom:12vh}}@media(prefers-reduced-motion:reduce){*{transition:none!important}} 
@media(max-width:360px){.destination{right:12px;width:calc(100% - 164px);min-width:0;padding:12px}.movement{left:12px}.dpad{grid-template:repeat(2,40px)/repeat(3,40px)}.destination h2{font-size:18px}.card-top .eyebrow{font-size:5px}.server-note{font-size:7px}.enter{padding:11px 8px;font-size:9px}header{left:14px;right:14px}.intro{left:18px}}

#browse-universities{pointer-events:auto;background:#263c52;border:1px solid #afc6d24d;color:#e9f2f7;padding:12px 16px;border-radius:11px;min-height:44px;font-size:12px;cursor:pointer}#catalog{width:min(560px,calc(100vw - 32px));max-height:82dvh;overflow:auto;border:1px solid #a3bfd547;border-radius:20px;padding:24px;color:#ecf2fa;background:#172b43}#catalog::backdrop{background:#071321bb;backdrop-filter:blur(5px)}.catalog-heading{display:flex;justify-content:space-between;align-items:center}.catalog-heading h2{margin:0;font-size:22px}#close-catalog{color:inherit;background:transparent;border:0;font-size:28px;width:44px;height:44px;cursor:pointer}#catalog p{font-size:12px;line-height:1.7;color:#b3c3d4}#catalog label{display:block;font-size:12px;margin:20px 0 8px}#catalog-search{width:100%;padding:12px;background:#0e2135;border:1px solid #8fa7bf70;border-radius:10px;color:inherit;font:inherit}#catalog-list{padding:0;list-style:none}#catalog-list li{display:grid;grid-template-columns:1fr auto;gap:7px 16px;padding:17px 0;border-bottom:1px solid #91abc330}#catalog-list strong{font-size:16px}#catalog-list span,#catalog-list small{grid-column:1;color:#a9bbcf;font-size:11px}#catalog-list a{grid-column:2;grid-row:1/3;align-self:center;padding:10px 15px;background:#d7e9e1;color:#1d3540;border-radius:10px;text-decoration:none;font-size:12px}#catalog .catalog-note{font-size:10px}@media(max-width:760px){#browse-universities{font-size:10px;padding:10px 12px}#catalog{padding:20px}}

.hub-joystick{width:136px;height:136px;position:relative;border:1px solid #c2d7e659;border-radius:50%;background:radial-gradient(circle,#304e63b8,#142a40b8);box-shadow:inset 0 0 25px #07152444,0 8px 24px #07152430;touch-action:none;user-select:none;cursor:grab;outline-offset:5px}.hub-joystick:focus-visible{outline:3px solid #b9f3df}.hub-joystick:active{cursor:grabbing}.hub-joystick-thumb{position:absolute;left:50%;top:50%;width:52px;height:52px;border-radius:50%;background:#c7dedee8;border:1px solid #effaffb8;box-shadow:0 4px 10px #08142555;transform:translate(-50%,-50%);pointer-events:none}.joystick-cross{position:absolute;inset:20px;border:1px solid #aac6d225;border-radius:50%;pointer-events:none}.joystick-cross:before,.joystick-cross:after{content:"";position:absolute;background:#aac6d225}.joystick-cross:before{width:1px;inset:0 auto 0 50%}.joystick-cross:after{height:1px;inset:50% 0 auto 0}@media(max-width:760px){.movement{left:max(14px,env(safe-area-inset-left));bottom:max(92px,calc(env(safe-area-inset-bottom) + 80px))}.hub-joystick{width:126px;height:126px}.hub-joystick-thumb{width:48px;height:48px}.movement>span{font-size:8px;max-width:145px}}

.hub-joystick.is-active{border-color:#d0f5e5;box-shadow:inset 0 0 24px #b0ded51c,0 0 0 3px #b9e7d51b}@media(max-width:760px){footer{max-width:calc(100vw - 175px);bottom:max(17px,env(safe-area-inset-bottom));line-height:1.4}#reset{right:15px;bottom:max(17px,env(safe-area-inset-bottom))}}

@media(max-height:720px){.count{display:none}}@media(max-width:420px){header .guest{display:none}}

[hidden]{display:none!important}#hub-map{display:block;width:140px;height:140px;margin:8px auto 10px;border-radius:50%}.destination .enter{width:100%;border:0;cursor:pointer}.destination{padding:20px}.destination h2{margin:12px 0 5px}.destination .english{margin-bottom:8px}.destination #approach{margin:8px 0;font-size:10px}.destination .server-note{margin-top:8px}@media(max-width:760px){.destination{width:clamp(122px,38vw,154px);min-width:0;padding:12px;right:12px;bottom:90px}.destination h2{font-size:15px;line-height:1.3;margin:7px 0}.destination .english{display:none}#hub-map{width:100%;height:auto;max-width:110px;aspect-ratio:1}.destination #approach{font-size:8px;line-height:1.4}.destination .enter{min-height:38px;padding:10px 8px;font-size:10px}.destination .server-note{font-size:7px;line-height:1.4}.card-top .eyebrow{font-size:5px;letter-spacing:.3px}.intro h1{font-size:26px;letter-spacing:-1.1px}}@media(max-height:600px) and (min-width:761px){#hub-map{width:105px;height:105px}.destination{padding:16px;bottom:8vh}.destination .server-note{font-size:8px}.destination h2{font-size:20px}}

.intro{transition:opacity .2s}.exploring .intro{opacity:0;pointer-events:none}@media(max-width:960px){.destination{right:12px;top:92px;bottom:auto;width:112px;min-width:0;padding:6px;border-radius:14px}.destination .card-top,.destination h2,.destination .english,.destination #approach,.destination .enter,.destination .server-note{display:none!important}#hub-map{width:100px;height:100px;max-width:none;margin:0}.intro{max-width:calc(100vw - 160px)}}@media(max-width:760px){.destination{top:76px}.intro h1{max-width:calc(100vw - 160px)}}@media(max-height:420px){.intro{display:none}}@media(max-height:600px) and (min-width:961px){#hub-map{width:90px;height:90px}.destination .server-note{display:none}.destination .enter{min-height:40px;padding:12px}}@media(prefers-reduced-motion:reduce){.intro{transition:none}}

.catalog-actions{grid-column:2;grid-row:1/3;display:flex;gap:7px;align-items:center}.catalog-actions button,.catalog-pages button{border:1px solid #8fa7bf70;border-radius:10px;color:#dce9e1;background:#263c52;padding:10px;min-height:40px;cursor:pointer;font-size:11px}#catalog-list .catalog-actions a{display:block}.catalog-pages{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px}.catalog-pages span{font-size:11px;color:#a9bbcf}.catalog-pages button:disabled{opacity:.4;cursor:default}@media(max-width:420px){.catalog-actions{flex-direction:column;align-items:stretch}.catalog-actions button{font-size:10px;padding:8px}.catalog-actions a{text-align:center}}

#catalog-list .university-color{display:inline-block;font-size:inherit;width:.8em;height:.8em;margin-right:.5em;border:2px solid #fff;border-radius:50%;vertical-align:-.05em;box-shadow:0 0 0 1px #8da6b5}

/* Clear daytime atmosphere, with readable dark text and soft white panels. */
:root{color:#17384b;background:#8ed0ff}#scene{background:linear-gradient(180deg,#3b98ed 0%,#75bcf6 56%,#92d1ff 100%)}
.brand-mark{color:#214b62}.brand small,.guest,.eyebrow,.lead,.count small,.movement>span,footer,#reset{color:#214b62}.count b{color:#17384b}.guest{background:#f8fdffb8;border-color:#577d9655}.guest i{background:#56846b}
.intro{text-shadow:0 1px 8px #ffffff80}.destination{background:#f5fbfff0;color:#17384b;border-color:#7fa7b544;box-shadow:0 12px 40px #3e627527}.destination .eyebrow,.destination .badge,.destination .english,.destination #approach,.destination .server-note{color:#365c6e}
#status{color:#17384b;background:#f4fcffdc;padding:7px 12px;border-radius:10px}#status:empty{display:none}.no-script{background:#f5fbff;color:#17384b}
#catalog{color:#17384b;background:#f6fbff;border-color:#89b0c2}#catalog::backdrop{background:#14394c66}#catalog p,#catalog-list span,#catalog-list small,#catalog .catalog-note,.catalog-pages span{color:#3e6476}#catalog-search{background:#ffffff;color:#17384b;border-color:#7b9eaf}.catalog-actions button,.catalog-pages button{background:#e6f1f5;color:#234b60;border-color:#7596a8}
#browse-universities{background:#f7fcfff0;color:#234b60;border-color:#7b9eaf}.enter{background:#254f64;color:#fff}.enter:hover{background:#173c51}#catalog-list a{background:#254f64;color:#fff}
.brand,.intro,.brand-mark,.brand small,.guest,.eyebrow,.lead,.count small,.movement>span,footer,#reset{color:#102a36}.movement>span,footer{background:#f7fcffcc;border-radius:8px;padding:4px 7px}footer{max-width:min(680px,70vw)}.intro{text-shadow:0 1px 7px #ffffffc0}.destination .eyebrow{color:#365c6e}

/* Walking guidance stays readable beside the map, including narrow screens. */
#hub-map{border-radius:12px}#wayfinding{padding:10px 0 2px}#wayfinding-message{color:#17384b;font-size:12px;line-height:1.55;margin:0 0 8px;overflow-wrap:anywhere}#cancel-wayfinding{width:100%;min-height:44px;border:1px solid #7b9eaf;border-radius:10px;background:#fff;color:#234b60;padding:8px 10px;font-size:11px;cursor:pointer}.catalog-actions button,.catalog-pages button{min-height:44px}
@media(max-width:960px){#wayfinding{position:absolute;right:0;top:calc(100% + 8px);width:min(260px,calc(100vw - 24px));padding:10px 12px;background:#f5fbfff5;border:1px solid #7fa7b566;border-radius:12px;box-shadow:0 5px 18px #3e627520}#wayfinding-message{font-size:11px;margin-bottom:7px}#cancel-wayfinding{font-size:10px}}@media(max-height:420px){#wayfinding{width:210px;padding:8px}#wayfinding-message{font-size:10px}}
