@charset "UTF-8";
:root{font-family:"Inter","Microsoft YaHei","Malgun Gothic",system-ui,sans-serif;color:#edf9f8;background:#07131e;color-scheme:dark;--mint:#69efd0;--muted:#9ab2c1;--line:#88cabc28}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--mint);outline-offset:4px}a{color:inherit;text-decoration:none}button{color:inherit}small{color:var(--muted)}[hidden]{display:none!important}#world{position:fixed;inset:0;background:radial-gradient(ellipse at 63% 42%,#164155,#07131e 70%)}#world canvas{display:block;width:100%;height:100%;touch-action:none}#loading{position:absolute;top:45%;left:40%;font-size:13px;color:var(--muted);text-align:center;line-height:2}header{position:fixed;z-index:5;left:32px;right:32px;top:23px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:12px;letter-spacing:.1em;font-size:13px;font-weight:750}.brand small{display:block;font-size:10px;margin-top:5px;letter-spacing:.02em;font-weight:400}.mark{width:40px;height:43px;display:grid;place-items:center;color:var(--mint);border:1px solid #6ae9d062;border-radius:10px;font-size:30px;font-family:Georgia,serif;font-style:italic;background:#18363c}.header-right{display:flex;align-items:center;gap:27px;font-size:11px;line-height:1.7}.language{border:1px solid var(--line);border-radius:25px;padding:9px 15px;background:#102734a6;font-size:10px}
.welcome{position:fixed;top:116px;left:34px;z-index:2;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:.2em;color:var(--mint);font-weight:700}.welcome h1{font-size:clamp(33px,3.7vw,54px);line-height:1.17;letter-spacing:-.04em;margin:14px 0 16px}.welcome h1 span{display:block;font-size:15px;font-weight:400;color:#c1d9df;letter-spacing:-.03em;margin-top:13px}.welcome p{font-size:12px;line-height:1.8;color:#a7c1cc}.welcome p small{display:block;font-size:11px}
.directory{position:fixed;z-index:4;left:32px;top:390px;width:290px;max-height:calc(100dvh - 460px);overflow:auto;border-radius:15px;border:1px solid var(--line);background:#0b1d2de6;backdrop-filter:blur(20px);box-shadow:0 16px 50px #0003;scrollbar-width:thin}.panel-heading{padding:18px 17px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.panel-heading b{font-size:14px}.panel-heading small{font-size:10px;margin-left:6px}.sample{font:8px monospace;letter-spacing:.12em;color:#a3c9c5;border:1px solid var(--line);padding:4px 5px;border-radius:4px}.cards{padding:6px}details{border:1px solid transparent;border-radius:10px;margin:3px 0}details[open]{background:#1b464d99;border-color:#6ef2cf65}summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:36px 1fr 12px;align-items:center;gap:11px;padding:12px 9px}summary::-webkit-details-marker{display:none}.course-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#3e647c33;color:#7be7da;font-size:22px}.course-name{display:block;font-size:12px;font-weight:650}.course-ko{display:block;font-size:10px;color:var(--muted);margin-top:5px}.arrow{color:#82bcbe}.detail{padding:0 13px 12px;font-size:12px;line-height:1.7}.detail p{margin:5px 0}.detail [lang=ko]{color:var(--muted);font-size:11px}.venue,.condition{margin-top:9px;padding-top:8px;border-top:1px solid var(--line)}.venue b,.condition b{display:block;color:#95d2c6;font-size:10px}.map-link{display:none}.webgl-ready .directory .detail{display:none}
#labels{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}.building-label{position:absolute;transform:translate(-50%,-100%);text-align:center;white-space:nowrap;background:#081d2de0;border:1px solid #70c5c757;padding:7px 12px;border-radius:7px;font-size:11px;box-shadow:0 5px 20px #0003}.building-label small{display:block;font-size:9px;margin-top:3px}.building-label.active{background:#90f9d9;color:#053a36;border-color:#baffec;box-shadow:0 0 30px #62ffd63b}.building-label.active small{color:#226158}.building-label::after{content:"";position:absolute;top:100%;left:50%;height:12px;width:1px;background:#79edce90}
#selected{position:fixed;z-index:4;right:28px;top:110px;width:280px;background:#0a202feF;border:1px solid #71c8c85c;border-radius:16px;padding:23px;box-shadow:0 20px 65px #0005;backdrop-filter:blur(22px)}#selected h2{font-size:21px;margin:14px 0 5px}#selected>p{font-size:12px;color:var(--muted);margin:0 0 20px}.selected-detail{font-size:12px;line-height:1.7}.selected-detail p{margin:6px 0}.selected-detail [lang=ko]{font-size:11px;color:#aec6cf}#experience{width:100%;border:0;background:var(--mint);color:#083b37;padding:13px 4px;border-radius:8px;font-size:11px;font-weight:700;margin-top:19px}
.map-tools{position:fixed;z-index:5;right:30px;bottom:88px;display:flex;gap:7px}.map-tools button{border:1px solid #729faa50;background:#0d2638de;backdrop-filter:blur(10px);border-radius:10px;height:45px;min-width:43px;font-size:21px;padding:0 12px}.map-tools button span{font-size:10px;margin-left:7px;vertical-align:middle}.map-tools button:hover,.map-tools button[aria-pressed=true]{background:#22665f}.legend{position:fixed;left:50%;transform:translateX(-50%);bottom:95px;font-size:10px;color:#b5c8ce}.legend i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--mint);margin-right:7px}.legend span{display:block;text-align:center;font-size:9px;margin-top:5px;color:#7599a7}footer{position:fixed;left:32px;right:32px;bottom:18px;display:flex;justify-content:space-between;align-items:end;gap:20px;font-size:9px;color:#8eacb9;line-height:1.8;z-index:3}footer small{font-size:9px}.gesture{text-align:center}dialog{max-width:480px;width:calc(100% - 36px);border:1px solid #66d1b580;background:#102736;color:#e5f9f2;padding:30px;border-radius:20px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#020c18b8;backdrop-filter:blur(8px)}dialog h2{font-size:24px;line-height:1.5}dialog p{font-size:13px;color:#b1c9ce;line-height:1.8}.close{float:right;border:0;background:transparent;font-size:24px}.options{display:grid;gap:9px}.options button{padding:14px;border-radius:9px;border:1px solid #5fa68c66;background:#183b45;font-size:12px;text-align:left}.options button[aria-pressed=true]{border-color:var(--mint);background:#286557}output{display:block;margin:18px 0;color:var(--mint);font-size:13px;line-height:1.8}.done{border:0;background:var(--mint);color:#093d35;padding:13px 20px;border-radius:8px;width:100%;font-size:12px}
@media(max-height:800px) and (min-width:701px){.welcome{top:102px}.welcome h1{font-size:38px}.directory{top:330px;max-height:calc(100dvh - 395px)}}
@media(max-width:700px){header{left:17px;right:17px;top:16px}.mark{width:31px;height:35px;font-size:25px}.brand{font-size:10px;gap:8px}.brand small{font-size:8px}.header-right{font-size:9px}.header-right .language{display:none}.welcome{left:20px;top:91px}.welcome h1{font-size:31px;margin:10px 0}.welcome h1 br{display:none}.welcome h1 span{font-size:12px;margin-top:8px}.welcome p{display:none}.eyebrow{font-size:8px}.directory{left:12px;right:12px;width:auto;top:auto;bottom:51px;max-height:29dvh;border-radius:16px}.panel-heading{padding:12px 14px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:4px}.course-name{font-size:10px}.course-ko{font-size:9px}.course-icon{height:28px;width:28px;font-size:18px}summary{grid-template-columns:28px 1fr;gap:7px;padding:9px 6px}.arrow{display:none}.detail{grid-column:1/-1}#selected{top:auto;right:12px;left:12px;width:auto;bottom:calc(29dvh + 61px);padding:13px 16px;border-radius:13px;max-height:28dvh;overflow:auto}#selected .eyebrow{display:none}#selected h2{font-size:16px;margin:0}#selected>p{font-size:10px;margin:4px 0 9px}.selected-detail{font-size:11px}.selected-detail p{margin:2px 0}.selected-detail [lang=ko]{font-size:10px}#experience{padding:9px;margin-top:10px}.map-tools{right:13px;bottom:calc(29dvh + 71px);flex-direction:column;gap:4px}.map-tools button{height:36px;min-width:36px;padding:0 7px;font-size:18px}.map-tools button span{display:none}body.has-selection .map-tools{top:185px;bottom:auto}body.has-selection .welcome{visibility:hidden}footer{left:16px;right:16px;bottom:9px;font-size:8px;gap:4px}footer small{font-size:7px}.gesture,footer>a,.legend{display:none}.building-label{font-size:10px;padding:5px 8px}.building-label small{font-size:8px}.webgl-ready .directory .detail{display:none}#loading{left:20%;top:39%;width:60%;font-size:11px}}
.building-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:10px 11px;border-bottom:1px solid var(--line)}.building-nav button{border:1px solid #66b7ad55;border-radius:7px;background:#143442;padding:9px 3px;font-size:12px;color:#d1f6ec}.building-nav small{display:block;font-size:10px;margin-top:4px}.building-label{pointer-events:auto;font-family:inherit;color:#d8f6ee}.building-label:hover{border-color:var(--mint)}#enter-building{width:100%;margin:3px 0 13px;background:#65e6ce;color:#063831;border:0;border-radius:8px;padding:12px 5px;font-size:12px;font-weight:700}#enter-building:disabled{opacity:.5;cursor:wait}
.inside-building .welcome,.inside-building .directory,.inside-building #selected,.inside-building #labels,.inside-building .map-tools,.inside-building .legend,.inside-building footer{display:none!important}
#interior-hud{position:fixed;inset:0;pointer-events:none;z-index:6}.interior-top{position:absolute;top:100px;left:32px;right:32px;display:flex;align-items:center;gap:20px}.interior-top button{pointer-events:auto;border:1px solid #82d4bf77;border-radius:10px;padding:12px 16px;background:#082431e8;font-size:12px}.interior-top h2{margin:0;font-size:23px;text-shadow:0 2px 10px #000}.room-name{margin:5px 0 0;color:#d4ecea;font-size:13px;text-shadow:0 2px 10px #000}.interior-disclosure{position:absolute;top:166px;left:32px;padding:7px 11px;border-radius:5px;background:#092230e8;color:#a9ccc7;font-size:11px}#interior-status{position:absolute;left:20%;right:20%;top:45%;text-align:center;background:#092230ee;padding:18px;border-radius:12px}.interior-navigation{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap}.interior-navigation p{font-size:11px;background:#092230b8;border-radius:5px;padding:6px;color:#d4eeea}.interior-navigation>div{display:flex;gap:8px}.interior-navigation button{pointer-events:auto;border:1px solid #6fc5b782;border-radius:9px;padding:14px 25px;background:#0a2937e8;font-size:13px}.interior-navigation button[aria-pressed=true]{background:#75efd5;color:#103b36}.interior-navigation button:disabled{opacity:.5}
@media(max-width:700px){.building-nav{padding:7px;gap:5px}.building-nav button{padding:6px;font-size:11px}.building-nav small{margin-top:2px;font-size:9px}.directory{max-height:33dvh}#selected{bottom:calc(33dvh + 61px);max-height:28dvh}.map-tools{bottom:calc(33dvh + 71px)}#enter-building{padding:10px;font-size:11px;margin-bottom:10px}.interior-top{top:80px;left:13px;right:13px;display:block}.interior-top button{padding:10px 12px;font-size:10px;margin-bottom:12px}.interior-top h2{font-size:18px}.room-name{font-size:12px}.interior-disclosure{left:13px;top:190px;font-size:9px;max-width:calc(100% - 26px)}.interior-navigation{bottom:25px}.interior-navigation button{padding:13px 17px;font-size:11px}.interior-navigation p{font-size:10px}#interior-status{left:10%;right:10%;font-size:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.official-emblem{width:44px;height:44px;object-fit:contain}.welcome{pointer-events:none}.welcome h1{font-size:40px}.welcome p{max-width:270px}#world{background:radial-gradient(ellipse at 60% 35%,#34545b,#0b2131 80%)}.directory{top:345px;max-height:calc(100dvh - 415px)}#route-status{position:fixed;z-index:4;top:80px;left:50%;transform:translateX(-50%);padding:10px 18px;background:#082532ed;border:1px solid #68e9c966;border-radius:30px;font-size:11px;max-width:80%;text-align:center}.legend{display:none}#studio-projects{position:absolute;right:28px;top:230px;width:235px;background:#0b2533ed;border:1px solid #75dbc866;border-radius:14px;padding:18px;pointer-events:auto;display:grid;gap:10px}#studio-projects>span{font-size:9px;letter-spacing:.17em;color:var(--mint)}#studio-projects button{padding:13px;border:1px solid #89cbb455;background:#21504f;border-radius:7px;font-size:12px;text-align:left}#studio-projects small{font-size:10px;line-height:1.7}.project-stage{display:grid;gap:13px}.project-stage label{display:flex;gap:10px;align-items:center;font-size:12px;flex-wrap:wrap}.project-stage input[type=range]{flex:1;min-width:80px;accent-color:#74efd0}.project-stage input[type=checkbox]{width:20px;height:20px;accent-color:#74efd0}.project-stage select{padding:8px;background:#214250;color:white;border:1px solid #74efd055;border-radius:5px}.project-scene{height:175px;background:#132c3b;border:1px solid #84c4b940;border-radius:12px;position:relative;overflow:hidden}.smart-room{background:linear-gradient(130deg,#1c3540,#10232d);transition:background .3s}.studio-window{position:absolute;left:24px;top:23px;width:70px;height:70px;background:rgba(165,226,231,var(--daylight));border:5px solid #68848a}.studio-table{position:absolute;left:20%;bottom:25px;width:65%;height:25px;transform:skew(-20deg);background:#8f7155;box-shadow:0 15px #1e252c}.studio-lamp{position:absolute;top:0;left:55%;width:65px;height:28px;background:#53686b;border-radius:0 0 50% 50%}.lights-on .studio-lamp{background:#f5e3b2;box-shadow:0 35px 60px 32px #e5ca7b55}.lights-on{background:linear-gradient(130deg,#3c5656,#23403d)}.studio-screen{position:absolute;left:45%;top:70px;background:#102635;border:3px solid #668f93;color:var(--mint);padding:10px;font:11px monospace}.sensor-reading{position:absolute;bottom:7px;left:12px;font:8px monospace;color:#b3d9d4}.project-stage pre{margin:0;padding:14px;background:#071c29;border-radius:8px;font-size:11px;color:#8deace;overflow:auto}.project-readout{font-size:12px;line-height:1.8;color:#a3efdc;min-height:42px}.project-note{font-size:10px!important}.data-scene{padding:14px 18px 40px;height:220px}.data-scene>span{font:9px monospace;letter-spacing:.2em;color:#9ec3ca}.data-scene>small{position:absolute;bottom:7px;font-size:9px}.data-bars{display:flex;gap:24px;align-items:end;height:120px;margin-top:10px}.data-bars>div{flex:1;height:100%;position:relative;display:flex;align-items:end}.data-bars i{display:block;width:100%;background:linear-gradient(#8cf1d2,#328995);border-radius:4px 4px 0 0;transition:height .35s}.data-bars b{position:absolute;bottom:8px;left:8px;color:#072b32;font-size:12px}.data-bars small{position:absolute;top:100%;padding-top:7px;white-space:nowrap;font-size:8px}#project-dialog{max-height:90dvh;overflow:auto}#project-dialog h2{margin:8px 0 0}#project-dialog .project-ko{margin:0}.sources-page{overflow:auto;background:#0d2533}.sources-page main{max-width:850px;margin:60px auto;padding:25px;line-height:1.9;font-size:14px}.sources-page h1{font-size:30px}.sources-page h1 small{font-size:20px}.sources-page li{margin:20px 0}.sources-page a{color:var(--mint);text-decoration:underline}
@media(max-width:700px){.official-emblem{width:35px;height:35px}.welcome{top:81px}.welcome h1{font-size:27px}.directory{top:auto;max-height:33dvh}.welcome p{display:none}#route-status{top:64px;width:90%;max-width:90%;font-size:9px;padding:8px}.interior-top h2{font-size:16px}#studio-projects{right:12px;left:12px;top:auto;bottom:128px;width:auto;padding:12px;grid-template-columns:repeat(3,1fr);gap:7px}#studio-projects>span,#studio-projects small{grid-column:1/-1}#studio-projects button{font-size:10px;padding:10px 4px;text-align:center}#studio-projects small{font-size:8px}.project-scene{height:140px}.data-scene{height:210px}.project-stage{gap:10px}#project-dialog{padding:22px}.interior-disclosure{top:183px}.sources-page main{margin:20px auto}body:not(.webgl-ready) .directory{max-height:45dvh}body:not(.webgl-ready) .cards{display:block}}
@media(max-width:700px){footer>a{display:block;white-space:nowrap;font-size:8px}}

.dorm-picker{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:11px;border-bottom:1px solid var(--line)}.dorm-picker select{min-width:0;flex:1;padding:8px;background:#173c47;color:#e4f6ee;border:1px solid #699d9955;border-radius:6px;font:inherit}.official-source{display:inline-block;color:var(--mint);font-size:10px;margin:6px 0}@media(max-width:700px){.dorm-picker{padding:6px 10px;font-size:10px}.dorm-picker select{padding:6px}.directory{max-height:35dvh}.map-tools{bottom:calc(35dvh + 71px)}#selected{bottom:calc(35dvh + 61px)}}

.welcome{text-shadow:0 2px 14px #001b27,0 1px 3px #001b27}.brand,.header-right{text-shadow:0 1px 6px #031c28}.map-tools{gap:5px}@media(max-width:700px){.map-tools{gap:3px}.map-tools button{height:32px;min-width:32px}body.has-selection .map-tools{top:130px}}

#label-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}#label-lines line{stroke:#a1e8d8;stroke-width:.8;opacity:.55}.building-label{font-size:10px;padding:4px 7px;border-radius:5px;background:#092b32ed}.building-label small{font-size:9px;margin-top:2px}.building-label::after{display:none}.context-label{background:#153b3ce8;border-color:#a2c9bd50}.building-label.active{z-index:3}
#class-invitation{position:absolute;right:28px;top:225px;width:290px;background:#f4efdfed;color:#183d3b;border:1px solid #fff8d8;border-radius:15px;padding:20px;pointer-events:auto;box-shadow:0 12px 45px #091b2133}#class-invitation .eyebrow{color:#447b70}#class-invitation h3{font-size:19px;line-height:1.55;margin:12px 0}#class-invitation p{font-size:12px;line-height:1.8}#class-invitation button{width:100%;padding:13px 8px;border:0;border-radius:8px;background:#185e52;color:#fff8e6;font-size:12px;font-weight:700}#class-invitation button:disabled{opacity:.45}#class-invitation small{display:block;color:#687e72;font-size:9px;line-height:1.5;margin-top:12px}
.robot-board{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;background:#092434;padding:12px;border-radius:10px}.robot-board span{height:36px;border:1px solid #739e9950;border-radius:4px;display:grid;place-items:center;font-size:12px;color:#9cebd7}.robot-board .obstacle{background:#76504b}.robot-board .visited{background:#276d63}.robot-board .robot-finish{background:#b9efd2;color:#163d35}.robot-commands{min-height:30px;color:var(--mint);font-size:18px;letter-spacing:3px}.robot-controls{display:flex;gap:6px}.robot-controls button,#robot-run{border:1px solid #6daf9b66;border-radius:7px;background:#234751;padding:10px;font-size:13px}.robot-controls button:last-child{font-size:10px;margin-left:auto}#robot-run{background:var(--mint);color:#163d35}
.interior-navigation{max-width:calc(100% - 24px)}.interior-navigation>div{justify-content:center}.interior-navigation button{padding:13px 20px}
@media(max-width:700px){.interior-navigation{width:calc(100% - 24px)}.interior-navigation>div{gap:5px}.interior-navigation button{flex:1;padding:12px 4px;font-size:10px}}
@media(max-width:700px){.building-label{font-size:8px;padding:3px 4px}.building-label small{font-size:7px}.context-label{font-size:8px}#class-invitation{left:12px;right:12px;top:auto;bottom:132px;width:auto;padding:13px 16px}#class-invitation h3{font-size:14px;margin:7px 0;line-height:1.4}#class-invitation p{font-size:10px;margin:7px 0;line-height:1.6}#class-invitation button{padding:10px;font-size:11px}#class-invitation small{margin-top:7px;font-size:8px}.interior-top h2{font-size:15px}.room-name{font-size:11px}.robot-board span{height:30px}}
