/* The campus stays visible; panels expand only when requested. */
#my-pass{border:1px solid #75cdb783;background:#102e3c;border-radius:22px;padding:8px 14px;font-size:12px}.has-pass #my-pass::before{content:'✓ ';color:#9df1d4}.header-right>span{display:none}
.directory{top:auto;bottom:54px;width:260px;max-height:58dvh}.panel-heading{padding:4px 12px;min-height:54px;border:0}.panel-heading b{font-size:14px}#sheet-toggle{display:block}.directory .cards,.directory .building-nav,.directory .dorm-picker{display:none}.sheet-expanded .directory{width:310px}.sheet-expanded .directory .cards{display:block}.sheet-expanded .directory .building-nav{display:grid}.sheet-expanded .directory .dorm-picker{display:flex}
#journey{width:260px;padding:4px 10px;top:94px}.journey-line{display:flex;align-items:center;justify-content:space-between;gap:8px}#current-location{font-size:13px}#journey #journey-toggle{margin:0;background:transparent;border:0;font-size:12px}#journey-extra{padding:0 4px 10px}#journey-extra p{margin-bottom:10px}
#selected{width:280px;padding:16px;max-height:65dvh;overflow:auto}#selected h2{margin:6px 0;font-size:20px}#selected>p{margin:0 0 8px}#selected>.eyebrow{display:none}#selected #enter-building,#selected #experience{margin:6px 0;padding:10px;font-size:14px}.selected-detail{display:none}.detail-expanded .selected-detail,body:not(.webgl-ready) .selected-detail{display:block}#detail-toggle{width:100%;text-align:left;border:0;border-top:1px solid #6be4c933;background:none;color:#a1d8ca;font-size:13px;margin-top:4px}.detail-expanded #detail-toggle{color:#e9fff8}
#class-toggle{position:absolute;pointer-events:auto;right:28px;bottom:36px;padding:10px 18px;border:1px solid #88dac4;background:#0c303dee;border-radius:24px;font-size:14px}body:not(.class-expanded) #class-invitation,body:not(.class-expanded) #studio-projects{display:none!important}.class-expanded #class-invitation,.class-expanded #studio-projects{top:auto;bottom:96px;max-height:55dvh;overflow:auto}
#start-panel{left:7vw;top:50%;transform:translateY(-47%);width:410px;padding:0;border:0;background:none;box-shadow:none;backdrop-filter:none;max-height:calc(100dvh - 140px);overflow:auto;scrollbar-width:thin}.arrival-copy{padding:0 8px;text-shadow:0 2px 15px #001624}#start-panel .eyebrow{font-size:11px;letter-spacing:.22em;color:#a4f6dc}#start-panel h1{font-size:37px;line-height:1.25;white-space:pre-line;margin:13px 0}#start-panel .arrival-copy p{font-size:14px;max-width:340px;line-height:1.7;margin:0 0 14px;color:#d4eee8}.start-screen #world::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#041b29dc,transparent 75%);pointer-events:none}
.pass-printer{position:relative;padding:14px 5px 8px;perspective:900px}.printer-slot{height:3px;background:#a1ffe1;box-shadow:0 0 20px #69efd0;position:absolute;top:10px;left:13%;right:13%;opacity:.7}.visitor-card{position:relative;overflow:hidden;border:1px solid #94e2cd;border-radius:18px;padding:20px;background:linear-gradient(135deg,#204b59,#0c2336 65%,#165052);box-shadow:0 18px 35px #0005;color:#eafff7;transform:rotate(-3deg);isolation:isolate}.visitor-card::before{content:'';position:absolute;inset:0;background:linear-gradient(#79e8ce0c 1px,transparent 1px),linear-gradient(90deg,#79e8ce0c 1px,transparent 1px);background-size:22px 22px;z-index:-1}.card-top{display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.09em}.card-top img{width:32px;height:32px}.card-top small{display:block;font:8px monospace;letter-spacing:.1em;color:#b0d7d2;margin-top:5px}.card-chip{margin-left:auto;font-size:27px;color:#9ff3d7}.card-art{height:94px;position:relative;margin:10px 0;overflow:hidden}.card-art>span{font-size:13px;line-height:1.15;letter-spacing:.16em;position:absolute;top:20px;left:5px;color:#aff6de}.card-art>b{font:bold 58px system-ui;letter-spacing:-.06em;position:absolute;right:3px;top:14px;color:#b1fbe015;-webkit-text-stroke:1px #b0f0d575}.card-art i{position:absolute;width:170px;height:62px;border:1px solid #7fe9cd66;border-radius:50%;right:16px;top:24px;transform:rotate(-24deg)}.card-art i:nth-child(2){transform:rotate(27deg)}.card-art i:nth-child(3){transform:rotate(85deg)}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.card-bottom strong{display:block;font-size:14px}.card-bottom small{display:block;font:10px monospace;letter-spacing:.12em;margin-top:8px;color:#a8d5ce}.pass-stamp{border:1px solid #8edac5;border-radius:5px;padding:5px 7px;font-size:10px;white-space:nowrap;transform:rotate(-7deg)}.card-stripes{margin-top:14px;width:80px;height:11px;background:repeating-linear-gradient(90deg,#a8ddcc 0 2px,transparent 2px 4px,transparent 4px 5px,#a8ddcc 5px 6px)}
#start-panel>#issue-pass{margin:20px 0 0;padding:14px 18px;border:0;background:#a4f4d9;color:#103f3c;font-size:16px;font-weight:700;text-align:center;border-radius:12px;box-shadow:0 8px 30px #001b2340}#pass-status{margin:5px 0!important;font-size:12px!important;text-align:center;min-height:17px;color:#b6f9df!important}#start-panel .pass-disclaimer{font-size:11px;line-height:1.6;text-align:center;margin:5px 10px 14px;color:#bad1d1}.start-routes{display:flex;gap:6px}.start-routes button{flex:1;padding:8px 3px;font-size:12px;background:#0b283ae6;border:1px solid #9edac24a;border-radius:9px;white-space:nowrap}#start-panel .arrival-note{font-size:10px;text-align:center;margin-top:10px;color:#c1d9d5}.issuing-pass .visitor-card{animation:print-pass 1.1s ease both}.issuing-pass .pass-printer::after{content:'';position:absolute;left:6%;right:6%;height:2px;background:#c5ffe9;box-shadow:0 0 25px #6fffd0;animation:scan-pass 1.1s linear both;pointer-events:none}.has-pass .pass-stamp{background:#a6f4db;color:#174b43}.issuing-pass #issue-pass{opacity:.8}
@keyframes print-pass{0%{transform:translateY(-20px) rotate(0);opacity:.4}60%{transform:translateY(4px) rotate(-3deg);opacity:1}100%{transform:translateY(0) rotate(-3deg)}}@keyframes scan-pass{from{top:18px}to{top:95%;opacity:0}}
#pass-dialog{width:min(450px,calc(100vw - 28px));padding:22px;max-height:90dvh;overflow:auto}#pass-dialog h2{font-size:23px;margin:10px 0 20px}#pass-dialog .visitor-card{transform:none}#pass-dialog>p{font-size:13px;line-height:1.7}#pass-create{width:100%;padding:12px;background:#a4f4d9;color:#103f3c;border:0;border-radius:8px}
@media(max-width:700px){header{align-items:center}.brand{gap:6px;font-size:9px}.brand small{font-size:8px}.header-right{max-width:190px;gap:3px}.language{padding:0;border:0}.language button,#restart,#my-pass{padding:5px 7px;font-size:11px}.header-right #restart{display:none}.official-emblem{width:29px;height:29px}#journey{top:76px;left:12px;right:auto;width:220px;display:block;padding:2px 8px}#journey-extra p{font-size:12px}.directory,.sheet-expanded .directory{left:10px;right:10px;width:auto;bottom:38px;max-height:50dvh}.panel-heading{min-height:50px}.directory .panel-heading{padding:2px 12px}#selected{left:10px;right:10px;top:auto;bottom:98px;width:auto;max-height:36dvh;padding:10px 13px}#selected h2{font-size:18px}#selected #enter-building,#selected #experience{padding:8px;margin:3px 0}#selected>p:empty{display:none}.map-tools,body.has-selection .map-tools{bottom:100px}#route-banner{top:138px}#class-toggle{right:12px;bottom:127px;font-size:13px;z-index:2}.class-expanded #class-invitation,.class-expanded #studio-projects{bottom:180px;max-height:40dvh}.interior-top{top:76px}.interior-disclosure{top:182px;max-width:calc(100% - 26px)}#start-panel{left:20px;right:20px;top:94px;transform:none;width:auto;max-height:calc(100dvh - 123px);padding:4px 0 8px}#start-panel h1{font-size:29px;white-space:normal;margin:10px 0}#start-panel .eyebrow{font-size:9px}#start-panel .arrival-copy p{font-size:13px;margin-bottom:7px}.visitor-card{padding:16px}.card-art{height:75px;margin:7px 0}.card-art>b{font-size:50px;top:4px}.card-art i{top:8px}.card-art>span{top:9px}.card-bottom strong{font-size:12px}#start-panel>#issue-pass{margin-top:15px;padding:12px;font-size:15px}#start-panel .pass-disclaimer{font-size:10px;margin-bottom:8px}#start-panel .arrival-note{font-size:10px}.start-routes button{font-size:11px}body:not(.webgl-ready).sheet-expanded .directory{max-height:58dvh}.start-screen #world::after{background:linear-gradient(90deg,#041b29c9,#041b2955)}}
#start-panel{overflow-x:hidden}.pass-printer{padding-left:10px;padding-right:10px}.arrival-copy p{word-break:keep-all}#pass-dialog .card-top small{font-size:8px}#pass-dialog .card-art>b{font-size:58px}
@media(prefers-reduced-motion:reduce){.issuing-pass .visitor-card,.issuing-pass .pass-printer::after{animation:none}}
/* Selection is part of the pass, not a second onboarding wizard. */
#pass-interests{border:0;padding:0;margin:18px 0 0;min-width:0}#pass-interests legend{font-size:15px;font-weight:650;margin-bottom:9px}.pass-interest-options{display:flex;gap:8px}.pass-interest-options label{flex:1;min-height:44px;display:flex;gap:6px;align-items:center;justify-content:center;border:1px solid #608a88;border-radius:8px;background:#0d2b39;cursor:pointer;font-size:14px}.pass-interest-options label:has(:checked){background:#b7e3d5;color:#153f38;border-color:#b7e3d5}.pass-interest-options label:has(:focus-visible){outline:2px solid #c5ffe8;outline-offset:3px}.pass-interest-options input{accent-color:#20564b;width:16px;height:16px;margin:0}.pass-interest-options label:hover{border-color:#b7e3d5}#pass-interests:disabled{opacity:.6}#start-panel #interest-note{font-size:11px;color:#c6dbd7;line-height:1.6;margin-top:8px}#start-panel #issue-pass:disabled{opacity:.5;cursor:default}#start-panel #issue-pass:not(:disabled):hover,#pass-visit:hover{background:#c2f0df}
.visitor-card{background:#143440;border-radius:14px;box-shadow:0 14px 28px #0003;transform:rotate(-1deg)}.printer-slot{box-shadow:none;background:#9dd6c3;height:2px}.card-art{height:78px}.card-art .pass-field{font-size:24px;font-weight:650;letter-spacing:-.02em;line-height:1.3;top:12px;left:0;color:#ecf6f2}.card-art .pass-building{font-family:inherit;font-size:13px;line-height:1.4;letter-spacing:0;color:#b8d6cf;-webkit-text-stroke:0;top:auto;bottom:6px;left:0;right:auto}.card-art i{border-radius:0;width:65px;height:42px;right:12px;top:16px;transform:skewY(-17deg)}.card-art i:nth-child(2){width:32px;height:26px;right:76px;top:29px;transform:skewY(-17deg)}.card-art i:nth-child(3){width:50px;height:20px;right:26px;top:5px;transform:skewY(-17deg)}.card-stripes{display:none}#pass-dialog .card-art>.pass-building{font-size:13px}#pass-dialog .card-art>.pass-field{font-size:24px}#pass-visit{width:100%;padding:12px;background:#a4e2cb;color:#153f38;border:0;border-radius:8px;margin:4px 0 12px}#pass-create{background:#153a45;color:#d4e9e4;border:1px solid #608a88}#start-panel>#issue-pass{box-shadow:none}#start-panel .arrival-copy p{max-width:none}.pass-stamp{transform:none}.card-top small{font-family:inherit!important}::selection{color:#102d33;background:#b7e3d5}#start-panel,dialog,.directory{scrollbar-color:#648e86 #102b37}.arrival-copy h1{letter-spacing:-.025em}
@media(max-width:700px){#pass-interests{margin-top:12px}#pass-interests legend{font-size:14px}.pass-interest-options{gap:6px}.pass-interest-options label{font-size:13px}.card-art{height:63px}.card-art .pass-field{font-size:22px;top:3px}.card-art .pass-building{font-size:12px;bottom:2px}.visitor-card{padding:13px 16px}#start-panel h1{font-size:27px}#start-panel .arrival-copy p{font-size:12px}#start-panel .pass-disclaimer{margin-top:6px}#start-panel>#issue-pass{margin-top:12px}#pass-status{font-size:11px!important}}
.brand{padding:7px 10px;border-radius:9px;background:#102d39ed;text-shadow:none}.arrival-copy{text-shadow:none}.brand small{color:#c8dbd8}#start-panel .pass-disclaimer,#start-panel .arrival-note{font-size:12px;color:#c5dcd8}#start-panel #interest-note{font-size:12px}#start-panel .arrival-copy p{font-size:14px}
@media(max-width:700px){header{gap:6px}.brand{padding:6px;min-width:0}.brand span{font-size:8px}.brand .official-emblem{width:25px;height:25px}.header-right{flex-shrink:0}#start-panel .pass-disclaimer,#start-panel .arrival-note,#start-panel #interest-note{font-size:11px}#start-panel .arrival-copy p{font-size:13px}}
:root{font-family:"Microsoft YaHei","Malgun Gothic",system-ui,sans-serif}.header-right{text-shadow:none}.visitor-card .card-top small{font-size:11px!important;letter-spacing:0}.card-bottom small,.pass-stamp{font-size:11px}.building-label.active{box-shadow:none!important}#loading{color:#e3f2ee;background:#102e3be6;border-radius:8px;padding:12px}dialog{box-shadow:0 18px 48px #0005}.visitor-card{box-shadow:none}
@media(max-width:700px){.brand span{font-size:0}.brand small{font-size:11px;margin:0;white-space:nowrap}#start-panel .pass-disclaimer,#start-panel .arrival-note,#start-panel #interest-note{font-size:12px}.start-routes button{font-size:12px}.interior-disclosure{font-size:12px}}
.journey-summary #journey-progress,.journey-summary #choose-interest{display:none}.journey-summary #journey-action{margin-top:0}.journey-summary #journey-extra{padding-bottom:5px}
.room-evidence{border-top:1px solid #8ba79b;margin-top:16px;padding-top:14px;font-size:13px;line-height:1.7}.room-evidence strong{font-size:14px}.room-evidence a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:3px}.room-evidence p{font-size:13px!important}#studio-projects .room-evidence{grid-column:1/-1}#studio-projects .room-evidence a{color:#b6ead9}#class-invitation .room-evidence a{color:#164f45}
footer>span,footer>a{background:#12323ee8;color:#e3efec;padding:5px 9px;border-radius:5px}footer small{color:#c6dcd7}
/* A small caption keeps the map cutaway honest without covering the room. */
#window-building{min-height:44px;margin-top:8px;border:1px solid #82a9a3;background:#eef7f2;color:#153d37;border-radius:8px;padding:10px 12px;font:inherit;cursor:pointer}
#window-building[aria-pressed=true]{background:#cfe9dd}
#window-status{display:block;font-size:12px;line-height:1.5;color:#dbe9df;margin-top:5px}
#window-status:empty{display:none}
.interior-navigation>div{flex-wrap:wrap}@media(max-width:700px){.map-window #selected{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;padding:10px 12px}.map-window #selected h2,.map-window #window-status{grid-column:1/-1;margin:0}.map-window #selected>p,.map-window #detail-toggle{display:none}.map-window #close-selected{position:absolute;right:8px;top:5px}.map-window #enter-building,.map-window #window-building{width:auto!important;margin:0!important;min-height:44px;font-size:12px!important;padding:8px!important}.room-name{font-size:13px!important;line-height:1.45}.interior-top h2{font-size:17px!important}.interior-disclosure{font-size:11px!important}}
@media(max-width:700px){#interior-hud[data-building=yulgok] .interior-navigation>div{flex-wrap:nowrap;justify-content:flex-start;pointer-events:auto;touch-action:pan-x;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-bottom:5px}#interior-hud[data-building=yulgok] .interior-navigation button{flex:0 0 auto;min-width:82px;min-height:44px;padding:12px;font-size:12px}}
