@property --horizon-tilt{syntax:'<angle>';inherits:true;initial-value:78deg}
@property --horizon-bearing{syntax:'<angle>';inherits:true;initial-value:-5deg}
.places-horizon{--horizon-height:100px;--horizon-tilt:78deg;--horizon-perspective:950px;position:fixed;z-index:60;bottom:0;left:0;width:100%;height:var(--horizon-height);display:flex;flex-direction:column;background:#fff;transition:height 1100ms cubic-bezier(.22,.8,.2,1),--horizon-tilt 1100ms cubic-bezier(.22,.8,.2,1),--horizon-bearing 1100ms cubic-bezier(.22,.8,.2,1);isolation:isolate}
body{padding-bottom:100px}.horizon-rooms{position:absolute;z-index:5;bottom:6px;left:4vw;right:64px;display:flex;align-items:center;gap:12px;overflow:auto;scrollbar-width:none}.horizon-room{white-space:nowrap;padding:3px 0;font-size:10px;text-shadow:0 1px 3px #fff,0 -1px 3px #fff}.horizon-room:hover{text-decoration:underline}.horizon-unplaced{font-size:9px;color:#666;white-space:nowrap;text-shadow:0 1px 3px #fff}.expanded .horizon-rooms{display:none}.horizon-toggle{position:absolute;z-index:30;top:10px;right:18px;display:grid;place-items:center;width:36px;height:36px;padding:0;font-size:20px;border:1px solid #bbb;border-radius:50%;background:#ffffffc9}.horizon-toggle:hover{background:#fff;border-color:#111}.horizon-viewport{position:relative;flex:1;min-height:0;overflow:hidden;perspective:var(--horizon-perspective);perspective-origin:50% 35%;transition:perspective 1100ms cubic-bezier(.22,.8,.2,1);background:#fff;touch-action:pan-y}.expanded .horizon-viewport{cursor:grab;touch-action:none}.dragging .horizon-viewport{cursor:grabbing}.horizon-pan{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d;transition:transform 1100ms cubic-bezier(.22,.8,.2,1),top 1100ms cubic-bezier(.22,.8,.2,1)}.places-horizon:not(.expanded) .horizon-pan{top:88%}.horizon-plane{position:absolute;left:-800px;top:-450px;width:1600px;height:900px;transform:rotateX(var(--horizon-tilt)) rotateZ(var(--horizon-bearing,-5deg));transform-style:preserve-3d}.horizon-campus{position:absolute;top:115px;height:680px;border:1px solid #bbb;border-radius:25px;background:#fcfcfc;box-shadow:0 8px 0 #eee,0 9px 0 #bbb;transform:translateZ(-12px)}.horizon-campus-bread{left:100px;width:750px}.horizon-campus-design{left:945px;width:560px;height:650px}.horizon-road{position:absolute;left:870px;top:75px;width:58px;height:770px;writing-mode:vertical-rl;text-align:center;padding:0 19px;border-inline:1px dashed #aaa;font-size:13px;letter-spacing:.05em;color:#666;transform:translateZ(-10px)}.horizon-campus-label{position:absolute;transform:translate(-50%,-50%) translateZ(5px) rotateZ(calc(-1 * var(--horizon-bearing,-5deg))) rotateX(calc(-1 * var(--horizon-tilt))) translate(var(--label-x,0px),var(--label-y,0px));font-size:28px;font-weight:500;letter-spacing:-.04em;white-space:nowrap}.horizon-building{position:absolute;border:1px solid #aaa;border-radius:10px;background:#fff;box-shadow:0 8px 0 #eee,0 9px 0 #bbb,0 17px 0 #f7f7f7,0 18px 0 #ccc;transform:translateZ(14px);transition:background 250ms,border-color 250ms}.horizon-building.active{border-color:#111;background:#dedede;box-shadow:0 8px 0 #bbb,0 9px 0 #222,0 17px 0 #ddd,0 18px 0 #555}.horizon-pin{position:absolute;display:flex;align-items:center;gap:7px;padding:0;background:transparent;transform:translate(-50%,-100%) translateZ(48px) rotateZ(calc(-1 * var(--horizon-bearing,-5deg))) rotateX(calc(-1 * var(--horizon-tilt))) scale(var(--horizon-label-scale,1)) translate(var(--label-x,0px),var(--label-y,0px));transform-origin:50% 100%;white-space:nowrap;z-index:2;font-size:14px;line-height:1.3}.horizon-pin-dot{display:grid;place-items:center;background:#fff;border:1px solid #666;border-radius:50%;width:35px;height:35px;font-size:11px;box-shadow:0 2px 6px #0002}.horizon-pin-name{background:#fff;border:1px solid #bbb;border-radius:6px;padding:7px 9px;box-shadow:0 2px 6px #0001}.horizon-pin.active{z-index:5}.horizon-pin.active .horizon-pin-dot{background:#111;color:#fff;border-color:#111}.horizon-pin.active .horizon-pin-name{border-color:#111;font-weight:500}.horizon-pin.shared-pin{margin-top:55px}.places-horizon:not(.expanded) .horizon-pin:not(.active) .horizon-pin-name{opacity:0}.places-horizon:not(.expanded) .horizon-pin{pointer-events:none}.places-horizon:not(.expanded) .horizon-pin.active{pointer-events:auto}.horizon-controls{display:flex;gap:5px;padding:0 68px 0 4vw;max-height:0;opacity:0;overflow:hidden;transition:max-height 1100ms cubic-bezier(.22,.8,.2,1),opacity 450ms}.horizon-controls button{font-size:10px;min-height:40px;padding:8px 12px;border:1px solid #ddd;border-radius:20px;margin:10px 0}.horizon-controls button:nth-last-child(2){margin-left:auto}.expanded .horizon-controls{max-height:62px;opacity:1}.horizon-detail{display:flex;align-items:center;gap:15px;padding:0 4vw;max-height:0;opacity:0;overflow:hidden;border-top:1px solid transparent;transition:max-height 1100ms cubic-bezier(.22,.8,.2,1),opacity 450ms}.expanded .horizon-detail{max-height:88px;min-height:62px;opacity:1;border-color:#ddd}.horizon-detail-text{font-size:10px;line-height:1.65;margin:12px 0}.horizon-program{margin-left:auto;flex-shrink:0;min-height:38px;font-size:10px;border:1px solid #aaa;border-radius:20px;padding:9px 14px}.dragging .horizon-pan{transition:none}
#reader>#places-horizon{position:absolute;width:100%;left:0;bottom:0}#reader .reader-scroll{padding-bottom:130px}#reader .horizon-rooms{left:20px}#reader .horizon-controls{padding-left:20px}#reader .horizon-detail{padding-inline:20px}.has-map #landscape .location-experience{display:none}.has-map #landscape{min-height:calc(100dvh - 240px)}
@media(max-width:800px){.horizon-pin-name{font-size:16px}}
@media(max-width:640px){body{padding-bottom:96px}.places-horizon:not(.expanded) .horizon-pan{top:65%}.horizon-rooms,#reader .horizon-rooms{left:18px;gap:10px}.horizon-room{font-size:9px}.horizon-toggle{top:6px;right:12px}.horizon-controls{padding-left:12px;padding-right:56px;gap:4px;flex-wrap:wrap;flex-shrink:0}.horizon-controls button{font-size:9px;padding:7px 9px;min-height:32px;margin:6px 0}.expanded .horizon-controls{max-height:100px}.horizon-detail{padding-inline:18px;flex-wrap:wrap;gap:0}.expanded .horizon-detail{max-height:120px;min-height:85px;flex-shrink:0}.horizon-detail-text{font-size:9px;line-height:1.5;width:100%;margin:7px 0}.horizon-program{min-height:30px;font-size:9px;padding:5px 10px;margin-bottom:6px}.horizon-pin-name{font-size:20px}.horizon-pin-dot{width:42px;height:42px;font-size:14px}.horizon-pin{gap:5px}.horizon-campus-label{font-size:36px}}
@media(prefers-reduced-motion:reduce){.places-horizon,.horizon-pan,.horizon-viewport,.horizon-controls,.horizon-detail{transition:none!important}}

.horizon-pin[data-room="room-12"] .horizon-pin-name{transform:translateY(-20px)}.horizon-pin[data-room="room-8"] .horizon-pin-name{transform:translateY(18px)}.horizon-pin[data-room="room-7"] .horizon-pin-name{transform:translateX(-140px)}
.horizon-index{display:none}.horizon-pin[data-room="room-8"] .horizon-pin-name{transform:translateY(32px)}
@media(max-width:640px){.expanded .horizon-index{display:flex;gap:6px;flex-shrink:0;overflow:auto;padding:0 16px 8px;scrollbar-width:thin;border-bottom:1px solid #eee}.horizon-index button{white-space:nowrap;font-size:10px;padding:9px 12px;min-height:36px;border:1px solid #ccc;border-radius:20px}.horizon-pin:not(.active) .horizon-pin-name{display:none}.horizon-pin.active .horizon-pin-name{font-size:18px;transform:none}.horizon-pin.shared-pin{margin-top:25px}}
