@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";
:root{color:#243e49;font-synthesis:none;--ink:#203e4b;--teal:#3d7775;--gold:#e7b55f;--blossom:#d799ae;--paper:#fffdf6;--muted:#71817e;--line:#e2e6dc;--ui-shadow:0 10px 35px #203b4712, 0 2px 6px #203b4705;font-family:DM Sans,Arial,sans-serif}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}body{background:#c6dfeb;margin:0;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{opacity:.42;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,#world:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button{touch-action:manipulation}[hidden]{display:none!important}#app,#world,#world-labels{position:absolute;inset:0}#app{isolation:isolate;min-width:320px}#world{touch-action:none;outline:none}#world canvas{width:100%;height:100%;display:block}#world-labels{pointer-events:none;overflow:hidden}.campus-icon{flex:none;width:20px;height:20px;display:block}.topbar{z-index:7;pointer-events:none;justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute;top:22px;left:24px;right:24px}.topbar button{pointer-events:auto}.brand{box-shadow:var(--ui-shadow);text-align:left;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf6ef;border:1px solid #ffffffb8;border-radius:17px;align-items:center;gap:11px;padding:6px 14px 6px 6px;display:flex}.brand-symbol{background:var(--ink);color:#f0c37a;text-align:center;border-radius:12px 12px 12px 4px;flex:none;width:43px;height:43px;font:800 34px/38px Manrope,sans-serif;position:relative}.brand-symbol span{font-size:19px;position:absolute;top:-6px;right:5px}.brand-type{letter-spacing:-1px;font-family:Manrope,sans-serif;font-size:21px}.brand-type b{font-weight:800}.brand-type small{letter-spacing:1.55px;color:#6c817f;margin-top:3px;font:700 8px/1.4 DM Sans,sans-serif;display:block}.top-actions{align-items:center;gap:8px;display:flex}.project-tag{letter-spacing:1.1px;color:#44686c;text-shadow:0 1px 8px #fff;align-items:center;gap:7px;margin-right:12px;font-size:9px;font-weight:700;display:inline-flex}.project-tag i{background:#579487;border-radius:50%;width:5px;height:5px;box-shadow:0 0 0 3px #e1eee0a6}.icon-button{background:#fffdf6f2;border:1px solid #ffffffd6;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-size:21px;transition:background .18s,transform .18s,box-shadow .18s;display:inline-grid;box-shadow:0 3px 12px #203d4d08}.icon-button:hover{background:#f6e5bf;transform:translateY(-1px);box-shadow:0 4px 14px #203d4d10}#help .campus-icon{width:21px;height:21px}.places-panel{z-index:4;width:302px;max-height:calc(100dvh - 159px);box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf6f5;border:1px solid #ffffffd9;border-radius:21px;flex-direction:column;padding:21px 18px 14px;display:flex;position:absolute;top:101px;left:24px;overflow:hidden}.places-panel>:not(#places){flex-shrink:0}.panel-heading{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.panel-heading>div{min-width:0}.eyebrow{color:#75837d;letter-spacing:1.15px;font-size:9px;font-weight:700;line-height:1.6;display:block}.panel-heading .eyebrow{color:var(--teal);letter-spacing:1.4px;font-size:8px}h1{letter-spacing:-1.15px;margin:9px 0 10px;font:800 27px/1.17 Manrope,sans-serif}.heading-dot{color:var(--blossom)}.panel-heading .icon-button{width:28px;height:28px;box-shadow:none;background:#edf1e8;border:0;border-radius:8px;margin-top:-4px;font-size:21px}.panel-intro{color:#7c8982;margin:0 0 18px;font-size:12px;line-height:1.65}.places-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:0 0 10px;display:flex}.places-heading h2{margin:0;font-size:12px;font-weight:700}#visit-count{color:#698075;font-variant-numeric:tabular-nums;background:#edf0e6;border-radius:6px;padding:4px 7px;font-size:10px}.place-filters{gap:3px;padding:12px 0 10px;display:flex}.place-filters button{color:#7d8980;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;flex:1;min-width:0;padding:7px 3px;font-size:10px;font-weight:600;transition:background .15s,color .15s}.place-filters button:hover{color:var(--ink);background:#eef1e8}.place-filters button[aria-pressed=true]{color:#35685f;background:#e7eee3;border-color:#d8e3d7}.search-field{color:#92a090;background:#f5f6ef;border:1px solid #e1e7db;border-radius:10px;align-items:center;gap:8px;width:100%;min-width:0;margin-bottom:7px;padding:0 11px;display:flex}.search-field:focus-within{border-color:#83a59a;box-shadow:0 0 0 3px #dce9dc80}.search-field>.campus-icon{width:15px;height:15px}.place-search{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;padding:11px 0;font-size:12px;outline:none!important}.place-search::placeholder{color:#929b8d}#places{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cfdbce transparent;flex:auto;min-height:0;padding:3px 0 10px;overflow:hidden auto}#places-empty{color:var(--muted);margin:12px 0;padding:8px;font-size:12px;line-height:1.6}.place-row{text-align:left;background:0 0;border:1px solid #0000;border-radius:11px;align-items:center;gap:10px;width:100%;margin:2px 0;padding:9px 7px;transition:background .15s,border-color .15s;display:flex}.place-row:hover{background:#eff2e9}.place-row.selected{background:#e7eee1;border-color:#d9e4d3}.place-number{color:#698071;font-variant-numeric:tabular-nums;background:#edf0e6;border:1px solid #e2e7da;border-radius:9px;flex:none;place-items:center;width:31px;height:33px;font-size:10px;font-weight:700;display:grid}.place-row.selected .place-number{border-color:var(--ink);background:var(--ink);color:#f8e6bf}.place-text{color:#314a4f;flex:1;min-width:0;font-size:12px;font-weight:700;line-height:1.4}.place-text small{color:#849185;margin-top:3px;font-size:10px;font-weight:400;line-height:1.45;display:block}.place-arrow{color:#91a18d;flex:none;font-size:14px}.tour-start{background:var(--ink);color:#fffdf6;text-align:left;border:0;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:13px 14px;font-size:12px;font-weight:600;transition:background .18s;display:flex}.tour-start:hover{background:#315b62}.tour-start small{color:#b4c8c3;margin-top:4px;font-size:9px;font-weight:400;display:block}.tour-start>.campus-icon{color:#e9be77}.panel-foot{color:#8d998b;text-align:center;padding-top:12px;font-size:9px}.status-dot{background:#80a175;border-radius:50%;width:5px;height:5px;margin:0 5px 1px 0;display:inline-block}.places-panel.collapsed{padding-top:16px;padding-bottom:15px}.places-panel.collapsed h1{margin-bottom:0;font-size:21px}.places-panel.collapsed .panel-intro,.places-panel.collapsed .places-heading,.places-panel.collapsed .place-filters,.places-panel.collapsed .search-field,.places-panel.collapsed #places,.places-panel.collapsed #places-empty,.places-panel.collapsed .tour-start,.places-panel.collapsed .panel-foot{display:none}.bottom-bar{z-index:6;white-space:nowrap;flex-direction:column;align-items:center;gap:11px;display:flex;position:absolute;bottom:23px;left:50%;transform:translate(-50%)}.mode-switch{box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf6f5;border:1px solid #ffffffd9;border-radius:17px;gap:4px;padding:5px;display:flex}.mode-switch button{color:#71837c;background:0 0;border:0;border-radius:12px;justify-content:center;align-items:center;gap:9px;padding:12px 17px;transition:background .18s,color .18s;display:flex}.mode-switch button span{font-size:12px;font-weight:600}.mode-switch .campus-icon{width:19px;height:19px}.mode-switch button:hover{color:var(--ink);background:#edf0e7}.mode-switch button.active{background:var(--ink);color:#fffdf6;box-shadow:0 3px 6px #203e4b14}.mode-switch button.active .campus-icon{color:#edc886}.controls-hint{color:#526d6d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fffdf675;border:1px solid #fff5;border-radius:20px;padding:5px 10px;font-size:10px;line-height:1.5}.controls-hint>span{color:#99a99b;padding:0 5px}.world-caption{pointer-events:none;flex-direction:column;gap:5px;display:flex;position:absolute;bottom:25px;left:28px}.world-caption span:first-child{color:#45696a;letter-spacing:2.5px;font-size:10px;font-weight:700}.world-caption span:last-child{color:#63827f;font-size:10px}.view-tools{z-index:5;box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf6ef;border:1px solid #ffffffd6;border-radius:14px;flex-direction:column;gap:3px;padding:5px;display:flex;position:absolute;bottom:320px;right:24px}.view-tools .icon-button{width:33px;height:33px;box-shadow:none;background:0 0;border:0;border-radius:9px}.view-tools .icon-button:hover{background:#e9eee4}.view-tools .campus-icon{width:17px;height:17px}.view-tools>span{background:#dce4d8;width:18px;height:1px;margin:3px auto}.compass{color:#587770;pointer-events:none;flex-direction:column;align-items:center;gap:7px;display:flex;position:absolute;top:106px;right:220px}.compass span{letter-spacing:1px;font-size:8px;font-weight:700}.compass i{clip-path:polygon(50% 0,100% 100%,50% 72%,0 100%);background:linear-gradient(90deg,#31555b 50%,#fffdf7 50%);width:12px;height:28px;display:block}#app .plan2d-open{box-shadow:var(--ui-shadow);background:#fffdf6f0;border-color:#ffffffdc;border-radius:13px;top:96px;right:24px}.landmark-label{pointer-events:auto;color:#335052;white-space:nowrap;background:#fffdf6f2;border:1px solid #ffffffdc;border-radius:9px;align-items:center;gap:7px;padding:6px 9px 6px 6px;font-size:10px;font-weight:600;transition:opacity .2s,background .2s;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 3px 12px #253e4718}.landmark-label:after{background:inherit;content:"";width:6px;height:6px;position:absolute;bottom:-4px;left:50%;transform:rotate(45deg)}.landmark-label .pin-num{background:var(--ink);color:#fffdf6;font-variant-numeric:tabular-nums;border-radius:6px;place-items:center;width:20px;height:20px;font-size:9px;display:grid}.bus-stop-label{background:#edf5efed;border-color:#c4dbd3}.bus-stop-label .pin-num{background:#3d7775}.landmark-label.selected{background:#f4dba8;border-color:#e6c995}.place-card{z-index:6;width:302px;max-height:min(440px,60dvh);box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf6f5;border:1px solid #ffffffd9;border-radius:19px;padding:20px;animation:.22s card-in;position:absolute;bottom:103px;left:24px;overflow:auto}.card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-top .eyebrow{color:#698779;letter-spacing:.9px;max-width:230px;font-size:8px}.card-top .icon-button{width:27px;height:27px;box-shadow:none;background:#eef1e8;border:0;border-radius:8px}.card-top .campus-icon{width:14px;height:14px}.place-card h2{color:var(--ink);letter-spacing:-.8px;margin:12px 0 10px;font:800 23px/1.18 Manrope,sans-serif}.place-card p{color:#75847b;margin:0 0 16px;font-size:12px;line-height:1.7}.primary-button{background:var(--ink);color:#fffdf6;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:12px;font-weight:600;display:inline-flex}.primary-button:hover{background:#35666b}.card-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.card-actions .primary-button{flex:auto}.text-button{color:#4b7770;text-underline-offset:4px;background:0 0;border:0;padding:7px 0;font-size:12px;text-decoration:underline}.source-link{color:#8b998c;text-underline-offset:3px;margin-top:13px;font-size:10px;line-height:1.6;display:inline-block}.source-link:hover{color:var(--ink)}#place-toast{z-index:12;color:#fffdf6;opacity:0;pointer-events:none;text-align:center;background:#203e4bec;border:1px solid #ffffff29;border-radius:14px;max-width:min(430px,70vw);padding:11px 18px;font-size:12px;line-height:1.5;transition:opacity .25s;position:absolute;top:103px;left:50%;transform:translate(-50%);box-shadow:0 5px 22px #15333e20}#place-toast.visible{opacity:1}#loading{z-index:120;color:var(--ink);background:linear-gradient(145deg,#e9efe0,#d9e9e6 70%);flex-direction:column;justify-content:center;align-items:center;gap:16px;transition:opacity .4s;display:flex;position:absolute;inset:0}#loading strong{letter-spacing:-.8px;font:800 26px Manrope,sans-serif}#loading>span:last-child{color:#779084;font-size:12px}#loading>a{max-width:85%;color:var(--teal);text-align:center;font-size:13px}.loader{border:2px solid #426f68;border-color:#426f68 #d3a2b1 #b9d0c1 #b9d0c1;border-radius:50%;width:29px;height:29px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes card-in{0%{opacity:0;translate:0 8px}to{opacity:1;translate:0}}#walk-controls{z-index:6;text-align:center;touch-action:none;position:absolute;bottom:120px;left:27px}#walk-controls button{touch-action:none;background:#fffdf6ed;border:1px solid #ffffffd9;border-radius:11px;width:43px;height:43px;margin:3px;font-size:21px;box-shadow:0 2px 8px #18363c0a}#walk-controls button:active{background:#f0d7a7}.walking .places-panel,.walking .world-caption,.inspecting-building .world-caption{display:none}.walking .place-card{bottom:220px}.inspecting-building .place-card{bottom:100px;left:24px;right:auto}#panorama{z-index:20;background:#c6d2d0;position:absolute;inset:0}#pano-frame{border:0;width:100%;height:100%}.pano-top{justify-content:space-between;align-items:center;gap:14px;display:flex;position:absolute;top:24px;left:24px;right:24px}.pano-top>span{color:#fffdf6;text-shadow:0 1px 5px #0008;letter-spacing:1.7px;font-size:10px;font-weight:700}.pano-button{color:var(--ink);box-shadow:var(--ui-shadow);background:#fffdf6ed;border:1px solid #ffffffb8;border-radius:11px;justify-content:center;align-items:center;padding:12px 16px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.pano-button:hover{background:#fffdf6}.pano-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf6f5;border:1px solid #ffffffd9;border-radius:19px;justify-content:space-between;align-items:center;gap:24px;width:min(820px,100% - 48px);max-height:45dvh;padding:21px 24px;display:flex;position:absolute;bottom:27px;left:50%;overflow:auto;transform:translate(-50%);box-shadow:0 12px 35px #152c3629}.pano-card h2{letter-spacing:-.7px;margin:6px 0;font:800 23px/1.2 Manrope,sans-serif}.pano-card p{color:#74877b;margin:7px 0;font-size:12px;line-height:1.7}.pano-card .source-link{margin-top:5px;font-size:10px}.tour-navigation{flex-shrink:0;align-items:center;gap:9px;display:flex}.tour-navigation .icon-button{background:#f0f3e9;border-color:#e3e9dc}.pano-loading{color:var(--ink);text-align:center;pointer-events:none;background:#fffdf6e8;border-radius:15px;padding:20px;font-size:16px;line-height:1.8;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.pano-loading small{color:#7b8b7f;font-size:12px}:is(#app:has(#panorama:not([hidden])) .plan2d-open,#app:has(#panorama:not([hidden])) .adventure-dock,#app:has(#panorama:not([hidden])) .adventure-mobile-open){visibility:hidden}#about-dialog{background:var(--paper);width:min(540px,100% - 32px);max-height:88dvh;color:var(--ink);border:1px solid #ffffffd9;border-radius:23px;padding:34px;overflow:auto;box-shadow:0 24px 100px #163a474d}#about-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#17374580}#close-about{float:right;width:32px;height:32px;box-shadow:none;background:#edf0e7;border:0}#close-about .campus-icon{width:17px;height:17px}#about-dialog h2{letter-spacing:-1.5px;margin:15px 0;font:800 36px/1.08 Manrope,sans-serif}#about-dialog>p{color:#6c8178;font-size:14px;line-height:1.7}.help-grid{border-top:1px solid var(--line);grid-template-columns:108px 1fr;gap:17px 15px;padding:22px 0;font-size:12px;line-height:1.6;display:grid}.help-grid span{color:#7a8a80}.about-note{background:#edf1e6;border-radius:12px;padding:16px;font-size:12px;line-height:1.65}.about-note p{color:#7b897c;margin:7px 0 0}@media (min-width:1550px){.places-panel{width:320px}.place-text{font-size:13px}.place-text small{font-size:11px}.place-row{padding-top:11px;padding-bottom:11px}}@media (max-height:800px) and (min-width:761px){.topbar{top:17px}.places-panel{max-height:calc(100dvh - 134px);padding-top:17px;top:89px}h1{margin:7px 0;font-size:24px}.panel-intro{margin-bottom:12px;font-size:12px}.panel-intro br{display:none}.place-row{padding-top:6px;padding-bottom:6px}.place-text small{font-size:11px}.tour-start{padding-top:11px;padding-bottom:11px}.panel-foot{padding-top:9px}.view-tools{bottom:310px}.bottom-bar{bottom:18px}}@media (min-width:761px) and (max-width:1100px){.places-panel,.place-card{width:277px}.project-tag{display:none}.bottom-bar{left:54%}.mode-switch button{padding:12px 14px}.world-caption{display:none}.place-text{font-size:12px}.view-tools{right:20px}}@media (max-width:760px){.topbar{top:max(12px,env(safe-area-inset-top));gap:8px;left:12px;right:12px}.brand{border-radius:14px;gap:8px;padding:5px 10px 5px 5px}.brand-symbol{border-radius:9px 9px 9px 3px;width:35px;height:35px;font-size:29px;line-height:31px}.brand-symbol span{font-size:16px;top:-6px;right:3px}.brand-type{letter-spacing:-.8px;font-size:17px}.brand-type small{letter-spacing:1.1px;margin-top:2px;font-size:6px}.project-tag{display:none}.top-actions{gap:5px}.top-actions .icon-button{border-radius:10px;width:34px;height:35px;font-size:20px}#help .campus-icon{width:19px;height:19px}.places-panel{top:calc(max(12px,env(safe-area-inset-top)) + 62px);border-radius:16px;width:calc(100% - 24px);max-height:min(57dvh,455px);padding:14px;left:12px}.panel-heading{align-items:center}.panel-heading .eyebrow{letter-spacing:1px;font-size:7px}h1{letter-spacing:-.6px;margin:5px 0 0;font-size:20px}.panel-heading .icon-button{width:30px;height:30px;margin-top:0}.panel-intro{display:none}.places-heading{margin-top:13px;padding-bottom:8px}.place-filters{padding-top:10px}.place-filters button{padding:7px 4px;font-size:10px}.place-search{padding:10px 0;font-size:12px}.place-row{padding:7px 5px}.place-text{font-size:12px}.place-text small{font-size:10px}.tour-start{padding-top:11px;padding-bottom:11px}.tour-start small{margin-left:6px;font-size:9px;display:inline}.panel-foot{padding-top:9px}.places-panel.collapsed{padding:12px 14px}.places-panel.collapsed .panel-heading .eyebrow{display:none}.places-panel.collapsed h1{margin:0;font-size:17px}#places{max-height:25dvh}.bottom-bar{left:50%;bottom:max(14px,env(safe-area-inset-bottom));gap:7px;width:calc(100% - 24px)}.mode-switch{border-radius:15px;width:min(330px,100%);padding:4px}.mode-switch button{border-radius:10px;flex:1;gap:7px;padding:11px 9px}.mode-switch button span{font-size:11px}.mode-switch .campus-icon{width:17px;height:17px}.controls-hint{white-space:normal;text-align:center;max-width:100%;padding:3px 8px;font-size:8px}.controls-hint>span{padding:0 3px}.world-caption,.compass{display:none}.view-tools{border-radius:11px;flex-direction:row;gap:1px;padding:4px;bottom:171px;right:12px}.view-tools .icon-button{border-radius:7px;width:30px;height:31px}.view-tools .campus-icon{width:16px;height:16px}.view-tools>span{width:1px;height:19px;margin:6px 3px}#app .plan2d-open{top:calc(max(12px,env(safe-area-inset-top)) + 126px);border-radius:11px;gap:7px;padding:8px 10px 8px 8px;font-size:11px;left:auto;right:12px}#app .plan2d-open>span:first-child{width:24px;height:27px;font-size:21px}#app .plan2d-open small{font-size:8px}#app:has(.places-panel:not(.collapsed)) .plan2d-open{visibility:hidden}.place-card,.inspecting-building .place-card{border-radius:16px;width:auto;max-height:min(42dvh,360px);padding:16px;bottom:106px;left:12px;right:12px}.place-card h2{margin:9px 0;font-size:21px}.place-card p{margin-bottom:13px;font-size:12px;line-height:1.6}.place-card .source-link{margin-top:10px;font-size:10px}.card-actions{gap:12px}.primary-button{padding:12px;font-size:12px}.card-actions .primary-button{justify-content:center}.text-button{font-size:12px}#app:has(.place-card:not([hidden])) .view-tools{visibility:hidden}:is(#app:has(.place-card:not([hidden])) .adventure-dock,#app:has(.place-card:not([hidden])) .adventure-mobile-open){visibility:hidden}.landmark-label{gap:5px;padding:5px 7px 5px 5px;font-size:9px}.landmark-label .pin-num{width:18px;height:18px;font-size:8px}#walk-controls{bottom:107px;left:10px}#walk-controls button{border-radius:10px;width:37px;height:37px;margin:2px;font-size:19px}.walking .place-card{bottom:208px}.walking .view-tools{bottom:226px}.walking #app .plan2d-open{top:calc(max(12px,env(safe-area-inset-top)) + 62px)}#place-toast{top:calc(max(12px,env(safe-area-inset-top)) + 123px);max-width:calc(100% - 38px);padding:10px 13px;font-size:11px}.pano-top{top:max(13px,env(safe-area-inset-top));gap:8px;left:12px;right:12px}.pano-top>span{display:none}.pano-button{border-radius:10px;padding:11px 12px;font-size:12px}.pano-card{bottom:max(15px,env(safe-area-inset-bottom));border-radius:16px;width:calc(100% - 24px);max-height:44dvh;padding:16px;display:block}.pano-card h2{font-size:21px}.pano-card p{font-size:12px;line-height:1.6}.pano-card .source-link{font-size:9px}.tour-navigation{justify-content:space-between;margin-top:13px}.tour-navigation .primary-button{flex:1;justify-content:center}.pano-loading{width:calc(100% - 44px);font-size:14px}.pano-loading small{font-size:11px}#about-dialog{border-radius:18px;padding:24px}#about-dialog h2{font-size:32px}.help-grid{grid-template-columns:1fr;gap:5px}.help-grid span{margin-bottom:10px}}@media (max-width:359px){.brand{gap:6px;padding-right:8px}.brand-type{font-size:15px}.brand-type small{letter-spacing:.8px;font-size:5.6px}.top-actions .icon-button{width:31px;height:33px}.mode-switch button{padding-left:6px;padding-right:6px}.mode-switch button span{font-size:10px}.tour-start small{display:none}}@media (min-width:761px){#app .view-tools{right:24px;bottom:calc(130px + var(--adventure-dock-height,250px));flex-direction:row;gap:3px}#app .view-tools>span{width:1px;height:20px;margin:6px 5px}#app .place-text{font-size:12px}#app .place-text small{font-size:11px}#app .place-search,#app .text-button,#app .primary-button,#app .panel-intro{font-size:12px}}@media (min-width:761px) and (max-height:720px){#app .adventure-dock{width:auto;bottom:110px;right:24px}#app .adventure-dock-body{display:none}#app .adventure-mobile-open{box-shadow:var(--ui-shadow);color:var(--ink);background:#fffdf6f2;border:1px solid #ffffffd9;border-radius:12px;align-items:center;gap:8px;padding:11px 14px;font-size:12px;font-weight:700;display:flex}#app .adventure-mobile-open>.adventure-badge-icon{color:#628873;width:24px;height:24px}#app .adventure-mobile-open b{color:#85977e;margin-left:6px;font-size:10px}#app .view-tools{bottom:190px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (max-width:760px){body.walking #app #place-card{top:calc(max(12px,env(safe-area-inset-top)) + 64px);border-radius:13px;width:calc(100% - 148px);max-height:180px;padding:12px;bottom:auto;left:12px;right:auto}body.walking #app .place-card h2{margin:6px 0 9px;font-size:16px;line-height:1.22}body.walking #app .place-card #place-description,body.walking #app .place-card .source-link{display:none}body.walking #app .place-card .card-top .eyebrow{font-size:7px;line-height:1.35}body.walking #app .place-card .card-top .icon-button{width:24px;height:24px}body.walking #app .place-card .card-actions{gap:5px}body.walking #app .place-card .primary-button{width:100%;padding:9px 8px;font-size:11px}body.walking #app .place-card .text-button{padding:4px 0;font-size:11px}}
.plan2d-open{z-index:9;color:#243f4b;text-align:left;background:#fffdf7ed;border:1px solid #fffc;border-radius:12px;align-items:center;gap:10px;padding:11px 17px 11px 12px;font-size:13px;font-weight:700;display:flex;position:fixed;top:96px;right:30px;box-shadow:0 5px 24px #243d4814}.plan2d-open>span:first-child{color:#406a65;background:#e8eee5;border-radius:7px;place-items:center;width:30px;height:34px;font-size:25px;display:grid}.plan2d-open small{color:#75837f;margin-top:2px;font-size:10px;font-weight:500;display:block}.plan2d-open:hover{background:#fffdf7;transform:translateY(-1px)}.plan2d-tree-toggle{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.plan2d-tree-toggle input{accent-color:#bd7895;width:12px;height:12px;margin:0}.plan2d-overlay{z-index:100;isolation:isolate;color:#213f4c;background:#fffdf7;border:1px solid #ffffffb3;border-radius:19px;flex-direction:column;font-family:DM Sans,Arial,sans-serif;display:flex;position:fixed;inset:15px;overflow:hidden;box-shadow:0 0 0 30px #1d3547a6,0 24px 100px #132a4259}.plan2d-overlay button,.plan2d-overlay input{font:inherit}.plan2d-overlay button{transition:background .15s,border-color .15s}.plan2d-overlay button:focus-visible,.plan2d-overlay input:focus-visible,.plan2d-overlay canvas:focus-visible{outline-offset:2px;outline:3px solid #e3aa43}.plan2d-header{border-bottom:1px solid #e0e5dc;flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;padding:22px 26px 18px;display:flex}.plan2d-eyebrow{letter-spacing:.14em;color:#738780;font-size:9px;font-weight:700;display:block}.plan2d-heading h2{letter-spacing:-.7px;margin:5px 0 4px;font:700 25px/1.2 Manrope,Arial,sans-serif}.plan2d-heading p{color:#778780;margin:0;font-size:12px}.plan2d-head-actions{align-items:center;gap:17px;display:flex}.plan2d-export{color:#fffdf7;white-space:nowrap;background:#254956;border:0;border-radius:8px;align-items:center;gap:24px;padding:12px 17px;display:flex;font-size:12px!important;font-weight:600!important}.plan2d-export:hover{background:#326373}.plan2d-close{color:#5c746e;background:#f1f2eb;border:0;border-radius:7px;place-items:center;width:34px;height:34px;display:grid;font-size:24px!important}.plan2d-close:hover{background:#e0e7de}.plan2d-toolbar{background:#fafaf3;border-bottom:1px solid #dce3d9;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:17px;min-height:68px;padding:12px 24px;display:flex;position:relative}.plan2d-tool-group{align-items:center;gap:4px;display:flex}.plan2d-tool-group button{color:#70837a;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:7px;padding:8px 12px;font-size:12px;display:flex}.plan2d-tool-group button>span{font-size:20px;line-height:20px}.plan2d-tool-group button.active{color:#2f5752;background:#e7eee4;border-color:#c8d7cb;font-weight:700}.plan2d-tool-group button:hover{background:#edf1e8}.plan2d-colors{border-left:1px solid #dee5da;border-right:1px solid #dee5da;align-items:center;gap:9px;padding:0 18px;display:flex}.plan2d-colors button{background:var(--mark-color);border:3px solid #fafaf3;border-radius:50%;width:20px;height:20px;display:block;box-shadow:0 0 0 1px #0000}.plan2d-colors button.active{box-shadow:0 0 0 1.8px var(--mark-color)}.plan2d-history{align-items:center;gap:7px;margin-left:auto;display:flex}.plan2d-history button{color:#567267;background:#fffdf7;border:1px solid #e0e5db;border-radius:6px;place-items:center;min-width:30px;height:32px;font-size:21px;display:grid}.plan2d-history button:last-child{margin-left:5px;padding:0 9px;font-size:11px}.plan2d-history button:hover{background:#eaf0e5}.plan2d-note-input{color:#5d766d;flex:1 0 100%;align-items:center;gap:10px;font-size:11px;display:flex}.plan2d-note-input>span{font-weight:700}.plan2d-note-input input{color:#254956;background:#fffdf7;border:1px solid #c9d6c9;border-radius:6px;width:min(480px,55%);min-width:0;padding:9px 11px;font-size:12px}.plan2d-note-input small{color:#819084;font-size:11px}.plan2d-clear-confirm{z-index:4;background:#fffdf7;border:1px solid #e3d9c4;border-radius:9px;align-items:center;gap:10px;padding:13px;font-size:11px;display:flex;position:absolute;top:calc(100% - 2px);right:24px;box-shadow:0 6px 25px #38524720}.plan2d-clear-confirm button{background:#f0f3ea;border:1px solid #d1dacd;border-radius:5px;padding:6px 8px;font-size:10px}.plan2d-clear-confirm button:first-of-type{color:#a34d43;background:#fff0eb;border-color:#c87066}.plan2d-body{flex:1;min-height:0;display:flex}.plan2d-map-area{background:#edf1e8;flex:1;min-width:0;position:relative;overflow:hidden}.plan2d-map-area canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block;outline-offset:-4px!important}.plan2d-map-area.tool-pan canvas{cursor:grab}.plan2d-map-area.tool-pan canvas:active{cursor:grabbing}.plan2d-map-area.tool-note canvas{cursor:text}.plan2d-map-key{pointer-events:none;color:#6c7c71;background:#fffdf7e6;border:1px solid #ffffffb3;border-radius:6px;align-items:center;gap:13px;padding:8px 11px;font-size:9px;display:flex;position:absolute;top:16px;left:18px}.plan2d-map-key span{align-items:center;gap:5px;display:flex}.plan2d-map-key i{border-radius:2px;width:8px;height:8px;display:inline-block}.plan2d-map-key .key-faculty{background:#a2bfa5;border:1px solid #6f9373}.plan2d-map-key .key-landmark{background:#e3bd73;border:1px solid #a47c3c}.plan2d-map-key .key-bus{background:#fffdf7;border:1.5px solid #2c7291;border-radius:50%}.plan2d-map-controls{border:1px solid #d3ded2;border-radius:8px;gap:1px;display:flex;position:absolute;bottom:18px;left:18px;overflow:hidden;box-shadow:0 3px 12px #244a3210}.plan2d-map-controls button{color:#456858;background:#fffdf7;border:0;min-width:36px;height:35px;padding:0 12px;font-size:20px}.plan2d-map-controls button:last-child{border-left:1px solid #e0e7da;font-size:11px}.plan2d-map-controls button:hover{background:#e4ede0}.plan2d-map-caption{color:#81917f;pointer-events:none;background:#edf1e8df;border-radius:5px;padding:5px 7px;font-size:9px;position:absolute;bottom:22px;right:16px}.plan2d-sidebar{background:#fffdf7;border-left:1px solid #dce4d7;flex-direction:column;flex-shrink:0;width:245px;padding:22px 17px 16px;display:flex}.plan2d-list-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.plan2d-list-heading h3{letter-spacing:-.3px;margin:0;font:700 14px Manrope,Arial,sans-serif}.plan2d-list-heading>span{color:#78926d;background:#eaf0e3;border-radius:6px;place-items:center;min-width:23px;height:23px;font-size:10px;font-weight:700;display:grid}.plan2d-empty{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;padding:0 6px 30px;display:flex}.plan2d-empty>span{color:#b6a47c;background:#f2eee2;border-radius:11px;place-items:center;width:41px;height:41px;margin-bottom:17px;font-size:26px;display:grid}.plan2d-empty strong{color:#4a6658;font-size:12px}.plan2d-empty p{color:#899585;max-width:170px;margin:7px 0;font-size:11px;line-height:1.65}.plan2d-mark-list{flex:1;min-height:0;margin:0 -8px 18px;padding:0 4px;list-style:none;overflow-y:auto}.plan2d-mark-list li{background:#f6f7ef;border:1px solid #0000;border-radius:7px;align-items:center;margin-bottom:6px;display:flex}.plan2d-mark-list li.selected{background:#edf3e8;border-color:#c6d8c4}.plan2d-focus-mark{text-align:left;background:0 0;border:0;flex:1;align-items:flex-start;gap:9px;min-width:0;padding:10px 8px;display:flex}.plan2d-focus-mark>i{border-radius:2px;flex-shrink:0;width:8px;height:8px;margin-top:4px}.plan2d-focus-mark>span{min-width:0}.plan2d-focus-mark b{overflow-wrap:anywhere;color:#4b6659;font-size:11px;font-weight:600;line-height:1.45;display:block}.plan2d-focus-mark small{color:#8c9887;margin-top:3px;font-size:9px;display:block}.plan2d-delete-mark{color:#84917e;background:0 0;border:0;border-radius:4px;flex-shrink:0;place-items:center;width:25px;height:28px;margin-right:3px;display:grid;font-size:17px!important}.plan2d-delete-mark:hover{color:#9a675c;background:#eddfd2}.plan2d-sidebar-foot{border-top:1px solid #e4e9dd;margin-top:auto;padding-top:13px}.plan2d-sidebar-foot p{color:#8b9787;margin:0 0 12px;font-size:10px;line-height:1.6}.plan2d-sidebar-foot button{color:#647e68;background:#fafbf3;border:1px solid #dae2d4;border-radius:6px;justify-content:space-between;align-items:center;width:100%;padding:9px;font-size:10px;display:flex}.plan2d-sidebar-foot button:hover{background:#eaf1e3}.plan2d-footer{color:#7a8e7c;background:#fafbf4;border-top:1px solid #dce4d7;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;min-height:36px;padding:8px 23px;font-size:9px;display:flex}.plan2d-footer>span:first-child{align-items:center;gap:6px;display:flex}.plan2d-download{color:#365f42;white-space:nowrap;background:#eaf2e2;border:1px solid #bbd2bb;border-radius:4px;margin-left:5px;padding:3px 7px;font-weight:700;text-decoration:none;display:inline-block}.plan2d-download:hover{background:#dcebd1}.plan2d-footer i{background:#8fad6c;border-radius:50%;flex-shrink:0;width:5px;height:5px}.plan2d-footer kbd{font:inherit;border:1px solid #dbe2d5;border-radius:3px;padding:1px 3px}@media (min-width:761px){.compass{top:177px}}@media (max-width:1000px){.plan2d-sidebar{width:205px;padding:18px 13px 13px}.plan2d-toolbar{gap:10px;padding:10px 16px}.plan2d-tool-group button{padding:8px 9px}.plan2d-colors{gap:8px;padding:0 12px}.plan2d-map-caption{text-align:right;max-width:140px;line-height:1.6;bottom:16px}}@media (max-width:760px){.plan2d-open{gap:7px;padding:8px 12px 8px 9px;top:153px;left:16px;right:auto}.plan2d-open>span:first-child{width:27px;height:29px;font-size:22px}.plan2d-overlay{border-radius:13px;inset:7px}.plan2d-header{gap:10px;padding:16px 15px 13px}.plan2d-eyebrow{letter-spacing:.1em;font-size:7px}.plan2d-heading h2{letter-spacing:-.5px;margin-top:5px;font-size:18px}.plan2d-heading p{display:none}.plan2d-head-actions{gap:8px}.plan2d-export{gap:7px;padding:10px;font-size:10px!important}.plan2d-close{width:28px;height:30px}.plan2d-toolbar{gap:12px 7px;padding:10px 12px}.plan2d-tool-group{gap:2px}.plan2d-tool-group button{flex-direction:column;gap:4px;min-width:43px;padding:6px 8px;font-size:9px;display:flex}.plan2d-tool-group button>span{font-size:20px}.plan2d-colors{border-right:0;gap:7px;margin-left:auto;padding:0 0 0 10px}.plan2d-colors button{border-width:2px;width:17px;height:17px}.plan2d-history{flex:1 0 100%;justify-content:flex-end;margin-top:-2px}.plan2d-history button{min-width:29px;height:28px;font-size:19px}.plan2d-history:before{content:"Drag to mark · Move to pan";color:#8c9b87;margin-right:auto;font-size:9px}.plan2d-sidebar{display:none}.plan2d-note-input{flex-wrap:wrap;gap:6px}.plan2d-note-input input{flex:1;width:auto}.plan2d-note-input small{flex:1 0 100%;padding-left:32px;font-size:10px}.plan2d-map-key{gap:9px;padding:7px 8px;font-size:8px;top:11px;left:11px}.plan2d-map-controls{bottom:12px;left:11px}.plan2d-map-caption{font-size:8px;bottom:11px;right:10px}.plan2d-footer{gap:8px;padding:8px 12px;font-size:8px}.plan2d-footer>span:first-child{flex-wrap:wrap}.plan2d-footer>span:last-child{white-space:nowrap}.plan2d-clear-confirm{gap:7px;padding:10px;font-size:10px;right:10px}}@media (max-width:400px){.plan2d-tool-group button{min-width:37px;padding:5px 6px}.plan2d-colors{gap:5px;padding-left:8px}.plan2d-heading h2{font-size:16px}.plan2d-export{padding:9px 7px}}@media (prefers-reduced-motion:reduce){.plan2d-open,.plan2d-overlay button{transition:none}}
.adventure-dock{z-index:7;color:#24434b;width:286px;position:absolute;bottom:110px;right:24px}.adventure-dock-body{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffdf6ed;border:1px solid #ffffffdb;border-radius:18px;padding:17px 18px 13px;box-shadow:0 10px 35px #183d4c13}.adventure-dock button,.adventure-journal button,.adventure-reward button{font:inherit}.adventure-dock-heading{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:0;display:flex}.adventure-level-chip{color:#ffdb8b;background:#254953;border-radius:11px 11px 11px 3px;flex-shrink:0;place-items:center;width:35px;height:38px;font:800 19px Manrope,sans-serif;display:grid}.adventure-dock-heading small{color:#71837e;letter-spacing:1.2px;font-size:8px;font-weight:700;display:block}.adventure-dock-heading strong{margin-top:4px;font:800 14px Manrope,sans-serif;display:block}.adventure-journal-arrow{color:#6a827c;margin-left:auto;font-size:20px}.adventure-xp-row{color:#75847d;justify-content:space-between;margin:15px 0 7px;font-size:10px;display:flex}.adventure-xp-row span:first-child{color:#496d64;font-weight:700}.adventure-xp-track{background:#e4e9de;border-radius:8px;height:4px;overflow:hidden}.adventure-xp-track i{background:#619481;border-radius:8px;height:100%;transition:width .35s;display:block}.adventure-active{padding-top:15px}.adventure-overline{letter-spacing:1.2px;color:#7c8982;font-size:8px;font-weight:700;line-height:1.5}.adventure-active h2{letter-spacing:-.35px;margin:5px 0 10px;font:800 15px/1.5 Manrope,sans-serif}.adventure-active p{color:#74827b;align-items:flex-start;gap:8px;margin:0;font-size:11px;line-height:1.6;display:flex}.adventure-active p small{font-variant-numeric:tabular-nums;margin-top:2px;font-size:9px;display:block}.adventure-objective-mark{border:1px solid #becdc2;border-radius:50%;flex:0 0 15px;place-items:center;width:15px;height:15px;margin-top:1px;display:inline-grid}.adventure-objective-mark.is-done{color:#fff;background:#5e8d7c;border-color:#5e8d7c}.adventure-objective-mark svg{width:13px;height:13px}.adventure-dock-actions{border-top:1px solid #e5e9df;justify-content:space-between;align-items:center;margin-top:15px;padding-top:11px;display:flex}.adventure-dock-actions button{background:0 0;border:0;padding:0;font-size:10px;font-weight:700}.adventure-dock-actions button span{margin-left:7px}.adventure-dock-actions .adventure-next{color:#4a7165;background:#edf1e7;border-radius:6px;padding:6px 9px}.adventure-mobile-open{display:none}.adventure-badge-icon{width:32px;height:32px}.adventure-overlay{z-index:35;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#153a45a8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.adventure-journal{color:#28434b;background:#fffdf7;border-radius:24px;flex-direction:column;width:min(780px,100%);max-height:calc(100dvh - 48px);display:flex;overflow:hidden;box-shadow:0 22px 100px #0c29334d}.adventure-journal-header{justify-content:space-between;align-items:flex-start;padding:28px 30px 20px;display:flex}.adventure-journal-header .adventure-overline{letter-spacing:1.6px;color:#8a977e;font-size:9px}.adventure-journal-header h2{letter-spacing:-1.1px;margin:8px 0 5px;font:800 27px/1.3 Manrope,sans-serif}.adventure-journal-header p{color:#879086;margin:0;font-size:12px}.adventure-close{color:#6a7e74;background:#eef0e7;border:0;border-radius:50%;width:34px;height:34px;font-size:24px!important}.adventure-player{background:#eaf0e6;border-radius:13px;align-items:center;gap:15px;margin:0 30px 21px;padding:17px 20px;display:flex}.adventure-player-level{color:#dfc67c;background:#31574f;border-radius:14px 14px 14px 4px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:52px;font:800 24px/1.1 Manrope,sans-serif;display:flex}.adventure-player-level small{letter-spacing:1px;margin-top:5px;font:700 7px DM Sans,sans-serif}.adventure-player>div{flex:1}.adventure-player strong{font:800 15px Manrope,sans-serif;display:block}.adventure-player>div>span{color:#7d8d7e;margin:6px 0 9px;font-size:10px;display:block}.adventure-player i:not(.adventure-xp-track i){margin:0 5px;font-style:normal}.adventure-player>.adventure-badge-icon{color:#93a58e;width:48px;height:48px;margin-left:8px}.adventure-tabs{border-bottom:1px solid #e7e9df;gap:26px;padding:0 30px;display:flex}.adventure-tabs button{color:#8a958c;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:10px 0 14px;font-size:12px;font-weight:700;display:flex}.adventure-tabs button[aria-selected=true]{color:#305c51;border-bottom-color:#3b796d}.adventure-tabs button>span{background:#e9eee3;border-radius:5px;place-items:center;min-width:24px;height:18px;padding:0 5px;font-size:9px;display:inline-grid}.adventure-journal-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c7d4c3 transparent;flex:1;min-height:0;overflow-y:auto}.adventure-mission-list,.adventure-badges-panel{padding:18px 30px 24px}.adventure-section-hint{color:#8b958b;margin:0 0 17px;font-size:11px;line-height:1.7}.adventure-mission{border:1px solid #e3e8dc;border-radius:14px;margin-bottom:13px;padding:17px 18px 12px}.adventure-mission.is-tracked{border-color:#86aa99;box-shadow:0 0 0 1px #86aa9926}.adventure-mission.is-complete{background:#f2f5ed}.adventure-mission-top{align-items:center;gap:12px;display:flex}.adventure-mission-icon{background:#f0f1e9;border-radius:11px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.adventure-mission-top h3{letter-spacing:-.2px;margin:3px 0 0;font:800 15px/1.4 Manrope,sans-serif}.adventure-xp-pill{color:#957f4e;white-space:nowrap;border:1px solid #e7ddbd;border-radius:6px;margin-left:auto;padding:5px 7px;font-size:9px;font-weight:700}.adventure-mission-description{color:#8a9489;margin:10px 0 12px;font-size:11px;line-height:1.6}.adventure-mission ul{margin:0;padding:0;list-style:none}.adventure-mission li{color:#526c61;align-items:center;gap:9px;padding:6px 0;font-size:11px;display:flex}.adventure-mission li .adventure-objective-mark{margin-top:0}.adventure-mission li.is-done>span:nth-child(2){color:#7d8d7b}.adventure-mission li>small{color:#85947e;white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:9px}.adventure-mission li>button{color:#58816c;white-space:nowrap;background:#edf1e7;border:0;border-radius:4px;margin-left:auto;padding:3px 7px;font-size:9px}.adventure-task-help{color:#7b8d77;background:#edf1e6;border-radius:7px;margin:10px 0 0;padding:9px 11px;font-size:10px;line-height:1.65}.adventure-mission footer{border-top:1px solid #e7ebdf;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:10px;display:flex}.adventure-mission footer>span{color:#8b9586;font-size:9px}.adventure-mission footer>button{color:#5d7f68;background:0 0;border:1px solid #cfdbca;border-radius:5px;padding:5px 8px;font-size:9px;font-weight:700}.adventure-mission footer>button.is-tracked{background:#e8efe1;border-color:#0000}.adventure-badge-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.adventure-collection-badge{text-align:center;background:#f3f3ed;border:1px solid #e9ebe2;border-radius:15px;padding:23px 10px 20px}.adventure-collection-badge.is-earned{background:#f5f4e8;border-color:#e8dfbd}.adventure-collection-medal{color:#aab5a3;background:#e5e8df;border:2px solid #d9dfd2;border-radius:23px 23px 23px 8px;place-items:center;width:68px;height:73px;margin:0 auto 13px;display:grid;position:relative}.adventure-collection-medal>.adventure-badge-icon{width:43px;height:43px}.is-earned .adventure-collection-medal{color:var(--badge-color);background:#fffdf4;border-color:#d9cb9b;box-shadow:0 3px #e9dfbf,0 7px 14px #71642a0d}.adventure-collection-medal>b{color:#fff;background:#729276;border:2px solid #fffdf7;border-radius:50%;place-items:center;width:20px;height:20px;font-size:10px;display:grid;position:absolute;bottom:-3px;right:-3px}.adventure-collection-badge h3{margin:0 0 6px;font:800 12px/1.5 Manrope,sans-serif}.adventure-collection-badge p{color:#939c8e;margin:0;font-size:10px;line-height:1.5}.adventure-collection-badge>span:last-child{color:#a0a895;margin-top:7px;font-size:8px;display:block}.is-earned.adventure-collection-badge>span:last-child{color:#a18443;font-weight:700}.adventure-journal-footer{background:#f5f5ed;border-top:1px solid #e8ebdf;justify-content:space-between;align-items:center;gap:12px;padding:15px 30px 18px;display:flex;position:relative}.adventure-journal-footer>span{color:#8c9888;font-size:9px}.adventure-journal-footer>button{color:#9b9e8d;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:9px;text-decoration:underline}.adventure-reset-confirm{align-items:center;gap:8px;font-size:9px;display:flex}.adventure-reset-confirm>span{color:#8a755f}.adventure-reset-confirm>button{background:#e8e7d9;border:0;border-radius:5px;padding:6px 8px;font-size:9px}.adventure-reset-confirm>button:first-of-type{color:#9b6250;background:#f0e4d8}.adventure-reward{z-index:25;background:#fffdf2;border:1px solid #e5dabb;border-radius:15px;align-items:center;gap:12px;width:max-content;max-width:calc(100vw - 32px);padding:14px 14px 14px 16px;animation:.3s ease-out adventure-unlock;display:flex;position:absolute;top:100px;left:50%;transform:translate(-50%);box-shadow:0 10px 45px #304d3e20}.adventure-reward-medal{background:#f0ead6;border-radius:15px 15px 15px 4px;flex-shrink:0;place-items:center;width:45px;height:49px;display:grid}.adventure-reward>span:nth-child(2){flex-direction:column;gap:5px;display:flex}.adventure-reward small{color:#9c894e;letter-spacing:1.1px;font-size:8px;font-weight:700}.adventure-reward strong{color:#365649;font:800 14px Manrope,sans-serif}.adventure-reward em{color:#87917c;font-size:10px;font-style:normal}.adventure-reward>button{color:#98a08c;background:0 0;border:0;align-self:flex-start;margin-left:8px;font-size:20px}@keyframes adventure-unlock{0%{opacity:0;margin-top:-10px}to{opacity:1;margin-top:0}}@media (max-width:1000px) and (min-width:761px){.adventure-dock{width:260px}}@media (max-width:760px){.adventure-dock{width:auto;bottom:110px;right:16px}.adventure-dock-body{display:none}.adventure-mobile-open{background:#fffdf5f2;border:1px solid #fff;border-radius:12px;align-items:center;gap:8px;padding:10px 13px;display:flex;box-shadow:0 4px 20px #294d4d14;font-size:11px!important;font-weight:700!important}.adventure-mobile-open>.adventure-badge-icon{color:#628873;width:24px;height:24px}.adventure-mobile-open b{color:#91a088;margin-left:5px;font-size:9px;display:inline-block}.adventure-overlay{padding:12px}.adventure-journal{border-radius:18px;max-height:calc(100dvh - 24px)}.adventure-journal-header{gap:10px;padding:22px 20px 18px}.adventure-journal-header h2{letter-spacing:-.8px;font-size:22px}.adventure-journal-header p{font-size:10px}.adventure-player{gap:11px;margin:0 20px 15px;padding:14px}.adventure-player>div>span{font-size:9px;line-height:1.5}.adventure-player>.adventure-badge-icon{display:none}.adventure-tabs{gap:22px;padding:0 20px}.adventure-tabs button{font-size:11px}.adventure-mission-list,.adventure-badges-panel{padding:14px 20px 20px}.adventure-mission{padding:14px 13px 11px}.adventure-mission-top{gap:8px}.adventure-mission-top h3{font-size:12px}.adventure-mission-icon{width:34px;height:36px}.adventure-mission-icon>.adventure-badge-icon{width:28px;height:28px}.adventure-xp-pill{padding:4px;font-size:8px}.adventure-overline{letter-spacing:.8px;font-size:7px}.adventure-mission li{gap:7px;font-size:10px}.adventure-mission footer>span{font-size:8px}.adventure-badge-grid{grid-template-columns:repeat(2,1fr);gap:10px}.adventure-collection-badge{padding:18px 7px}.adventure-journal-footer{align-items:flex-start;padding:13px 20px}.adventure-reset-confirm{flex-wrap:wrap;justify-content:flex-end}.adventure-reset-confirm>span{text-align:right;width:100%}.adventure-reward{gap:9px;padding:11px;top:83px}.adventure-reward strong{font-size:12px}.adventure-reward em{font-size:9px}}@media (prefers-reduced-motion:reduce){.adventure-xp-track i{transition:none}.adventure-reward{animation:none}}
.campus-joystick{display:none}.campus-joystick-pad{--stick-x:0px;--stick-y:0px;color:#3e7068;-webkit-backdrop-filter:blur(9px);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;background:radial-gradient(circle at 50% 45%,#f6faed92 0 34%,#fffdf670 35% 53%,#dce9d86b 54% 68%,#fffdf6a6 69%);border:1px solid #ffffffd4;border-radius:50%;width:116px;height:116px;padding:0;display:block;position:relative;box-shadow:inset 0 1px 2px #ffffffc9,0 5px 24px #21463c15}.campus-joystick-pad:focus-visible{outline-offset:5px;outline:3px solid #e7b55f}.campus-joystick-pad[data-active=true]{cursor:grabbing;border-color:#d6e8ce;box-shadow:inset 0 1px 2px #ffffffc9,0 0 0 4px #e8f1d731,0 7px 26px #21463c1c}.campus-joystick-thumb{width:44px;height:44px;transform:translate(var(--stick-x),var(--stick-y));pointer-events:none;background:linear-gradient(145deg,#fffef8 8%,#e8eee0 95%);border:1px solid #fffefa;border-radius:50%;justify-content:center;align-items:center;gap:3px;margin:-22px 0 0 -22px;transition:transform .15s cubic-bezier(.2,.9,.3,1),box-shadow .15s;display:flex;position:absolute;top:50%;left:50%;box-shadow:0 3px 7px #24453523,inset 0 2px 1px #fff}.campus-joystick-pad[data-active=true] .campus-joystick-thumb{transition:none;box-shadow:0 4px 10px #24453529,inset 0 2px 1px #fff}.campus-joystick-thumb i{background:#92aa8b87;border-radius:2px;width:2px;height:9px;box-shadow:1px 0 #ffffffa8}.joystick-cross{pointer-events:none;background:#96b09333;position:absolute;top:50%;left:50%}.joystick-cross-horizontal{width:58px;height:1px;margin-left:-29px}.joystick-cross-vertical{width:1px;height:58px;margin-top:-29px}.joystick-tick{pointer-events:none;background:#81a17b80;border-radius:50%;width:3px;height:3px;position:absolute}.joystick-tick-north{top:11px;left:calc(50% - 1px)}.joystick-tick-east{top:calc(50% - 1px);right:11px}.joystick-tick-south{bottom:11px;left:calc(50% - 1px)}.joystick-tick-west{top:calc(50% - 1px);left:11px}.campus-joystick-caption{color:#4f7565;text-shadow:0 1px 5px #ffffffc9;letter-spacing:2.4px;text-align:center;pointer-events:none;margin-top:9px;font-size:8px;font-weight:700;line-height:1.3;display:block}@media (any-pointer:coarse),(max-width:1100px){body.walking #app .campus-joystick{z-index:7;left:max(16px,env(safe-area-inset-left));bottom:calc(max(110px,env(safe-area-inset-bottom)) - 13px);pointer-events:auto;width:116px;height:138px;display:block;position:absolute}body.walking #app #walk-controls{display:none}body.walking #app .place-card{bottom:244px}:is(#app:has(#panorama:not([hidden])) .campus-joystick,#app:has(#campus-plan-overlay) .campus-joystick,#app:has(.adventure-overlay) .campus-joystick,#app:has(#about-dialog[open]) .campus-joystick){visibility:hidden;pointer-events:none}}@media (max-height:500px) and (orientation:landscape){body.walking #app .campus-joystick{bottom:calc(max(90px,env(safe-area-inset-bottom)) - 13px)}body.walking #app .place-card{max-height:calc(100dvh - 238px);bottom:224px}}@media (prefers-reduced-motion:reduce){.campus-joystick-thumb{transition:none}}
.campus-radar{z-index:8;color:#365b5e;background:#fffdf3e8;border:1px solid #ffffffda;border-radius:50%;width:150px;height:150px;padding:5px;transition:box-shadow .18s,transform .18s;display:block;position:absolute;top:92px;right:24px;box-shadow:0 5px 22px #173e4922,inset 0 1px 2px #ffffff80}.campus-radar:hover{transform:translateY(-1px);box-shadow:0 7px 26px #173e4930,0 0 0 3px #fffdf34d}.campus-radar-face{background:#d9e1cf;border-radius:50%;width:100%;height:100%;display:block;overflow:hidden}.campus-radar canvas{border-radius:50%;width:100%;height:100%;display:block}.campus-radar-caption{letter-spacing:1.4px;white-space:nowrap;background:#fffdf5f2;border:1px solid #ffffffb8;border-radius:7px;align-items:center;gap:5px;padding:4px 8px;font-size:8px;font-weight:700;display:flex;position:absolute;bottom:-5px;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #24494b0c}.campus-radar-caption i{background:#628e7d;border-radius:50%;width:4px;height:4px}.campus-radar-caption>span{color:#8ca08b;letter-spacing:0;font-size:10px}#app .compass{display:none}#app .plan2d-open{top:260px;right:24px}:is(#app:has(#panorama:not([hidden])) .campus-radar,#app:has(.adventure-overlay) .campus-radar,#app:has(.plan2d-overlay) .campus-radar){visibility:hidden}@media (max-width:760px){.campus-radar{top:calc(max(12px,env(safe-area-inset-top)) + 124px);width:112px;height:112px;padding:4px;right:12px}.campus-radar-caption{border-radius:6px;gap:4px;padding:3px 6px;font-size:7px;bottom:-4px}#app .plan2d-open{top:calc(max(12px,env(safe-area-inset-top)) + 252px);right:12px}#app:has(.places-panel:not(.collapsed)) .campus-radar{visibility:hidden}.walking #app .campus-radar{top:calc(max(12px,env(safe-area-inset-top)) + 64px)}.walking #app .plan2d-open{top:calc(max(12px,env(safe-area-inset-top)) + 190px)}.walking #app:has(.places-panel:not(.collapsed)) .campus-radar{visibility:visible}:is(.walking #app:has(#panorama:not([hidden])) .campus-radar,.walking #app:has(.adventure-overlay) .campus-radar,.walking #app:has(.plan2d-overlay) .campus-radar){visibility:hidden}}@media (prefers-reduced-motion:reduce){.campus-radar{transition:none}}
:root{--ios-tint:#227e75;--ios-label:#203b44;--ios-secondary:#6c7e7c;--ios-separator:#466c6120;--ios-surface:#f4f8f2ed;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,DM Sans,sans-serif}.brand-app-icon{background:#254e59;border-radius:14px;width:48px;height:48px;overflow:hidden;box-shadow:0 1px 2px #13313e20,inset 0 0 0 1px #ffffff2b}.brand-app-icon img{object-fit:contain;width:128%;max-width:none;height:128%;margin:-14%;display:block}.loading-app-icon{background:#254e59;border-radius:24px;width:82px;height:82px;display:block;overflow:hidden;box-shadow:0 10px 30px #244f5725}.loading-app-icon img{width:128%;max-width:none;height:128%;margin:-14%;display:block}.topbar .brand{-webkit-backdrop-filter:blur(22px)saturate(125%);backdrop-filter:blur(22px)saturate(125%);background:#f8fbf4eb;border-radius:20px;padding:5px 16px 5px 5px;box-shadow:0 5px 20px #1d3a4210}.topbar .brand-type small{color:#628079}#app .top-actions .icon-button{color:#365c5b;background:#f4f8f1ec;border-color:#ffffffb3;border-radius:14px;width:44px;height:44px;box-shadow:0 1px 3px #183c4710}#app .icon-button .campus-icon{stroke-width:1.8px}#app #light-toggle{font-size:0}#app #light-toggle:before{content:"";background:currentColor;width:22px;height:22px;display:block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2m0 16v2M2 12h2m16 0h2M5 5l1.4 1.4m11.2 11.2L19 19M5 19l1.4-1.4M17.6 6.4 19 5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2m0 16v2M2 12h2m16 0h2M5 5l1.4 1.4m11.2 11.2L19 19M5 19l1.4-1.4M17.6 6.4 19 5'/%3E%3C/svg%3E") 50%/contain no-repeat}#app #light-toggle[aria-label="Switch to daylight"]:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 15.5A8.5 8.5 0 0 1 8.5 4 8.5 8.5 0 1 0 20 15.5Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 15.5A8.5 8.5 0 0 1 8.5 4 8.5 8.5 0 1 0 20 15.5Z'/%3E%3C/svg%3E")}#app #light-toggle[aria-label="Switch to night"]:before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18h18M6.5 18a5.5 5.5 0 0 1 11 0M12 5v3M4.6 9.6l1.5 1.5M19.4 9.6l-1.5 1.5M8 21h8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18h18M6.5 18a5.5 5.5 0 0 1 11 0M12 5v3M4.6 9.6l1.5 1.5M19.4 9.6l-1.5 1.5M8 21h8'/%3E%3C/svg%3E")}#app .places-panel{-webkit-backdrop-filter:blur(24px)saturate(120%);backdrop-filter:blur(24px)saturate(120%);background:#f7faf3ef;border-color:#ffffffab;box-shadow:0 12px 38px #203d4712}#app .places-panel h1{letter-spacing:-1.05px}#app .panel-intro{color:#6d827b}#app .place-filters{background:#dfe8debd;border-radius:12px;gap:3px;margin:12px 0 11px;padding:4px}#app .place-filters button{color:#71837a;border:0;border-radius:9px;min-height:32px;padding:6px 3px;font-weight:600}#app .place-filters button[aria-pressed=true]{color:#28796e;background:#fbfdf6;box-shadow:0 1px 4px #2443331a,0 0 0 .5px #fffc}#app .search-field{color:#7f9588;background:#e8eee5a8;border:0;border-radius:12px;box-shadow:inset 0 0 0 .5px #456a5410}#app .search-field:focus-within{background:#fcfdf6;box-shadow:0 0 0 2px #72a99a50}#app .place-search{padding:12px 0}#app .place-row{border-radius:12px;min-height:49px;padding:9px 7px}#app .place-row:hover{background:#e6efe2}#app .place-row.selected{background:#dceadd;border-color:#9bbdab5c}#app .place-number{color:#668b70;background:linear-gradient(145deg,#f8fbef,#d6e4ce);border:0;border-radius:10px;width:33px;height:35px;box-shadow:0 1px 2px #2849340d,inset 0 1px #ffffffb3}#app .place-row.selected .place-number{color:#fffdf3;background:linear-gradient(145deg,#3d8c7e,#2f665f);box-shadow:0 2px 5px #2d625723}#app .tour-start{background:linear-gradient(145deg,#315d61,#254c52);border-radius:13px;box-shadow:0 3px 9px #21424a12,inset 0 1px #ffffff16}#app .tour-start:hover{background:linear-gradient(145deg,#38716e,#2c5d61)}#app .mode-switch{-webkit-backdrop-filter:blur(24px)saturate(130%);backdrop-filter:blur(24px)saturate(130%);background:#f3f8efe8;border-color:#ffffffb8;border-radius:18px;padding:5px;box-shadow:0 5px 24px #203e4514}#app .mode-switch button{color:#6b857c;border-radius:13px;min-height:44px;padding:11px 18px}#app .mode-switch button.active{color:#f5fbee;background:linear-gradient(145deg,#3a776f,#2b585c);box-shadow:0 2px 6px #214c4826,inset 0 1px #ffffff24}#app .mode-switch button.active .campus-icon{color:#dfecc9}#app .controls-hint{color:#56776c;background:#eef5e8a6;border-color:#ffffff3d}#app .view-tools{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#f5f9f0e8;border-color:#ffffffad;padding:5px;box-shadow:0 4px 20px #254a4812}#app .view-tools .icon-button{color:#527c70;border-radius:10px;width:37px;height:37px}#app .view-tools .icon-button:hover{background:#deebdc}#app .place-card{-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);background:#f8faf3f2;border-color:#ffffffba;border-radius:21px;box-shadow:0 12px 38px #203d4714}#app .place-card h2{letter-spacing:-.7px}#app .primary-button{background:linear-gradient(145deg,#34776d,#2b575a);border-radius:12px;min-height:42px;box-shadow:0 2px 6px #265c4d14}#app .text-button{color:#347c6e}#app .adventure-dock-body{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#f6faf1ee;border-color:#ffffffc2;border-radius:20px;box-shadow:0 9px 30px #284a3e12}#app .adventure-level-chip,.adventure-player-level{color:#f0e8bb;background:linear-gradient(145deg,#4a9180,#315c56);border-radius:12px;box-shadow:0 2px 6px #295c491b,inset 0 1px #ffffff35}#app .adventure-next{color:#3a7965;background:#e1eddb}#app .adventure-mobile-open{background:#f4f9edf2;border-color:#ffffffc7;border-radius:14px;box-shadow:0 4px 18px #294d3b14}.adventure-mission-icon{background:linear-gradient(145deg,#f9fbee,#e4ecda);border-radius:12px;box-shadow:0 1px 2px #34513d0b,inset 0 1px #ffffffbd}.adventure-collection-medal{border-radius:22%}.adventure-journal{-webkit-font-smoothing:antialiased}.adventure-journal .adventure-tabs{background:#e7ede1;border:0;border-radius:13px;gap:4px;margin:0 30px 12px;padding:4px}.adventure-journal .adventure-tabs button{border:0;border-radius:10px;flex:1;justify-content:center;min-height:38px;padding:8px 10px}.adventure-journal .adventure-tabs button[aria-selected=true]{color:#317365;background:#fbfdf5;box-shadow:0 1px 4px #28503b16}.adventure-journal .adventure-mission{border-radius:16px}#app .campus-radar{background:#f5faeee6;border-color:#ffffffbf;box-shadow:0 5px 22px #294c4822,inset 0 0 0 1px #ffffff31}#app .plan2d-open{background:#f6faeff0;border-color:#ffffffb8;border-radius:14px;box-shadow:0 4px 18px #294d3b12}@media (hover:hover){#app .icon-button:active,#app .primary-button:active,#app .tour-start:active,#app .mode-switch button:active{transform:scale(.97)}}@media (max-width:760px){.topbar .brand{border-radius:16px;gap:7px;padding:4px 10px 4px 4px}#app .brand-app-icon{border-radius:11px;width:38px;height:38px}#app .brand-type{font-size:17px}#app .brand-type small{font-size:6px}#app .top-actions{gap:5px}#app .top-actions .icon-button{border-radius:13px;width:42px;height:44px}#app .places-panel{border-radius:18px;padding:14px}#app .places-panel.collapsed{padding:13px 14px}#app .place-filters{margin:11px 0 9px}#app .place-filters button{min-height:36px;font-size:10px}#app .place-search{font-size:12px}#app .place-row{min-height:47px;padding:8px 5px}#app .mode-switch{padding:4px}#app .mode-switch button{border-radius:11px;gap:7px;min-height:43px;padding:10px 9px}#app .mode-switch button span{font-size:11px}#app .view-tools .icon-button{width:37px;height:38px}#app .view-tools .campus-icon{width:18px;height:18px}body.walking #app .view-tools{bottom:244px}#app .place-card{border-radius:18px}body.walking #app #place-card{border-radius:14px}body.walking #app .place-card .primary-button{min-height:35px}.adventure-journal .adventure-tabs{margin:0 20px 10px}.adventure-journal .adventure-tabs button{min-height:42px;font-size:11px}.adventure-mission li>button{min-height:28px}.adventure-close{min-width:38px;min-height:38px}.loading-app-icon{border-radius:21px;width:72px;height:72px}}@media (max-width:359px){#app .brand-type{font-size:15px}#app .brand-type small{font-size:5.6px}#app .top-actions .icon-button{width:38px}.topbar .brand{gap:6px;padding-right:8px}#app .view-tools .icon-button{width:34px}}@media (prefers-reduced-motion:reduce){#app button{transition:none}}
#app{--hud-edge:max(18px,env(safe-area-inset-left));--hud-top:max(16px,env(safe-area-inset-top));--hud-bottom:max(18px,env(safe-area-inset-bottom));--radar-size:132px}#app button{transition:background .16s,box-shadow .16s,transform .16s}#app button:active:not(:disabled){transform:translateY(1px)}#app button:focus-visible,#app select:focus-visible,#app input:focus-visible{outline-offset:3px;outline:3px solid #b18448}#app .topbar{top:var(--hud-top);left:var(--hud-edge);right:var(--hud-edge);z-index:12;gap:12px;height:52px}#app .brand{border-radius:17px;flex-shrink:0;height:52px;padding:5px 13px 5px 5px}#app .brand-type{font-size:20px}#app .brand-type small{letter-spacing:1.05px;font-size:7px}#app .top-actions{align-items:center;gap:8px;display:flex}#app .top-actions .icon-button,#app .hud-close{border-radius:13px;width:44px;min-width:44px;height:44px;min-height:44px}#app .places-panel{top:calc(var(--hud-top) + 72px);left:var(--hud-edge);width:286px;max-height:calc(100dvh - var(--hud-top) - 194px);z-index:8;padding:18px}#app .places-panel.collapsed{padding:10px 13px}#app .places-panel h1{letter-spacing:-.75px;margin:4px 0 0;font-size:21px}#app .places-panel.collapsed h1{font-size:17px}#app .panel-heading{align-items:center;gap:8px}#app .panel-heading .icon-button{width:44px;min-width:44px;height:44px;margin:0;font-size:24px}#app .places-panel.collapsed .eyebrow{display:none}#app .panel-intro{margin-top:12px;font-size:12px}#app .place-filters{gap:3px;margin:8px 0}#app .place-filters button{min-height:44px;padding:8px 3px;font-size:10px}#app .place-search{min-height:44px;font-size:14px}#app .place-row{min-height:54px}#app .place-row small{font-size:11px}#app .place-card,body.walking #app #place-card{left:var(--hud-edge);right:auto;top:calc(var(--hud-top) + 72px);width:286px;max-height:calc(100dvh - var(--hud-top) - 190px);z-index:9;padding:18px;bottom:auto}#app:has(.place-card:not([hidden])) .places-panel{display:none}#app:has(.activity-hud) #place-card{display:none}#app .place-card .icon-button{min-width:44px;min-height:44px}#app .card-actions{flex-wrap:wrap;gap:10px}#app .card-actions button{min-height:44px}#app .place-card p{font-size:12px;line-height:1.65}#app .place-card h2{font-size:23px}#app .campus-radar,body.walking #app .campus-radar{top:calc(var(--hud-top) + 72px);right:var(--hud-edge);width:var(--radar-size);height:var(--radar-size);z-index:9}#app .plan2d-open,body.walking #app .plan2d-open{top:calc(var(--hud-top) + 72px + var(--radar-size) + 20px);left:auto;right:var(--hud-edge);min-height:48px;width:var(--radar-size);z-index:9;border-radius:14px;justify-content:center;padding:7px}#app .plan2d-open small{font-size:9px}#app .view-tools,body.walking #app .view-tools{top:calc(var(--hud-top) + 72px + var(--radar-size) + 82px);bottom:auto;right:var(--hud-edge);z-index:8;flex-direction:column;gap:4px;padding:5px;display:flex}#app .view-tools .icon-button{border-radius:11px;width:44px;min-width:44px;height:44px;min-height:44px}#app .view-tools>span{width:24px;height:1px;margin:3px auto}#app .bottom-bar{left:50%;bottom:var(--hud-bottom);z-index:10;flex-direction:column-reverse;gap:9px;width:auto;max-width:calc(100% - 32px)}#app .mode-switch{background:#fafbf3ef;border:1px solid #fff9;border-radius:18px;gap:4px;width:356px;max-width:100%;padding:5px;display:flex;box-shadow:0 6px 26px #1b435d15}#app .mode-switch button{border-radius:12px;flex:1;justify-content:center;gap:7px;min-height:44px;padding:9px 12px}#app .mode-switch button span{font-size:12px}#app .mode-switch button.active{color:#fffaf0;background:#285a64;box-shadow:0 3px 8px #1c415326}#app .controls-hint{color:#426364;white-space:normal;text-align:center;background:#fffdf3e8;border-radius:8px;padding:5px 10px;font-size:10px}#app .world-caption,#app #walk-controls{display:none}#app .adventure-dock{right:var(--hud-edge);bottom:var(--hud-bottom);z-index:10;width:auto}#app .adventure-dock-body{display:none}#app .adventure-mobile-open{color:#315b61;background:#fbfcf3f2;border:1px solid #fff;border-radius:17px;justify-content:center;align-items:center;gap:8px;min-width:144px;min-height:56px;padding:10px 15px;font-weight:700;display:flex;box-shadow:0 5px 22px #173e4914;font-size:12px!important}#app .adventure-mobile-open>.adventure-badge-icon{width:25px;height:25px}#app .adventure-mobile-open b{color:#6b8780;font-size:10px}.activities-open{left:var(--hud-edge);bottom:var(--hud-bottom);z-index:10;color:#345c63;background:#fbfcf3f2;border:1px solid #fff;border-radius:17px;align-items:center;gap:9px;min-width:144px;min-height:56px;padding:10px 15px;font-size:12px;font-weight:700;display:flex;position:absolute;box-shadow:0 5px 22px #173e4914}.activities-open>svg{color:#b47791;width:24px;height:24px}.activities-open>span:last-child{color:#8a9b8c;margin-left:auto}#app #place-toast{top:calc(var(--hud-top) + 72px);z-index:15;max-width:min(380px,100% - 36px);font-size:12px;left:50%}#app .adventure-reward{top:calc(var(--hud-top) + 72px);z-index:18}.travel-actions{right:var(--hud-edge);bottom:calc(var(--hud-bottom) + 86px);z-index:9;width:118px;position:absolute}.travel-actions button{color:#315f65;background:#fbfcf2f2;border:1px solid #ffffffc4;border-radius:13px;min-height:46px;box-shadow:0 4px 18px #183e4012}.travel-boost{justify-content:center;align-items:center;gap:7px;width:100%;padding:10px;font-size:12px;font-weight:700;display:flex}.travel-boost svg{width:19px;height:19px}.travel-boost[aria-pressed=true]{color:#fff4d7;background:#2d6370;border-color:#4a7a83}.travel-actions kbd{opacity:.65;font:9px inherit}.flight-height-buttons{grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;display:grid}.flight-height-buttons button{touch-action:none;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:5px;display:flex}.flight-height-buttons b{font-size:19px;line-height:1}.flight-height-buttons small{font-size:9px;font-weight:700}.flight-readout{background:#f7fbf0ef;border:1px solid #fff;border-radius:13px;margin-bottom:6px;padding:7px 10px}.flight-readout>b{color:#315e65;font:800 19px Manrope,sans-serif}.flight-readout>b small{font:500 10px DM Sans,sans-serif}.flight-readout>span{float:right;letter-spacing:.8px;color:#6b8780;margin-top:6px;font-size:7px;font-weight:700;display:block}.flight-readout meter{accent-color:#67a79d;width:100%;height:5px;margin-top:5px;display:block}.activity-hud{left:50%;top:calc(var(--hud-top) + 72px);z-index:9;background:#fffdf3f2;border:1px solid #fff;border-radius:17px;align-items:center;gap:10px;width:300px;max-width:calc(100% - 36px);padding:11px 10px 11px 13px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 5px 24px #21495116}.activity-hud-icon{color:#ad718b;background:#f2dfdf;border-radius:11px;flex-shrink:0;place-items:center;width:35px;height:38px;display:grid}.activity-hud-icon svg{width:23px;height:23px}.activity-hud>div{flex:1;min-width:0}.activity-hud small{letter-spacing:1px;color:#758a81;font-size:7px;display:block}.activity-hud strong{white-space:nowrap;text-overflow:ellipsis;margin:3px 0;font-size:12px;display:block;overflow:hidden}.activity-hud>div>span{color:#70877d;white-space:nowrap;text-overflow:ellipsis;font-size:9px;display:block;overflow:hidden}.activity-hud .hud-close{box-shadow:none;background:0 0}.activity-hud.is-complete{background:#edf5e5}:is(#app:has(.campus-modal-overlay) :is(.campus-joystick,.campus-radar,.view-tools,.plan2d-open,.travel-actions),#app:has(#panorama:not([hidden])) :is(.travel-actions,.activities-open,.activity-hud),#app:has(#campus-plan-overlay) :is(.travel-actions,.activities-open,.activity-hud),#app:has(.adventure-overlay) :is(.travel-actions,.activities-open,.activity-hud)){visibility:hidden;pointer-events:none}#app .adventure-journal button{min-height:38px}#app .adventure-journal :is(.adventure-close,.adventure-tabs button){min-height:44px}@media (max-width:1100px){#app .view-tools,body.walking #app .view-tools{flex-direction:row;gap:3px}#app .view-tools>span,#app #rotate-view,#app #plan-view,#app #reset-view{display:none}#app .adventure-mobile-open,.activities-open{min-width:118px}#app .activity-hud{left:var(--hud-edge);top:calc(var(--hud-top) + 72px);transform:none}#app:has(.activity-hud) .places-panel{display:none}body.walking #app .campus-joystick{left:var(--hud-edge);bottom:calc(var(--hud-bottom) + 94px);width:112px;height:132px}body.walking #app #walk-controls{display:none}}@media (max-width:760px){#app{--hud-edge:max(12px,env(safe-area-inset-left));--hud-top:max(12px,env(safe-area-inset-top));--hud-bottom:max(12px,env(safe-area-inset-bottom));--radar-size:96px}#app .topbar{gap:6px;height:48px}#app .brand{border-radius:15px;gap:7px;height:48px;padding-right:9px}#app .brand-symbol{border-radius:10px;width:36px;height:36px}#app .brand-type{font-size:17px}#app .brand-type small{letter-spacing:.7px;font-size:5.5px}#app .top-actions{gap:5px}#app .top-actions .icon-button{border-radius:12px;width:44px;min-width:44px;height:44px}#app .places-panel{top:calc(var(--hud-top) + 64px);width:calc(100% - 24px);max-height:calc(100dvh - var(--hud-top) - 196px);padding:14px}#app .places-panel.collapsed{width:calc(100% - var(--radar-size) - 48px);padding:6px 10px}#app .places-panel.collapsed h1{letter-spacing:-.5px;font-size:15px}#app .panel-heading .icon-button{width:40px;min-width:40px}#app .places-panel:not(.collapsed){z-index:13}#app #places{min-height:50px;max-height:none}#app .campus-radar,body.walking #app .campus-radar{top:calc(var(--hud-top) + 64px)}#app .plan2d-open,body.walking #app .plan2d-open{top:calc(var(--hud-top) + 64px + var(--radar-size) + 17px);width:96px;min-height:46px}#app .view-tools,body.walking #app .view-tools{top:calc(var(--hud-top) + 64px + var(--radar-size) + 74px)}#app .bottom-bar{width:calc(100% - 24px)}#app .mode-switch{gap:2px;width:322px;padding:4px}#app .mode-switch button{gap:6px;min-height:44px;padding:8px 10px}#app .mode-switch button span{font-size:11px}#app .controls-hint{display:none}#app .adventure-dock,.activities-open{bottom:calc(var(--hud-bottom) + 68px)}#app .adventure-mobile-open,.activities-open{border-radius:13px;gap:6px;min-width:104px;min-height:44px;padding:7px 10px;font-size:11px!important}.activities-open>svg,#app .adventure-mobile-open>.adventure-badge-icon{width:21px;height:21px}#app .adventure-mobile-open b{margin-left:2px;font-size:9px}#app .place-card{top:auto;bottom:calc(var(--hud-bottom) + 68px);width:auto;max-height:min(46dvh,360px);padding:16px;left:12px;right:12px}#app .place-card h2{font-size:21px}body.walking #app #place-card{top:calc(var(--hud-top) + 64px);width:calc(100% - var(--radar-size) - 48px);max-height:166px;padding:10px;bottom:auto;left:12px;right:auto}body.walking #app #place-card h2{margin:3px 0 8px;font-size:14px}body.walking #app #place-card .card-top{gap:3px}body.walking #app #place-card .card-top .eyebrow{font-size:6px}body.walking #app #place-card .card-top .icon-button{width:34px;min-width:34px;height:34px;min-height:34px}body.walking #app #place-card #walk-here{display:none}body.walking #app #place-card .primary-button{min-height:38px;padding:8px;font-size:10px}#app .travel-actions{bottom:calc(var(--hud-bottom) + 130px);width:104px}#app .travel-actions kbd{display:none}body.walking #app .campus-joystick{bottom:calc(var(--hud-bottom) + 130px);width:108px;height:128px}#app .campus-joystick-pad{width:108px;height:108px}#app .campus-joystick-caption{letter-spacing:1.5px;margin-top:7px;font-size:7px}#app .activity-hud{top:calc(var(--hud-top) + 64px);width:calc(100% - var(--radar-size) - 48px);gap:7px;padding:9px}#app .activity-hud strong{font-size:11px}#app .activity-hud-icon{display:none}#app .activity-hud .hud-close{width:30px;min-width:30px;height:44px}#app:has(.activity-hud) #place-card{display:none}#app:has(.place-card:not([hidden])) .activities-open{visibility:hidden}#app #place-toast{top:auto;bottom:calc(var(--hud-bottom) + 260px);font-size:11px}}@media (max-width:380px){#app .brand-type{font-size:14px}#app .brand-type small{display:none}#app .brand-symbol{width:32px;height:32px}#app .brand{gap:6px;height:44px}#app .top-actions{gap:4px}#app .top-actions .icon-button{width:44px;min-width:44px}#app .places-panel.collapsed h1{font-size:13px}#app .mode-switch button{padding:8px}}@media (max-height:580px) and (orientation:landscape){#app{--radar-size:68px;--hud-top:8px;--hud-bottom:max(10px,env(safe-area-inset-bottom))}#app .topbar{height:46px}#app .places-panel{width:260px;max-height:calc(100dvh - 150px);top:66px}#app .places-panel.collapsed{width:220px}#app .campus-radar,body.walking #app .campus-radar{top:66px}#app .plan2d-open,body.walking #app .plan2d-open{white-space:nowrap;gap:5px;width:94px;height:44px;min-height:44px;padding:6px;top:148px}#app .plan2d-open small{display:none}#app .plan2d-open>span:first-child{width:22px;height:25px;font-size:19px}#app .plan2d-open>span:last-child{font-size:11px}#app .view-tools,body.walking #app .view-tools{display:none}#app .bottom-bar{width:330px;max-width:330px}#app .controls-hint{display:none}#app .mode-switch{width:330px}#app .adventure-dock,.activities-open{bottom:var(--hud-bottom)}#app .adventure-mobile-open,.activities-open{min-width:110px;min-height:52px}body.walking #app .campus-joystick{bottom:calc(var(--hud-bottom) + 72px);width:88px;height:103px}#app .campus-joystick-pad{width:88px;height:88px}#app .campus-joystick-caption{margin-top:4px;font-size:6px}#app .travel-actions{bottom:calc(var(--hud-bottom) + 72px);width:104px}#app .travel-actions kbd{display:none}#app .flight-readout{width:94px;position:absolute;bottom:0;right:116px}#app .flight-height-buttons{gap:4px}#app .flight-height-buttons button{height:44px;min-height:44px}#app .activity-hud{width:260px;top:66px}#app .place-card,body.walking #app #place-card{width:260px;max-height:calc(100dvh - 146px);top:66px;bottom:auto}}@media (max-width:760px) and (max-height:700px) and (orientation:portrait){#app .view-tools,body.walking #app .view-tools{left:var(--hud-edge);top:148px;right:auto}}@media (prefers-reduced-motion:reduce){#app button{transition:none}}
.student-pass-open{text-align:left;pointer-events:auto;background:#f9fbf3ef;border:1px solid #fff;border-radius:15px;align-items:center;gap:9px;max-width:210px;min-height:48px;padding:4px 11px 4px 5px;display:flex;box-shadow:0 4px 20px #20444b12}.student-pass-mini{background:color-mix(in srgb,var(--faculty-color),#fff4dc 65%);border-radius:11px;flex-shrink:0;width:38px;height:38px;display:block;overflow:hidden}.student-pass-mini svg{width:100%;height:100%}.student-pass-open>span:nth-child(2){min-width:0}.student-pass-open b{text-overflow:ellipsis;color:#2b515a;max-width:110px;font-size:12px;display:block;overflow:hidden}.student-pass-open small{letter-spacing:.6px;color:#6d8980;margin-top:3px;font-size:8px;font-weight:700;display:block}.student-pass-open>svg{color:var(--faculty-color);margin-left:3px}.campus-modal-overlay{z-index:60;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#173d4bb3;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.campus-sheet{overscroll-behavior:contain;scrollbar-width:thin;background:#fbfbf3;border-radius:25px;width:min(700px,100%);max-height:calc(100dvh - 48px);padding:28px;overflow:auto;box-shadow:0 28px 110px #08293855}.campus-sheet-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.campus-sheet-heading h2{color:#254d58;letter-spacing:-1px;margin:7px 0;font:800 28px/1.2 Manrope,sans-serif}.campus-sheet-heading p{color:#728780;margin:0;font-size:12px;line-height:1.6}.hud-close{color:#4a6d65;background:#edf2e7;border:1px solid #e3e9dd;flex-shrink:0;place-items:center;font-size:25px;line-height:1;display:grid}.hud-primary{color:#fff8e9;background:#2e6570;border:1px solid #2e6570;border-radius:12px;justify-content:center;align-items:center;gap:12px;min-height:46px;padding:11px 17px;font-size:12px;font-weight:700;display:flex;box-shadow:0 3px 6px #244b6014}.hud-primary:hover{background:#397680}.pass-sheet{width:min(466px,100%)}.pass-sheet .campus-sheet-heading{margin-bottom:16px}.pass-heading-heart{color:#c987a3;vertical-align:1px;margin-left:8px;font-size:24px;font-weight:500;display:inline-block}.pass-flip{aspect-ratio:1.64;perspective:1200px;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:21px;width:100%;padding:0;display:block;position:relative}.pass-flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.75,.25,1);display:block;position:relative;transform:rotate(-1.2deg)}.pass-flip.is-flipped .pass-flip-inner{transform:rotate(1deg)rotateY(180deg)}.pass-face-wrap{backface-visibility:hidden;display:block;position:absolute;inset:0;transform:translateZ(.01px)}.pass-face-back{transform:rotateY(180deg)translateZ(.01px)}.siswa-card{isolation:isolate;aspect-ratio:1.64;background:linear-gradient(125deg,#26566d 0%,#397784 62%,var(--faculty-color) 100%);color:#fff8e3;border:1px solid #d0e3e0;border-radius:19px;width:100%;padding:20px;position:relative;overflow:hidden;transform:rotate(-1.5deg);box-shadow:0 15px 30px #1e526a25,inset 0 1px 1px #ffffff50}.pass-waves{z-index:-1;width:100%;height:100%;position:absolute;inset:0}.siswa-card-brand b{letter-spacing:-.7px;font:800 17px Manrope,sans-serif;display:block}.siswa-card-brand b span{color:#edcc7e;margin-left:5px}.siswa-card-brand small{letter-spacing:2.1px;color:#c3dfdc;margin-top:5px;font-size:6px;font-weight:700;display:block}.card-faculty{letter-spacing:.6px;background:#ffffff10;border:1px solid #d9e7d96e;border-radius:6px;padding:5px 8px;font-size:9px;font-weight:700;position:absolute;top:20px;right:18px}.card-portrait{background:linear-gradient(135deg,#efdbad,#c3d3c1);border:2px solid #ffffff73;border-radius:15px 15px 15px 5px;width:76px;height:80px;position:absolute;top:76px;left:20px;overflow:hidden}.card-portrait svg{width:100%;height:100%}.card-student{position:absolute;top:83px;left:112px;right:15px}.card-student>small{letter-spacing:1.3px;color:#c1dcdb;font-size:6px}.card-student strong{letter-spacing:-1px;text-overflow:ellipsis;margin:6px 0 5px;font:800 clamp(20px,5.5vw,29px)/1.1 Manrope,sans-serif;display:block;overflow:hidden}.card-student>span{color:#d7e5db;font-size:8px}.card-student i{margin:0 4px;font-style:normal}.card-bottom{justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:16px;left:20px;right:20px}.card-bottom>span:first-child{letter-spacing:1.6px;color:#e2e8d9;font:10px ui-monospace,SFMono-Regular,Consolas,monospace}.card-chip{background:linear-gradient(135deg,#ebd7a4,#b59958);border:1px solid #ddc382;border-radius:5px;grid-template-columns:repeat(3,1fr);width:31px;height:24px;display:grid;overflow:hidden;transform:rotate(-4deg)}.card-chip i{border-right:1px solid #987d4c6b}.pass-flip .siswa-card{aspect-ratio:auto;text-align:left;border:2px solid #f5e5c4;border-radius:21px;height:100%;display:block;position:absolute;inset:0;transform:none;box-shadow:0 13px 27px #28576b27,inset 0 1px 1px #ffffff50}.card-stitch{pointer-events:none;border:1px dashed #fff1cd59;border-radius:13px;display:block;position:absolute;inset:7px}.pass-flip .siswa-card-brand b{font-size:17px}.pass-flip .siswa-card-brand small{letter-spacing:1.6px;font-size:6px}.pass-flip .card-faculty{background:#fff4d21c;border-color:#dce9d477;border-radius:9px}.pass-flip .card-portrait{background:linear-gradient(140deg,#f4dbb8,#d7e2c8);border:3px solid #f8e9bf;border-radius:20px 20px 20px 7px;top:73px;transform:rotate(-4deg);box-shadow:0 4px 7px #21494e22}.pass-flip .card-student{top:78px}.pass-flip .card-student strong{margin:5px 0 4px}.pass-flip .card-username{color:#f1d9d8;letter-spacing:0;font:500 11px ui-monospace,SFMono-Regular,Consolas,monospace;display:block}.pass-flip .card-campus{margin-top:7px;font-size:8px;display:block}.card-blossom{color:#ebb0c3;pointer-events:none;width:28px;height:28px;position:absolute}.card-blossom-one{opacity:.7;top:55px;right:17px;transform:rotate(16deg)}.card-blossom-two{width:19px;height:19px;top:142px;left:88px;transform:rotate(-10deg)}.card-love-sticker{color:#7a6260;letter-spacing:.05px;background:#f5e4d6;border:1px solid #f9efdfb3;border-radius:7px;align-items:center;gap:5px;max-width:145px;padding:5px 7px;font:700 7px DM Sans,sans-serif;display:inline-flex;transform:rotate(3deg)}.card-love-sticker>span{color:#b97d96;font-size:12px;line-height:1}.card-sparkle{color:#eed39b;font-size:17px;position:absolute}.card-sparkle-one{top:58px;left:104px}.siswa-card-back .card-stitch{border-color:#ba9b6b66}.card-back-top{justify-content:space-between;align-items:center;gap:9px;display:flex;position:absolute;top:18px;left:20px;right:20px}.card-back-top b{letter-spacing:-.15px;font:800 11px Manrope,sans-serif}.card-back-top>span{color:#c589a0;font-size:23px;line-height:1}.card-cat-stamp{text-align:center;width:30%;display:block;position:absolute;top:22%;left:4.5%}.card-cat-stamp>svg{width:100%;height:auto;display:block}.card-cat-stamp>small{letter-spacing:.8px;color:#9a8b6d;margin-top:1px;font:700 5px DM Sans,sans-serif;display:block}.card-back-profile{flex-direction:column;align-items:flex-start;display:flex;position:absolute;top:29%;left:39%;right:16px}.card-back-profile>small{letter-spacing:1.1px;color:#978c73;font-size:6px;display:block}.card-back-profile>strong{letter-spacing:-.6px;white-space:nowrap;width:100%;margin:5px 0 6px;font:800 clamp(12px,3.7vw,17px)/1.15 ui-monospace,SFMono-Regular,Consolas,monospace;display:block}.card-back-profile>span{color:#6f8171;font-size:10px;line-height:1.5}.card-back-profile>span i{color:#b79c6f;margin:0 3px;font-style:normal}.card-back-profile>small:not(:first-child){margin-top:12px}.card-back-footer{justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;bottom:14px;left:20px;right:20px}.card-back-footer>span{display:block}.card-back-footer b{color:#7c8a73;font-size:8px;font-weight:600;display:block}.card-back-footer small{letter-spacing:1px;color:#a38e70;margin-top:5px;font:8px ui-monospace,SFMono-Regular,Consolas,monospace;display:block}.card-back-footer>svg{color:#d49cae;width:26px;height:26px;transform:rotate(14deg)}.card-back-petals{opacity:.6;gap:5px;display:flex;position:absolute;top:46px;right:13px}.card-back-petals i{background:#d9a5b2;border-radius:80% 10%;width:4px;height:8px;display:block;transform:rotate(24deg)}.pass-flip-caption{color:#8d9a88;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:10px;display:flex}.pass-flip-caption>span:nth-child(2)>span{color:#698d85;margin-left:4px}.pass-face-dots{gap:5px;display:flex}.pass-face-dots i{background:#dce3d5;border-radius:50%;width:5px;height:5px}.pass-face-dots i.is-current{background:#6e9d94;border-radius:5px;width:13px}.pass-side-label{letter-spacing:1px;color:#9c9e86;font-size:7px}.pass-form{gap:14px;margin-top:19px;display:grid}.pass-form label{color:#3c6267;min-width:0;font-size:12px;font-weight:700;display:block}.pass-form label>span{float:right;color:#86958b;font-size:9px;font-weight:400}.pass-form input,.pass-form select{color:#2e535c;background:#fffef7;border:1px solid #d8e2d7;border-radius:11px;width:100%;min-height:46px;margin-top:8px;padding:11px 12px;font:14px DM Sans,sans-serif;display:block}.pass-form select{text-overflow:ellipsis;min-width:0}.pass-form label>.username-field{float:none;color:#91a699;background:#fffef7;border:1px solid #d8e2d7;border-radius:11px;align-items:center;gap:8px;width:100%;margin-top:8px;padding-left:13px;font:500 15px DM Sans,sans-serif;display:flex}.username-field:focus-within{border-color:#83a59a;box-shadow:0 0 0 3px #dce9dc80}.pass-form .username-field input{min-width:0;box-shadow:none;background:0 0;border:0;margin:0;padding-left:0;outline:none!important}.username-help{color:#869581;margin-top:6px;font-size:9px;font-weight:400;line-height:1.5;display:block}.username-help.is-invalid{color:#ad765f}.pass-local-note{color:#74877a;background:#edf2e6;border-radius:10px;margin:0;padding:11px 13px;font-size:10px;line-height:1.7}.pass-form>.hud-primary{width:100%}.faculty-rep{background:color-mix(in srgb,var(--faculty-color),#fffef5 90%);border:1px solid color-mix(in srgb,var(--faculty-color),#fffef5 70%);border-radius:15px;align-items:center;gap:12px;margin-bottom:19px;padding:15px;display:flex}.faculty-rep>span{color:var(--faculty-color);font-size:29px}.faculty-rep>div{flex:1;min-width:0}.faculty-rep strong{color:#345b64;font-size:13px;display:block}.faculty-rep strong small{font-size:10px;font-weight:500}.faculty-rep p{color:#7c8b7f;margin:4px 0 0;font-size:10px;line-height:1.5}.faculty-rep button{color:#496e6d;background:#ffffff8c;border:0;border-radius:10px;min-height:44px;padding:8px;font-size:11px}.life-activities{gap:14px;display:grid}.life-activities article{background:#fffef8;border:1px solid #e0e7da;border-radius:17px;gap:17px;padding:16px;display:flex}.life-activity-art{background:color-mix(in srgb,var(--activity-color),#fff6e7 87%);width:100px;min-height:112px;color:var(--activity-color);border-radius:13px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:11px;display:flex;position:relative}.life-activity-art svg{width:45px;height:45px}.life-activity-art>span{letter-spacing:.8px;font-size:6px;font-weight:700}.life-activities article>div:last-child{flex:1;min-width:0}.life-activities h3{letter-spacing:-.4px;color:#345d65;margin:3px 0 7px;font:800 16px/1.4 Manrope,sans-serif}.life-activities p{color:#7c8c80;margin:0;font-size:11px;line-height:1.65}.life-activities footer{justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.life-activities footer>span{color:#85927b;font-size:9px}.life-activities footer i{margin:0 3px;font-style:normal}.life-activities .hud-primary{white-space:nowrap;min-height:44px;padding:8px 13px;font-size:11px}.life-coming{border:1px dashed #d8e0d0;border-radius:13px;margin-top:19px;padding:15px}.life-coming strong{color:#5a7869;font-size:12px}.life-coming p{color:#889580;margin:6px 0 0;font-size:11px;line-height:1.7}@media (max-width:760px){.student-pass-open{border-radius:12px;justify-content:center;width:44px;height:44px;min-height:44px;padding:3px}.student-pass-open>span:nth-child(2),.student-pass-open>svg{display:none}.student-pass-mini{border-radius:9px;width:36px;height:36px}.campus-modal-overlay{padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.campus-sheet{border-radius:21px;max-height:calc(100dvh - 24px);padding:21px}.campus-sheet-heading{gap:9px;margin-bottom:19px}.campus-sheet-heading h2{font-size:24px}.campus-sheet-heading .eyebrow{letter-spacing:.8px;font-size:7px}.campus-sheet-heading p{font-size:11px}.life-activities article{gap:12px;padding:12px}.life-activity-art{width:62px;min-height:110px}.life-activity-art svg{width:34px;height:34px}.life-activity-art>span{letter-spacing:.4px;font-size:5px}.life-activities h3{font-size:13px}.life-activities p{font-size:10px}.life-activities footer{flex-direction:column;align-items:flex-start;gap:8px}.life-activities .hud-primary{width:100%}.faculty-rep{gap:8px;padding:11px}.faculty-rep p{font-size:9px}}@media (max-width:380px){.campus-sheet{padding:17px}.siswa-card{aspect-ratio:1.58;border-radius:16px;padding:16px}.siswa-card-brand b{font-size:14px}.card-faculty{font-size:7px;top:15px;right:13px}.card-portrait{border-radius:11px;width:61px;height:66px;top:65px;left:16px}.card-student{top:68px;left:89px;right:10px}.card-student strong{font-size:21px}.card-student>span{font-size:6px}.card-bottom{bottom:12px;left:16px;right:16px}.card-bottom>span:first-child{letter-spacing:1px;font-size:8px}.card-chip{width:25px;height:19px}.pass-flip{aspect-ratio:1.58}.pass-flip .siswa-card{border-radius:17px}.pass-flip .siswa-card-brand b{font-size:14px}.pass-flip .siswa-card-brand small{letter-spacing:1.25px;font-size:5px}.pass-flip .card-portrait{border-radius:15px 15px 15px 6px;top:63px}.pass-flip .card-student{top:67px}.pass-flip .card-student strong{margin-top:4px;margin-bottom:3px;font-size:20px}.pass-flip .card-username{font-size:9px}.pass-flip .card-campus{margin-top:5px;font-size:6px}.card-love-sticker{gap:3px;max-width:118px;padding:4px 5px;font-size:5.5px}.card-love-sticker>span{font-size:10px}.card-blossom-one{width:21px;height:21px;top:45px;right:12px}.card-blossom-two{width:16px;height:16px;top:117px;left:72px}.card-sparkle-one{font-size:13px;top:49px;left:84px}.card-back-top{top:14px;left:16px;right:16px}.card-back-top b{font-size:9px}.card-cat-stamp>small{display:none}.card-back-profile{right:12px}.card-back-profile>strong{margin-top:4px;margin-bottom:4px}.card-back-profile>span{font-size:8px}.card-back-profile>small{letter-spacing:.8px;font-size:5px}.card-back-profile>small:not(:first-child){margin-top:8px}.card-back-footer{bottom:12px;left:16px;right:16px}.card-back-footer b{font-size:6.5px}.card-back-footer small{margin-top:4px;font-size:6.5px}.card-back-footer>svg{width:22px;height:22px}.pass-flip-caption{font-size:9px}}@media (prefers-reduced-motion:reduce){.pass-flip-inner{transition:none}}.pass-flip,.siswa-card{aspect-ratio:1.586}.pass-flip .siswa-card{color:#3d3770;border:2px solid #ffffffd9;border-radius:22px;padding:0;overflow:hidden;box-shadow:0 18px 34px #7a6bc433,0 2px 6px #7a6bc426,inset 0 1px #fff}.pass-flip .siswa-card-front{background:radial-gradient(70% 90% at 0 0,#e3dcff 0%,#0000 70%),radial-gradient(70% 90% at 100% 0,#ffd9e8 0%,#0000 70%),radial-gradient(80% 90% at 100% 100%,#ffe6cf 0%,#0000 70%),radial-gradient(80% 90% at 0 100%,#cdf2e3 0%,#0000 70%),linear-gradient(135deg,#e6e1ff,#fbe3f0 50%,#e2f5ee)}.pass-flip .siswa-card-front:after{content:"";background:linear-gradient(90deg,#c7b8ff,#ffb8d2,#ffd7a8,#a8e6cf);height:6px;position:absolute;inset:auto 0 0}.card-sheen{pointer-events:none;background:linear-gradient(115deg,#0000 35%,#ffffff8c 45%,#fff3 52%,#0000 60%);transition:transform .9s;position:absolute;inset:-40% -10%;transform:translate(-30%)}.pass-flip:hover .card-sheen{transform:translate(30%)}.pass-flip .siswa-card-brand{position:absolute;top:8%;left:5.5%}.pass-flip .siswa-card-brand b{letter-spacing:-.6px;color:#4a3f8f;font:800 18px/1 Manrope,sans-serif}.pass-flip .siswa-card-brand b span{color:#f29bbd}.pass-flip .siswa-card-brand small{letter-spacing:2px;color:#8b80c4;margin-top:5px;font:800 7px/1 DM Sans,sans-serif}.pass-flip .card-faculty{color:#4a3f8f;letter-spacing:.8px;background:#ffffffb3;border:1px solid #fff;border-radius:99px;align-items:center;gap:6px;padding:5px 10px 5px 6px;font:800 10px/1 Manrope,sans-serif;display:inline-flex;position:absolute;top:8%;right:5.5%;box-shadow:0 2px 6px #8a7bd022}.card-faculty i{background:color-mix(in srgb, var(--fc), #fff 35%);border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 2px #fff}.pass-flip .card-chip{aspect-ratio:1.3;background:linear-gradient(135deg,#fff3c9,#f3d98f 45%,#fbe8b1 60%,#e2c27a);border:0;border-radius:8px;grid-template-rows:repeat(3,1fr);grid-template-columns:1fr 1fr;gap:1px;width:13.5%;padding:3px;display:grid;position:absolute;top:31%;left:6%;overflow:hidden;transform:none;box-shadow:inset 0 0 0 1px #c9a55a55,0 1px 3px #b0905033}.pass-flip .card-chip i{border:1px solid #c9a55a4d;border-radius:2px}.card-contactless{color:#9c90d8;width:7%;height:auto;position:absolute;top:33%;left:22%}.pass-flip .card-portrait{aspect-ratio:1;background:radial-gradient(circle at 50% 30%,#fff1dc,#ffd6e4);border:3px solid #fff;border-radius:50%;width:21%;height:auto;position:absolute;top:25%;left:auto;right:6%;overflow:visible;transform:rotate(-4deg);box-shadow:0 6px 14px #8a7bd033}.pass-flip .card-portrait svg{border-radius:50%}.card-portrait-blossom{color:#ffb3cf;position:absolute;top:-10%;right:-10%;transform:rotate(18deg);width:38%!important;height:38%!important}.pass-flip .card-holder{flex-direction:column;gap:3px;display:flex;position:absolute;top:52%;left:6%;right:32%}.card-holder small,.card-fields small{letter-spacing:1.4px;color:#9a8fcf;font:800 6px/1 DM Sans,sans-serif}.card-holder strong{text-overflow:ellipsis;letter-spacing:.4px;color:#3d3770;white-space:nowrap;max-width:100%;font:800 clamp(15px,4.4vw,20px)/1.1 Manrope,sans-serif;overflow:hidden}.card-holder em{color:#e0779f;font:600 9.5px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.card-fields{align-items:flex-end;gap:7%;display:flex;position:absolute;bottom:10%;left:6%;right:26%}.card-fields>span{background:#ffffff8c;border-radius:8px;flex-direction:column;gap:3px;min-width:0;padding:4px 7px;display:flex}.card-fields b{letter-spacing:.8px;color:#3d3770;white-space:nowrap;font:700 10.5px/1.1 ui-monospace,SFMono-Regular,Consolas,monospace}.card-mark{align-items:center;gap:3px;display:flex;position:absolute;bottom:10%;right:6%}.card-mark b{letter-spacing:-1px;color:#a291f0;text-shadow:0 2px #fff;font:italic 900 22px/1 Manrope,sans-serif}.card-mark span{color:#ff9fc2;font-size:15px;transform:translateY(-6px)rotate(12deg)}.pass-flip .card-blossom-one{color:#ffc0d6;opacity:.95;width:22px;height:22px;top:9%;right:28%}.card-sparkle{color:#f4c56d;position:absolute}.pass-flip .card-sparkle-one{font-size:13px;top:30%;left:31%}.card-sparkle-two{color:#a8dcc8;font-size:10px;top:50%;right:31%}.card-heart{color:#ffb3cf;font-size:12px;position:absolute;top:12%;left:47%;transform:rotate(-12deg)}.card-stitch{display:none!important}.pass-flip .siswa-card-back{color:#3d3770;background:radial-gradient(80% 100% at 100% 0,#ffe3ee,#0000 70%),radial-gradient(80% 100% at 0 100%,#dff4ec,#0000 70%),linear-gradient(160deg,#f4f0ff,#fff5ef)}.card-stripe{background:linear-gradient(#b8aaf2,#9d8ce6 60%,#b3a5ee);height:16%;position:absolute;top:9%;left:0;right:0;box-shadow:inset 0 -1px #fff6}.card-signature{background:repeating-linear-gradient(-45deg,#fff 0 6px,#fdeef4 6px 12px);border-radius:8px;justify-content:space-between;align-items:center;width:54%;height:13%;padding:0 8px;display:flex;position:absolute;top:32%;left:5.5%;box-shadow:inset 0 0 0 1px #f3dbe5}.card-sign{color:#5a4fa8;font:italic 600 16px/1 Segoe Script,Brush Script MT,Snell Roundhand,cursive}.card-cvv{color:#e0779f;background:#fff;border-radius:6px;padding:3px 6px;font:800 9px/1 Manrope,sans-serif;box-shadow:inset 0 0 0 1px #f6d6e3}.card-back-info{flex-direction:column;gap:2px;width:54%;display:flex;position:absolute;top:50%;left:5.5%}.card-back-info small{letter-spacing:1.4px;color:#9a8fcf;margin-top:5px;font:800 6px/1 DM Sans,sans-serif}.card-back-info small:first-child{margin-top:0}.card-back-info strong{color:#7a66e0;font:800 13px/1.1 Manrope,sans-serif}.card-back-info span{color:#6a6496;font-size:8.5px;line-height:1.25}.card-back-info b{color:#3d3770;font:700 10px/1.1 ui-monospace,monospace}.card-qr-panel{background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:4px;width:31%;padding:7px 7px 5px;display:flex;position:absolute;top:32%;right:5.5%;box-shadow:0 6px 16px #8a7bd02e,inset 0 0 0 1px #ebe5ff}.pass-qr{width:100%;height:auto;display:block}.card-qr-panel small{color:#e0779f;letter-spacing:.3px;font:700 7.5px/1 DM Sans,sans-serif}.card-cat{opacity:.95;width:13%;position:absolute;bottom:13%;right:31%;transform:rotate(-8deg)}.card-cat svg{width:100%;height:auto;display:block}.card-fineprint{color:#9a8fcf;font-size:5.6px;line-height:1.35;position:absolute;bottom:4.5%;left:5.5%;right:5.5%}.pass-form label>.username-help{float:none}@media (max-width:420px){.card-holder strong{font-size:14px}.card-sign{font-size:13px}.card-fields>span{padding:3px 5px}}.pass-stamps{flex-direction:column;gap:8px;margin:2px 0 6px;display:flex}.pass-stamps-title{letter-spacing:.16em;text-transform:uppercase;color:#3d7775;font:800 10px/1 DM Sans,sans-serif}.pass-stamps-title b{color:#9a6a17;margin-left:4px}.pass-stamps ul{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.pass-stamps li{color:#93a19d;text-align:center;border:1.5px dashed #cfd6c8;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 7px;font:800 10.5px/1.15 Manrope,sans-serif;display:flex}.pass-stamps li.is-earned{color:#3f6f2a;background:#f1f8ea;border:1.5px solid #9fc77f;transform:rotate(-2deg);box-shadow:inset 0 0 0 3px #fff}.pass-stamps li.is-earned:nth-child(2n){transform:rotate(2deg)}
.sky-app{--campus:#2b5f7a;--campus-accent:#d799ae;background:#bcd9ea}.sky-app[data-mood=dusk]{background:#e9b9a2}.sky-app[data-mood=night]{background:#0b1430}#sky-world,#sky-labels{position:absolute;inset:0}#sky-world{touch-action:none;cursor:grab;outline:none}#sky-world:active{cursor:grabbing}#sky-world canvas{width:100%;height:100%;display:block}#sky-labels{pointer-events:none;z-index:2;overflow:hidden}.sky-app .brand{color:inherit;pointer-events:auto;text-decoration:none}.sky-app .topbar .top-actions .icon-button{font-size:18px;font-weight:700}.sky-pin{color:var(--ink);text-align:left;pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);will-change:transform;background:#fffdf6ee;border:1px solid #ffffffd9;border-radius:14px;align-items:center;gap:8px;padding:6px 12px 6px 6px;transition:background .15s,box-shadow .15s;display:none;position:absolute;top:0;left:0;box-shadow:0 8px 26px #203b4724}.sky-pin:after{content:"";background:inherit;border-bottom:1px solid #ffffffd9;border-right:1px solid #ffffffd9;width:12px;height:12px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.sky-pin b{background:var(--pin);color:#fffdf6;letter-spacing:.4px;border-radius:9px;place-items:center;min-width:38px;height:30px;padding:0 6px;font:800 12px/1 Manrope,sans-serif;display:grid}.sky-pin span{letter-spacing:-.3px;font:800 14px/1.15 Manrope,sans-serif}.sky-pin small{color:#6f817e;letter-spacing:.4px;text-transform:uppercase;margin-top:2px;font:600 9px/1.2 DM Sans,sans-serif;display:block}.sky-pin:hover,.sky-pin.selected{box-shadow:0 0 0 3px color-mix(in srgb, var(--pin) 35%, transparent), 0 10px 30px #203b4730;background:#fff7e3}.ticket-panel{z-index:5;width:346px;max-height:calc(100dvh - 125px);box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffdf6f0;border:1px solid #ffffffd9;border-radius:22px;flex-direction:column;padding:21px 18px 16px;display:flex;position:absolute;top:101px;bottom:24px;left:24px}.ticket-panel .eyebrow{color:var(--teal);letter-spacing:1.4px;font-size:8px}.ticket-panel h1{margin-top:8px}.tickets{scrollbar-width:thin;flex-direction:column;flex:auto;gap:9px;min-height:0;margin:2px -6px 12px;padding:4px 6px;display:flex;overflow-y:auto}.ticket{text-align:left;background:#fffaf0;border:1px solid #e6e3d6;border-radius:16px;flex-shrink:0;align-items:stretch;width:100%;min-height:96px;padding:0;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:relative}.ticket:hover{transform:translateY(-1px);box-shadow:0 8px 22px #203b4714}.ticket.selected{border-color:var(--ticket);box-shadow:0 0 0 3px color-mix(in srgb, var(--ticket) 22%, transparent), 0 10px 28px #203b471c}.ticket-stub{background:var(--ticket);color:#fffdf6;border-radius:15px 0 0 15px;flex-direction:column;flex:0 0 74px;justify-content:center;align-items:center;gap:5px;display:flex;position:relative}.ticket-stub:after{content:"";border-right:2px dashed #fffaf0;position:absolute;top:6px;bottom:6px;right:-1px}.ticket-stub b{letter-spacing:-.5px;font:800 19px/1 Manrope,sans-serif}.ticket-stub small{letter-spacing:.6px;text-transform:uppercase;opacity:.85;font-size:8.5px;font-weight:700}.ticket-body{flex-direction:column;gap:3px;min-width:0;padding:11px 12px 11px 15px;display:flex}.ticket-kind{color:#7a8780;letter-spacing:.9px;text-transform:uppercase;font-size:8.5px;font-weight:700}.ticket-body strong{color:var(--ink);letter-spacing:-.6px;font:800 18px/1.15 Manrope,sans-serif}.ticket-line{color:#66756f;font-size:11px;line-height:1.4}.ticket-facts{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.ticket-facts i{background:color-mix(in srgb, var(--ticket) 11%, #fff);color:color-mix(in srgb, var(--ticket) 80%, #203e4b);border-radius:99px;padding:3px 7px;font-size:9.5px;font-style:normal;font-weight:700}.board-button{background:var(--ink);color:#fffdf6;text-align:left;border:0;border-radius:14px;align-items:center;gap:12px;width:100%;padding:14px 16px;font-size:14px;font-weight:700;transition:background .2s,transform .15s;display:flex}.sky-app[data-phase=idle] .board-button:not(:disabled){background:var(--campus);box-shadow:0 10px 26px color-mix(in srgb, var(--campus) 40%, transparent)}.board-button:not(:disabled):hover{transform:translateY(-1px)}.board-button>span:nth-child(2){flex:1}.board-button small{color:#fffdf6b8;margin-top:2px;font-size:10px;font-weight:600;display:block}.board-button .campus-icon{width:22px;height:22px}.skip-link{color:#6f817e;text-align:center;margin-top:10px;font-size:11px;display:block}.campus-preview{z-index:5;width:min(360px,100vw - 420px);box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf6ee;border:1px solid #ffffffd9;border-radius:20px;padding:18px 20px;animation:.35s both sky-rise;position:absolute;bottom:24px;right:24px}.campus-preview .eyebrow{color:var(--campus)}.campus-preview h2{letter-spacing:-.7px;margin:6px 0;font:800 21px/1.2 Manrope,sans-serif}.campus-preview p{color:#5f6f6b;margin:0 0 10px;font-size:12px;line-height:1.6}.preview-sources{flex-direction:column;gap:4px;display:flex}.preview-sources a{color:var(--teal);font-size:10.5px;font-weight:600}.ride-hud{z-index:6;flex-direction:column;align-items:center;gap:10px;width:min(560px,100vw - 32px);animation:.4s both sky-rise;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.ride-chip{z-index:6;box-shadow:var(--ui-shadow);color:var(--ink);background:#fffdf6ee;border-radius:99px;align-items:center;gap:8px;padding:9px 14px;font:800 13px/1 Manrope,sans-serif;animation:.4s both sky-rise;display:flex;position:absolute;top:96px;left:24px}.ride-chip .campus-icon{color:var(--campus)}.ride-card{width:100%;box-shadow:var(--ui-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf6f2;border:1px solid #ffffffd9;border-radius:20px;padding:14px 18px 12px}.ride-stops{color:#4b5d5c;justify-content:space-between;font-size:12px;font-weight:700;display:flex}.ride-stops b{background:var(--campus);color:#fffdf6;border-radius:6px;margin-right:6px;padding:2px 6px;font-size:10px}.ride-stops span:first-child b{background:#c8174f}.ride-track{background:#e6e8df;border-radius:9px;height:6px;margin:16px 6px 12px;position:relative}.ride-track i{background:linear-gradient(90deg, #c8174f, var(--campus));border-radius:9px;transition:width .15s linear;position:absolute;inset:0 auto 0 0}.ride-train{color:var(--campus);background:#fffdf6;border-radius:50%;padding:4px;transition:left .15s linear;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 2px 10px #203b4730;width:26px!important;height:26px!important}.ride-meta{color:#6f817e;justify-content:space-between;align-items:center;gap:12px;font-size:11px;display:flex}.ride-meta b{color:var(--ink);letter-spacing:-.5px;font:800 20px/1 Manrope,sans-serif}.ride-meta button{color:#5c4417;background:#f3d9a5;border:0;border-radius:9px;padding:7px 11px;font-size:11px;font-weight:700}.ride-caption{z-index:6;color:#fffdf6;letter-spacing:-1px;text-shadow:0 2px 22px #203b4766,0 1px 2px #203b4755;white-space:nowrap;pointer-events:none;margin:0;font:800 clamp(22px,3.2vw,34px)/1.1 Manrope,sans-serif;animation:2.6s both sky-caption;position:absolute;bottom:176px;left:50%;transform:translate(-50%)}.sky-fade{z-index:9;opacity:0;pointer-events:none;background:#fffdf6;transition:opacity 1.1s;position:absolute;inset:0}.sky-app[data-phase=arriving] .sky-fade{opacity:1;transition-delay:.25s}.sky-app #loading{z-index:10;background:linear-gradient(#cfe3ef,#fffdf6)}.sky-app #loading a{color:var(--teal);font-weight:700}.sky-dialog{z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#203b4740;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.sky-dialog>div{background:#fffdf6;border-radius:24px;width:min(470px,100%);max-height:calc(100dvh - 32px);padding:28px;position:relative;overflow:auto;box-shadow:0 30px 80px #203b4740}.sky-dialog .icon-button{position:absolute;top:14px;right:14px}.sky-dialog h2{letter-spacing:-1.2px;margin:8px 0 10px;font:800 28px/1.1 Manrope,sans-serif}.sky-dialog p{color:#5f6f6b;font-size:13px;line-height:1.65}@keyframes sky-rise{0%{opacity:0;transform:translate(var(--tx,0), 12px)}to{opacity:1;transform:translate(var(--tx,0), 0)}}.ride-hud{--tx:-50%}@keyframes sky-caption{0%{opacity:0;transform:translate(-50%,10px)}15%,80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-6px)}}@media (max-width:760px){.ticket-panel{border-radius:20px;width:auto;max-height:56dvh;padding:14px 12px 12px;inset:auto 10px 10px}.ticket-panel h1{margin:4px 0 2px;font-size:21px}.ticket-panel .panel-intro{display:none}.tickets{scroll-snap-type:x mandatory;flex-direction:row;margin-bottom:10px;overflow:auto hidden}.ticket{scroll-snap-align:start;flex:0 0 82%;min-height:0}.ticket-stub{flex-basis:60px}.ticket-line,.campus-preview{display:none}.ride-chip{top:84px;left:12px}.ride-caption{font-size:22px;bottom:150px}.skip-link{margin-top:7px}.sky-app .topbar{top:12px;left:12px;right:12px}.sky-app .brand-type small{letter-spacing:.9px}}@media (prefers-reduced-motion:reduce){.sky-pin,.ticket,.ride-hud,.campus-preview,.ride-caption{transition:none;animation:none}}.change-campus{background:var(--ink);color:#fffdf6;pointer-events:auto;border:1px solid #ffffffd6;border-radius:12px;align-items:center;gap:8px;height:40px;padding:0 14px 0 11px;font-size:12px;font-weight:700;transition:transform .15s,background .15s;display:inline-flex;box-shadow:0 6px 18px #203d4d24}.change-campus:hover{background:#c8174f;transform:translateY(-1px)}.change-campus .campus-icon{width:19px;height:19px}@media (max-width:760px){.change-campus span{display:none}.change-campus{justify-content:center;width:40px;padding:0}}.branch-app .heading-dot{color:var(--campus-accent)}.branch-app .panel-heading .eyebrow{color:var(--campus)}.branch-app .panel-foot span:last-child{color:#6f817e;font-size:10px}.about-sources{flex-direction:column;gap:4px;margin-top:10px;display:flex}.branch-placeholder{place-items:center;display:grid}.graphics-toggle{pointer-events:auto;background:#fffdf6f2;border:1px solid #ffffffd6;border-radius:12px;align-items:center;gap:2px;height:40px;padding:3px;display:inline-flex;box-shadow:0 3px 12px #203d4d08}.graphics-toggle button{color:#6f817e;letter-spacing:.4px;background:0 0;border:0;border-radius:9px;min-width:46px;height:32px;padding:0 10px;font:800 11px/1 Manrope,sans-serif;transition:background .15s,color .15s}.graphics-toggle button:hover{color:var(--ink)}.graphics-toggle button[aria-pressed=true]{background:var(--ink);color:#fffdf6}.graphics-toggle button[aria-pressed=true]:last-child{background:linear-gradient(135deg,#203e4b,#c8174f)}.graphics-select{pointer-events:auto;background:#fffdf6f2;border:1px solid #ffffffd6;border-radius:12px;width:57px;height:40px;display:none;position:relative;overflow:hidden;box-shadow:0 3px 12px #203d4d08}.graphics-select select{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.graphics-select b{height:100%;color:var(--ink);letter-spacing:.3px;place-items:center;font:800 10px/1 Manrope,sans-serif;display:grid}@media (max-width:760px){#app .graphics-toggle{display:none}#app .graphics-select{display:block}}.compatibility-fallback{min-height:100dvh;color:var(--ink);background:radial-gradient(circle at 85% 10%,#f7d7b6 0 8%,#0000 28%),linear-gradient(145deg,#b9d9e8,#eaf0df 52%,#efd1bd);padding:clamp(18px,4vw,54px);overflow:auto}.compatibility-card{background:#fffdf6e8;border:1px solid #ffffffcf;border-radius:clamp(24px,4vw,42px);width:min(1040px,100%);margin:0 auto;padding:clamp(22px,5vw,58px);box-shadow:0 30px 90px #203b4724}.compatibility-brand{color:inherit;margin-bottom:48px;text-decoration:none;display:inline-flex}.compatibility-card>.eyebrow{color:var(--teal)}.compatibility-card>h1{letter-spacing:clamp(-3px,-.05em,-1px);margin:12px 0 18px;font:800 clamp(38px,7vw,78px)/.96 Manrope,sans-serif}.compatibility-card>p{color:#5f746e;max-width:690px;font-size:clamp(14px,2vw,17px);line-height:1.7}.compatibility-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:34px;display:grid}.compatibility-grid article{background:#fffaf0;border:1px solid #e4e6dc;border-radius:20px;grid-template-columns:auto 1fr;gap:10px 16px;padding:20px;display:grid}.compatibility-grid article>span{background:var(--campus);color:#fff;border-radius:12px;align-self:start;place-items:center;min-width:54px;height:44px;font:800 14px/1 Manrope,sans-serif;display:grid}.compatibility-grid small{color:#798882;letter-spacing:1px;text-transform:uppercase;font-size:9px;font-weight:800}.compatibility-grid h2{letter-spacing:-.6px;margin:3px 0 7px;font:800 22px/1.15 Manrope,sans-serif}.compatibility-grid p{color:#687973;margin:0;font-size:12px;line-height:1.55}.compatibility-grid a{color:var(--campus);text-underline-offset:3px;grid-column:2;font-size:11px;font-weight:800}.compatibility-note{border-top:1px solid #dde2d8;padding-top:20px;margin:28px 0 0!important;font-size:12px!important}@media (max-width:680px){.compatibility-fallback{padding:10px}.compatibility-card{border-radius:24px;padding:22px 16px}.compatibility-brand{margin-bottom:34px}.compatibility-grid{grid-template-columns:1fr}.compatibility-grid article{padding:16px}}
:root{--control-h:44px;--control-r:14px;--control-inner:10px;--control-surface:#f7faf3e6;--control-border:#fffc;--control-shadow:0 1px 2px #183c4714, 0 8px 24px #183c4712;--control-ink:#24464f;--control-muted:#6c827f;--control-press:linear-gradient(145deg, #346068, #1f3d49);--focus-ring:0 0 0 3px #f2c46c99}#app .topbar{align-items:center}#app .top-actions{gap:8px}#app .top-actions .icon-button,#app .top-actions .change-campus,#app .top-actions .segmented,#app .topbar .brand{border:1px solid var(--control-border);box-shadow:var(--control-shadow);-webkit-backdrop-filter:blur(22px)saturate(135%);backdrop-filter:blur(22px)saturate(135%)}#app .top-actions .icon-button,#app .top-actions .segmented{background:var(--control-surface)}#app .top-actions .icon-button{width:var(--control-h);height:var(--control-h);border-radius:var(--control-r);color:var(--control-ink);transition:background .18s,box-shadow .18s,transform .14s,color .18s}#app .top-actions .icon-button .campus-icon{width:21px;height:21px}#app .top-actions .icon-button:hover{color:#173843;background:#fff;transform:translateY(-1px);box-shadow:0 2px 4px #183c4714,0 12px 26px #183c4718}#app .segmented{height:var(--control-h);border-radius:var(--control-r);align-items:center;gap:2px;padding:4px;display:inline-flex}#app .segmented button{height:calc(var(--control-h) - 10px);border-radius:var(--control-inner);min-width:36px;color:var(--control-muted);letter-spacing:.5px;background:0 0;border:0;place-items:center;padding:0 11px;font:800 11px/1 Manrope,sans-serif;transition:background .2s,color .2s,box-shadow .2s,transform .12s;display:inline-grid;position:relative}#app .segmented button:hover{color:var(--control-ink);background:#ffffffa8}#app .segmented button[aria-pressed=true]{color:#fffdf6;background:var(--control-press);box-shadow:0 2px 6px #1d3c4633,inset 0 1px #ffffff26}#app .graphics-toggle button[aria-pressed=true]:last-child{background:linear-gradient(135deg,#24465a,#c8174f)}#app .time-toggle button{width:36px;padding:0}#app .time-icon{width:19px;height:19px}#app .time-toggle button[aria-pressed=true][title=Day]{color:#4a2c00;background:linear-gradient(145deg,#ffd978,#f2a93b);box-shadow:0 2px 8px #e8a33c55,inset 0 1px #ffffff80}#app .time-toggle button[aria-pressed=true][title=Dusk]{color:#fff4ea;background:linear-gradient(145deg,#f09a73,#8a4f86);box-shadow:0 2px 8px #b0607055,inset 0 1px #ffffff40}#app .time-toggle button[aria-pressed=true][title=Night]{color:#fff1b8;background:linear-gradient(145deg,#34478a,#111a3d);box-shadow:0 2px 8px #18245a66,inset 0 1px #ffffff26}#app .top-actions .change-campus{height:var(--control-h);border-radius:var(--control-r);background:var(--control-press);color:#fffdf6;padding:0 16px 0 13px;font-weight:700;transition:background .2s,transform .14s,box-shadow .2s}#app .top-actions .change-campus:hover{background:linear-gradient(145deg,#d42a5f,#a3123f);transform:translateY(-1px);box-shadow:0 10px 26px #c8174f40}#app .top-actions .student-pass-open{height:var(--control-h);border-radius:var(--control-r)}@media (hover:hover){#app .segmented button:active,#app .top-actions .change-campus:active,#app .top-actions .icon-button:active,.board-button:not(:disabled):active,.ticket:active,.sky-pin:active{transform:scale(.97)}}#app .segmented button:focus-visible,#app .top-actions .icon-button:focus-visible,#app .top-actions .change-campus:focus-visible,.board-button:focus-visible,.ticket:focus-visible,.sky-pin:focus-visible,.skip-ride:focus-visible{box-shadow:var(--focus-ring), var(--control-shadow);outline:none}.ticket{transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}.ticket:hover{background:#fffdf6}.ticket.selected{background:#fffdf8}.ticket.selected .ticket-stub{box-shadow:inset -6px 0 14px #0000001a}.board-button{border-radius:16px;min-height:58px;transition:background .25s,transform .15s,box-shadow .25s}.sky-app[data-phase=idle] .board-button:not(:disabled){background:linear-gradient(135deg, color-mix(in srgb, var(--campus) 82%, #fff), var(--campus) 55%, color-mix(in srgb, var(--campus) 78%, #000))}.board-button:not(:disabled):hover{box-shadow:0 14px 30px color-mix(in srgb, var(--campus) 45%, transparent);transform:translateY(-2px)}.board-button>span:last-child{transition:transform .2s}.board-button:not(:disabled):hover>span:last-child{transform:translate(4px)}.board-button:disabled{opacity:1;color:#6c7b77;background:#d9ddd4}.board-button:disabled small{color:#7f8c87}.sky-app[data-mood=night] .ticket-panel,.sky-app[data-mood=night] .ride-card,.sky-app[data-mood=night] .campus-preview{background:#f6f7f2ea;box-shadow:0 14px 40px #02061566}@media (max-width:760px){:root{--control-h:40px;--control-r:12px}#app .top-actions{gap:5px}#app .segmented{padding:3px}#app .segmented button{min-width:34px;padding:0 8px;font-size:10px}#app .time-toggle button:not([aria-pressed=true]){display:none}#app .time-toggle button{width:34px}#app .top-actions .change-campus{width:var(--control-h);justify-content:center;padding:0}}@media (max-width:400px){:root{--control-h:36px;--control-r:11px}#app .segmented button{min-width:30px;padding:0 6px}#app .time-toggle button{width:30px}}@media (prefers-reduced-motion:reduce){#app .segmented button,#app .top-actions .icon-button,#app .top-actions .change-campus,.board-button,.ticket{transition:none}}@media (max-width:760px){#app .top-actions{gap:4px}#app .top-actions .graphics-toggle{display:none}#app .top-actions .graphics-select{display:block}}@media (max-width:420px){.sky-app .top-actions>.icon-button:last-child{display:none}}.travel-actions{flex-direction:column;gap:8px;display:flex}.travel-actions button{transition:background .2s,color .2s,transform .12s,box-shadow .2s}.travel-actions button:hover{background:#fff;transform:translateY(-1px)}.travel-pov[aria-pressed=true]{color:#fff4d7!important;background:linear-gradient(145deg,#346068,#1f3d49)!important}.ticket-panel{width:372px;padding:18px 16px 14px}.tickets{gap:11px;margin-top:4px}.ticket{--paper:#fffaf0;background:var(--paper);border:0;border-radius:14px;min-height:0;overflow:visible;box-shadow:inset 0 1px #fff,0 0 0 1px #e8e1cf,0 6px 16px #203b4712;-webkit-mask:radial-gradient(8px at 82px 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(8px at 82px 100%,#0000 98%,#000) bottom/100% 51% no-repeat;mask:radial-gradient(8px at 82px 0,#0000 98%,#000) top/100% 51% no-repeat,radial-gradient(8px at 82px 100%,#0000 98%,#000) bottom/100% 51% no-repeat}.ticket:before{content:"";border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(135deg,#0000 0 6px,#c9b99a08 6px 7px);position:absolute;inset:0}.ticket:hover{transform:translateY(-2px);box-shadow:0 0 0 1px #e2d8c0,0 12px 26px #203b4720}.ticket.selected{box-shadow:0 0 0 2px var(--ticket), 0 14px 30px color-mix(in srgb, var(--ticket) 30%, transparent)}.ticket-stub{background:linear-gradient(160deg, color-mix(in srgb, var(--ticket) 82%, #fff), var(--ticket) 60%, color-mix(in srgb, var(--ticket) 80%, #000));border-radius:14px 0 0 14px;flex:0 0 82px;gap:2px}.ticket-stub:after{border-right:2px dashed #fffaf0cc;top:10px;bottom:10px;right:-1px}.ticket-stub small{letter-spacing:1.2px;opacity:.8;font-size:7.5px}.ticket-stub b{letter-spacing:-1px;font:800 30px/1 Manrope,sans-serif}.ticket-body{flex:1;gap:2px;padding:10px 6px 10px 14px}.ticket-top{justify-content:space-between;align-items:center;gap:6px;display:flex}.ticket-kind{font-size:8px}.ticket-fare{background:color-mix(in srgb, var(--ticket) 12%, #fff);color:color-mix(in srgb, var(--ticket) 85%, #203e4b);letter-spacing:.4px;white-space:nowrap;border-radius:99px;padding:2px 7px;font-size:8.5px;font-weight:800}.ticket-route{align-items:center;gap:6px;margin:4px 0 1px;display:flex}.ticket-from,.ticket-to{flex-direction:column;line-height:1;display:flex}.ticket-from small,.ticket-to small{color:#8a9590;letter-spacing:.8px;text-transform:uppercase;font-size:7.5px;font-weight:700}.ticket-from b,.ticket-to b{color:var(--ink);font:800 12px/1.2 Manrope,sans-serif}.ticket-to b{color:var(--ticket)}.ticket-path{flex:1;height:16px;position:relative}.ticket-path i{border-top:2px dotted color-mix(in srgb, var(--ticket) 55%, #c9c3b3);position:absolute;top:50%;left:0;right:0}.ticket-path svg{background:var(--paper);width:16px;height:16px;color:var(--ticket);border-radius:6px;padding:1px;transition:left .4s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ticket.selected .ticket-path svg,.ticket:hover .ticket-path svg{left:82%}.ticket-body strong{font-size:19px}.ticket-line{font-size:10.5px;line-height:1.35}.ticket-meta{color:#7a8780;gap:10px;margin-top:3px;font-size:9.5px;font-weight:600;display:flex}.ticket-meta span+span:before{content:"·";color:#c1c7c0;margin-right:10px}.ticket-barcode{border-left:1px dashed #e0d7c2;flex:0 0 26px;align-items:stretch;gap:1.5px;margin:12px 10px 12px 0;padding-left:8px;display:flex}.ticket-barcode i{width:calc(var(--w) * 1px);opacity:.78;background:#2c3a3f;border-radius:.5px;flex:none}.ticket-barcode{flex-direction:column;gap:1.5px}.ticket-barcode i{width:auto;height:calc(var(--w) * 1px)}.guide{align-items:flex-end;gap:10px;margin:8px 0 12px;display:flex}.guide-portrait{cursor:pointer;background:radial-gradient(120% 90% at 50% 15%,#fff6e3 0%,#f7d8c4 45%,#c9e2ee 100%);border:0;border-radius:22px;flex:0 0 104px;height:118px;padding:0;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffb0,0 6px 18px #203b471c}.guide-portrait canvas{width:100%;height:100%;display:block}.guide-live{color:#fff;letter-spacing:.4px;background:#203e4bd9;border-radius:99px;align-items:center;gap:5px;padding:3px 7px;font-size:8.5px;font-weight:700;display:inline-flex;position:absolute;bottom:7px;left:7px}.guide-live i{background:#6fe3c4;border-radius:50%;width:6px;height:6px}.guide.is-speaking .guide-live i{background:#ff7a8a;animation:1s ease-out infinite load-pulse}.guide-bubble{background:#fff;border-radius:16px 16px 16px 4px;flex:1;min-width:0;padding:10px 12px;position:relative;box-shadow:0 0 0 1px #ebe5d5,0 6px 16px #203b4712}.guide-bubble:before{content:"";background:#fff;width:12px;height:12px;position:absolute;bottom:10px;left:-6px;transform:rotate(45deg);box-shadow:-1px 1px #ebe5d5}.guide-bubble b{color:var(--ink);font:800 12px/1.2 Manrope,sans-serif;display:block}.guide-bubble b small{color:#8a9590;letter-spacing:.3px;margin-left:4px;font:600 9px/1 DM Sans,sans-serif}.guide-bubble p{color:#3e5552;margin:4px 0 0;font-size:12.5px;line-height:1.45}.guide-ride{z-index:6;width:min(380px,100vw - 48px);margin:0;animation:.4s both sky-rise;position:absolute;top:148px;left:24px}.guide-ride .guide-portrait{flex-basis:86px;height:98px}@media (max-width:760px){.ticket-panel{width:auto}.guide-portrait{flex-basis:78px;height:90px}.guide-bubble p{font-size:11.5px}.guide-ride{width:auto;inset:auto 12px 200px}}.intro-overlay{z-index:8;pointer-events:none;position:absolute;inset:0}.intro-bar{background:#05080f;height:9vh;animation:.8s cubic-bezier(.2,.7,.2,1) both intro-bar;position:absolute;left:0;right:0}.intro-bar-top{transform-origin:top;top:0}.intro-bar-bottom{transform-origin:bottom;bottom:0}.intro-title{color:#fff;text-shadow:0 2px 18px #0008;flex-direction:column;gap:4px;animation:3.4s both intro-title;display:flex;position:absolute;bottom:calc(9vh + 28px);left:6vw}.intro-title span{letter-spacing:2.4px;text-transform:uppercase;color:#ffe2a8;font:700 11px/1 DM Sans,sans-serif}.intro-title strong{letter-spacing:-1.4px;font:800 clamp(30px,4.4vw,54px)/1.05 Manrope,sans-serif}.intro-skip{pointer-events:auto;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0b1424a8;border:1px solid #fff5;border-radius:99px;align-items:center;gap:8px;padding:10px 14px;font:700 12px/1 DM Sans,sans-serif;display:inline-flex;position:absolute;bottom:calc(9vh + 24px);right:24px}.intro-skip:hover{background:#0b1424e0}.intro-skip kbd{font:inherit;background:#fff2;border-radius:6px;padding:2px 6px;font-size:10px}.sky-app[data-phase=intro] .topbar{opacity:0;pointer-events:none;transition:opacity .4s}.sky-app .topbar{transition:opacity .6s}.sky-app[data-phase=intro] #sky-labels{display:none}@keyframes intro-bar{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes intro-title{0%{opacity:0;transform:translateY(12px)}14%,80%{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}.ticket-panel{animation:.6s cubic-bezier(.2,.7,.2,1) both panel-in}@keyframes panel-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:none}}
