@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800;900&display=swap";.admin-login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#163f34}.admin-login-card{width:min(410px,100%);padding:40px;background:#fffdf4;box-shadow:0 24px 70px #00000040}.admin-brand{width:46px;height:46px;display:grid;place-items:center;margin-bottom:28px;border:1px solid #d6b83e;border-radius:50%;color:#9f8421;font-weight:900}.admin-kicker{margin:0 0 10px;color:#a68622;font-size:10px;letter-spacing:1.8px;font-weight:900}.admin-login-card h1,.admin-title h1{margin:0;color:#173b32;font-size:30px}.admin-muted{margin:8px 0 28px;color:#7a8a81;font-size:13px}.admin-login-card label,.admin-card label{display:block;margin:15px 0;color:#718078;font-size:12px}.admin-login-card input,.admin-card input{display:block;width:100%;height:44px;margin-top:8px;padding:0 12px;border:1px solid #d5dfd5;border-radius:3px;outline:none;background:#fff;color:#28493d}.admin-login-card input:focus,.admin-card input:focus{border-color:#2e8163;box-shadow:0 0 0 3px #2e81631f}.admin-error{margin:0 0 12px;color:#b34237;font-size:12px}.admin-primary,.admin-outline{min-height:43px;padding:0 17px;border-radius:3px;font-size:13px;font-weight:800;cursor:pointer}.admin-primary{border:0;background:#154b3d;color:#fff}.admin-primary:hover{background:#236650}.admin-outline{border:1px solid #9aafa3;background:transparent;color:#26594b}.admin-login-card .admin-primary{width:100%;margin-top:8px}.admin-login-card>a{display:block;margin-top:22px;color:#477b69;text-align:center;font-size:12px}.admin-page{min-height:100vh;background:#f4f7f2}.admin-topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 48px;background:#123b31;color:#fff}.admin-brandline{display:flex;align-items:center;gap:11px}.admin-brandline>span{width:34px;height:34px;display:grid;place-items:center;border:1px solid #efd05a;border-radius:50%;color:#efd05a;font-size:12px;font-weight:900}.admin-brandline strong,.admin-brandline small{display:block}.admin-brandline strong{font-size:14px}.admin-brandline small{margin-top:3px;color:#a8bdb3;font-size:11px}.admin-header-actions{display:flex;align-items:center;gap:18px;font-size:12px}.admin-header-actions button,.admin-header-actions a{border:0;background:none;color:#d4e2d8;text-decoration:none;cursor:pointer}.admin-secure{color:#b7dc8d}.admin-main{width:min(1030px,calc(100% - 40px));margin:0 auto;padding:58px 0}.admin-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:30px}.admin-title h1{font-size:34px}.admin-title>div>p:last-child{margin:8px 0 0;color:#7d8b83;font-size:13px}.admin-saved{color:#579267;font-size:12px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-card{padding:27px;background:#fff;border:1px solid #dfe7de}.admin-card-title{display:flex;align-items:start;justify-content:space-between;margin-bottom:24px}.admin-card-title h2{margin:0;color:#23483c;font-size:19px}.admin-check{color:#5c936d;font-size:11px}.admin-help{margin:0 0 22px;color:#849189;font-size:12px;line-height:1.7}.admin-qr-box{position:relative;width:220px;height:220px;margin:20px auto;background:#fffdf4}.admin-qr-box canvas{width:220px;height:220px}.admin-qr-box>div{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#849189;font-size:12px}.admin-actions{display:flex;justify-content:center;gap:9px}.admin-actions .admin-primary,.admin-actions .admin-outline{min-width:112px}@media(max-width:680px){.admin-topbar{height:auto;align-items:start;padding:18px}.admin-header-actions{gap:9px;flex-wrap:wrap;justify-content:flex-end}.admin-main{width:calc(100% - 28px);padding:34px 0}.admin-grid{grid-template-columns:1fr}.admin-title h1{font-size:28px}.admin-login-card{padding:30px 24px}}.admin-coordinate-note{display:grid;gap:8px;padding:15px 16px;margin:18px 0 24px;border-left:3px solid #e4c44a;background:#f7f8ee;color:#6c7e72;font-size:12px}.admin-coordinate-note strong{color:#285c49;font-size:13px}:root{font-family:Noto Sans SC,Microsoft YaHei,sans-serif;color:#183b32;background:#102e27;font-synthesis:none;--ink:#173b32;--muted:#71817a;--line:#dbe3da;--yellow:#f3cb38;--red:#d94a3a;--green:#154b3d;--paper:#fffdf4;--blue:#2d7192}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#102e27}button,input,select{font:inherit}button{border:0;cursor:pointer}a{color:inherit}.app-shell{min-height:100vh;background:#102e27}.topbar{height:76px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;background:#123b31;color:#f6f0d7;border-bottom:1px solid rgba(255,255,255,.1)}.brand-mark{display:flex;gap:11px;align-items:center}.brand-mark>span{width:34px;height:34px;display:grid;place-items:center;border:1px solid #efd05a;border-radius:50%;color:#efd05a;font-size:12px;font-weight:900}.brand-mark strong,.brand-mark small{display:block}.brand-mark strong{font-size:15px}.brand-mark small{margin-top:2px;color:#9eb7aa;font-size:11px}.topnav{display:flex;gap:8px;height:100%}.topnav button{padding:0 22px;background:transparent;color:#a8bdb3;font-size:13px}.topnav button.active{color:#fff;background:#ffffff12;box-shadow:inset 0 -3px #f3cb38}.top-actions{font-size:12px;color:#a8bdb3}.top-actions i{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#72cb81}.public-workspace{min-height:calc(100vh - 76px);display:flex;justify-content:center;gap:clamp(50px,10vw,160px);align-items:center;padding:50px 7vw;background:#163f34}.phone-frame{position:relative;width:min(392px,calc(100vw - 36px));height:min(780px,calc(100vh - 116px));min-height:640px;overflow:hidden;border:8px solid #071f1a;border-radius:32px;background:#82bf94;box-shadow:0 24px 60px #00000059}.public-cover{height:100%;position:relative;overflow:hidden;background:#8bc49a url(/yinchuan-cover.png) center/cover no-repeat}.public-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#1f644812}.cover-copy{position:absolute;z-index:1;top:41px;left:30px;color:#113d2d;text-shadow:0 2px rgba(255,255,255,.7)}.cover-copy>span{font-size:18px;font-weight:900}.cover-copy h1{margin:7px 0 9px;font-size:37px;line-height:1.08;letter-spacing:0;font-weight:900}.cover-copy p{margin:0;font-size:13px;font-weight:800}.cover-city{position:absolute;z-index:1;top:28%;left:50%;transform:translate(-50%) rotate(-5deg);font-size:106px;line-height:.9;color:#fffef0;font-weight:900;white-space:nowrap;text-shadow:0 5px #1b7752,0 14px 24px rgba(18,77,49,.28)}.cover-cta{position:absolute;z-index:1;bottom:38px;left:50%;transform:translate(-50%);width:250px;height:54px;border-radius:99px;background:#ffe02c;color:#143b2e;font-size:19px;font-weight:900;box-shadow:inset 0 -5px #d19b0038,0 8px 18px #36612040}.cover-cta span{margin-left:18px;font-size:25px}.public-map{height:100%;position:relative;background:#b9d7af}.map-header{height:66px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;background:#123e32;color:#fff7d6}.map-header strong{font-size:16px}.map-header button{background:none;color:#dbe7cc;font-size:12px}.map-landscape{position:absolute;top:66px;right:0;bottom:82px;left:0;overflow:hidden;background:linear-gradient(145deg,#b6d1a8,#d4e0ad 46%,#f0e2a4)}.map-landscape:before{content:"";position:absolute;top:12%;right:8%;bottom:12%;left:8%;border:2px solid rgba(62,123,80,.2);border-radius:48% 52% 44% 55%;transform:rotate(-24deg)}.river{position:absolute;right:-15%;top:-8%;width:67%;height:120%;border-left:20px solid rgba(88,173,186,.42);border-radius:50%;transform:rotate(18deg)}.city-block{position:absolute;background:#fffde773;border:1px solid rgba(100,127,77,.16);transform:rotate(-10deg)}.block-a{width:160px;height:95px;left:7%;top:28%}.block-b{width:210px;height:115px;left:28%;top:48%}.block-c{width:145px;height:150px;right:4%;top:13%}.map-marker{position:absolute;display:flex;align-items:center;gap:4px;padding:5px 8px 5px 5px;border:2px solid #fff;border-radius:20px;background:#d64737;color:#fff;box-shadow:0 4px 9px #621f1a40;font-size:13px;font-weight:800;transform:translate(-50%,-50%)}.map-marker em{font-style:normal;color:#fff2a4;font-size:11px}.marker-pin,.small-pin,.table-pin{display:inline-block;background:#fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.marker-pin{width:21px;height:21px}.marker-pin:after,.small-pin:after{content:"";display:block;width:7px;height:7px;border:2px solid #d64737;border-radius:50%;position:relative;top:5px;left:5px}.marker-兴庆区{left:58%;top:33%}.marker-贺兰县{left:48%;top:17%}.marker-金凤区{left:43%;top:42%}.marker-西夏区{left:27%;top:48%}.marker-灵武市{left:75%;top:58%}.marker-永宁县{left:46%;top:73%}.map-caption{position:absolute;bottom:18px;left:50%;transform:translate(-50%);padding:8px 16px;border-radius:18px;color:#174d3e;background:#ffffebbd;font-size:12px;font-weight:800;white-space:nowrap}.provider-strip{position:absolute;bottom:0;left:0;right:0;height:82px;display:flex;gap:6px;align-items:center;justify-content:center;background:#fffdf0;border-top:1px solid #d7ddbd}.provider-strip button{padding:8px 11px;border:1px solid #c8d6c0;border-radius:16px;background:#fff;color:#537066;font-size:11px}.provider-strip button.selected{background:#154b3d;border-color:#154b3d;color:#fff}.district-overlay{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;background:#0e2a2185}.district-sheet{width:100%;max-height:88%;display:grid;grid-template-rows:auto minmax(0,1fr) 46px;overflow:hidden;border:4px solid #f2b728;border-bottom:0;border-radius:22px 22px 0 0;background:#fff3c9}.sheet-title{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#f3c52f;color:#d54130}.sheet-title strong{font-size:25px}.sheet-title span{margin-left:8px;color:#7c301e;font-size:12px;font-weight:800}.sheet-title button{width:34px;height:34px;border-radius:50%;background:#277ba0;color:#fff;font-size:24px}.point-scroll{overflow:auto;padding:14px}.public-point{padding:0 0 15px;border-bottom:1px dashed #b9844b}.public-point+.public-point{padding-top:15px}.public-point h3{display:flex;gap:8px;align-items:center;margin:0 0 9px;color:#2c7091;font-size:16px;line-height:1.3}.small-pin{flex:none;width:25px;height:25px;background:#d64737}.public-point p{display:grid;grid-template-columns:42px minmax(0,1fr);gap:6px;margin:7px 0;font-size:13px;line-height:1.45}.public-point label{color:#cf4030;font-weight:900}.public-point a{color:#17609a;text-decoration:underline}.point-links{display:flex;gap:8px;margin-top:10px}.point-links a{flex:1;padding:7px;text-align:center;border-radius:17px;background:#fff;color:#154b3d;text-decoration:none;font-size:12px;font-weight:800}.district-sheet footer{display:grid;place-items:center;background:#154b3d;color:#fff;font-size:14px;font-weight:900}.preview-aside{width:min(430px,35vw);color:#f6f0d7}.kicker{margin:0 0 10px;color:#d7bd52;font-size:10px;letter-spacing:1.8px;font-weight:900}.preview-aside h1{margin:0;font-size:43px;line-height:1.2;letter-spacing:0}.preview-aside h1 span{color:#f2c944}.aside-copy{margin:22px 0 35px;color:#a9beb2;font-size:14px;line-height:1.9}.preview-facts{display:flex;gap:34px;padding-bottom:31px;border-bottom:1px solid rgba(255,255,255,.16)}.preview-facts strong,.preview-facts span{display:block}.preview-facts strong{color:#f4d05e;font-size:29px}.preview-facts span{margin-top:3px;color:#a9beb2;font-size:12px}.outline-button,.primary-button{min-height:42px;padding:0 17px;border-radius:4px;font-size:13px;font-weight:800}.outline-button{border:1px solid #7d998e;background:transparent;color:inherit}.preview-aside .outline-button{margin-top:31px}.admin-workspace{display:flex;min-height:calc(100vh - 76px);background:#f5f7f2}.admin-sidebar{width:254px;display:flex;flex-direction:column;padding:38px 22px;background:#163f34;color:#fff}.side-intro{padding:0 14px 37px}.side-intro h1{margin:0 0 5px;font-size:27px}.side-intro p:last-child{margin:0;color:#a8bdb3;font-size:12px;line-height:1.6}.side-link{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px;margin:2px 0;border-radius:4px;background:transparent;color:#aac0b5;text-align:left;font-size:13px}.side-link span{width:18px;color:#f2ce50;font-size:16px;text-align:center}.side-link.active,.side-link:hover{background:#235342;color:#fff}.side-bottom{margin-top:auto;padding:22px 14px 0;border-top:1px solid rgba(255,255,255,.13)}.reset-link{display:block;padding:0;margin-bottom:14px;background:none;color:#e3c960;font-size:12px}.side-bottom small{color:#718c81;font-size:10px}.admin-content{width:min(1240px,calc(100% - 80px));margin:0 auto;padding:50px 0 80px}.admin-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:31px}.admin-heading h2{margin:0;font-size:33px}.admin-heading p:last-child{margin:6px 0 0;color:#77877e;font-size:13px}.primary-button{background:#154b3d;color:#fff}.primary-button:hover{background:#206553}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:28px;border:1px solid #dfe6dc;background:#dfe6dc}.stat-row>div{padding:22px 25px;background:#fff}.stat-row span,.stat-row small{display:block;color:#74837b;font-size:11px}.stat-row strong{display:inline-block;margin:8px 7px 0 0;color:#173b32;font-size:28px}.panel-section,.settings-card,.qr-card{background:#fff;border:1px solid #e1e7df}.section-toolbar{display:flex;gap:8px;padding:16px;border-bottom:1px solid #e8ede5}.search-box{display:flex;align-items:center;flex:1;max-width:380px;border:1px solid #d7e0d7;border-radius:3px}.search-box span{padding-left:11px;color:#84958b;font-size:18px}.search-box input{width:100%;padding:9px;border:0;outline:0;background:transparent;font-size:12px}.section-toolbar select,.settings-card input,.settings-card select,.edit-modal input,.edit-modal select{height:37px;padding:0 10px;border:1px solid #d7e0d7;border-radius:3px;outline:none;background:#fff;color:#304b40;font-size:12px}.section-toolbar select{min-width:110px}.data-table{overflow:auto}.table-head,.table-row{display:grid;grid-template-columns:2.5fr .75fr 1fr 1.35fr .8fr .7fr;gap:18px;align-items:center;min-width:900px}.table-head{padding:12px 18px;background:#f7f9f5;color:#7a8980;font-size:11px}.table-row{padding:16px 18px;border-top:1px solid #edf1ea;color:#4f655a;font-size:12px}.point-name{display:flex;gap:10px;align-items:start}.table-pin{flex:none;width:22px;height:22px;margin-top:1px;background:#d94a3a}.table-pin:after{content:"";display:block;width:6px;height:6px;border:2px solid #fff;border-radius:50%;position:relative;top:5px;left:5px}.point-name strong,.point-name small{display:block}.point-name strong{color:#214b3d;font-size:12px;line-height:1.5}.point-name small{margin-top:3px;color:#93a098;font-size:10px;line-height:1.4}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:12px;background:#e2f3e5;color:#31834d;font-size:11px}.status-pill i{width:6px;height:6px;border-radius:50%;background:#48ad66}.status-pill.off{background:#f1f1ef;color:#8a948e}.status-pill.off i{background:#a0aaa4}.row-actions{display:flex;gap:9px}.row-actions button{background:none;color:#296b85;font-size:11px}.row-actions .danger-text{color:#b85d52}.empty-row{padding:50px;text-align:center;color:#8a958f;font-size:13px}.split-section{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:28px}.settings-card,.qr-card{padding:23px}.section-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:22px}.section-title h3{margin:0;font-size:18px}.saved-label,.qr-status{color:#5d936d;font-size:11px}.settings-card>label,.qr-card>label,.edit-modal>label{display:block;margin:14px 0;color:#718078;font-size:11px}.settings-card>label input,.settings-card>label select,.qr-card>label input,.edit-modal>label input,.edit-modal>label select{display:block;width:100%;margin-top:7px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{display:block;color:#718078;font-size:11px}.form-grid input,.form-grid select{display:block;width:100%;margin-top:7px}.qr-preview{position:relative;width:180px;height:180px;margin:15px auto;background:#fffdf4}.qr-preview canvas{width:180px;height:180px}.qr-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#83968a;font-size:12px;line-height:1.7}.qr-actions{display:flex;justify-content:center;gap:8px;margin-top:14px}.outline-button.small{color:#26594b;border-color:#a6b8ad}.modal-backdrop{position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#0b221ba1}.edit-modal{width:min(520px,100%);padding:27px;background:#fffdf5;box-shadow:0 22px 60px #00000042}.modal-head{display:flex;justify-content:space-between;align-items:start}.modal-head h2{margin:0;font-size:25px}.modal-head>button{font-size:26px;background:none;color:#789085}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.toast{position:fixed;z-index:20;right:24px;bottom:24px;padding:12px 17px;border-radius:3px;background:#163f34;color:#fff;font-size:12px;box-shadow:0 8px 25px #0003}@media(max-width:850px){.topbar{padding:0 18px}.top-actions{display:none}.public-workspace{gap:20px;padding:22px 18px}.preview-aside{width:36vw}.preview-aside h1{font-size:31px}.admin-sidebar{width:210px}.admin-content{width:calc(100% - 42px)}}@media(max-width:680px){.topbar{height:62px}.topnav button{padding:0 12px;font-size:12px}.public-workspace{display:block;min-height:calc(100vh - 62px);padding:18px 0}.phone-frame{width:100%;height:calc(100vh - 80px);min-height:0;border:0;border-radius:0}.preview-aside{display:none}.admin-workspace{display:block}.admin-sidebar{width:100%;padding:18px;display:block}.side-intro{padding:0 5px 14px}.side-intro h1{font-size:22px}.side-link{display:inline-flex;width:auto;margin-right:4px;padding:9px 10px}.side-bottom{display:none}.admin-content{width:calc(100% - 28px);padding:28px 0 55px}.admin-heading{align-items:start;gap:10px}.admin-heading h2{font-size:27px}.admin-heading p:last-child{line-height:1.5}.stat-row{grid-template-columns:repeat(2,1fr)}.split-section{grid-template-columns:1fr}.section-toolbar{flex-wrap:wrap}.search-box{max-width:none;flex-basis:100%}.toast{right:14px;bottom:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.map-landscape{top:66px;right:0;bottom:0;left:0;background:#f4f0e7}.reference-map{position:absolute;top:-2.4%;left:-100.7%;z-index:0;width:301.8%;height:104.8%;object-fit:fill;object-position:center;opacity:.98}.map-landscape:before,.map-landscape .river,.map-landscape .city-block{display:none}.map-landscape .map-marker,.map-landscape .map-caption{z-index:1}.marker-兴庆区{left:57.4%;top:32.9%}.marker-贺兰县{left:41.5%;top:17.4%}.marker-金凤区{left:37.1%;top:34%}.marker-西夏区{left:15.3%;top:24%}.marker-灵武市{left:62.6%;top:69%}.marker-永宁县{left:25.4%;top:47%}.map-marker{transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;transform-origin:center center}.map-marker:hover,.map-marker.hovered,.map-marker:focus-visible{z-index:4;filter:saturate(1.12);transform:translate(-50%,-50%) scale(1.18);box-shadow:0 8px 18px #81221b59,0 0 0 5px #ffe23f6b}.map-marker:hover:after,.map-marker.hovered:after,.map-marker:focus-visible:after{content:"点击查看点位";position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);padding:4px 8px;border-radius:10px;color:#7a2c1e;background:#fff4bd;box-shadow:0 3px 10px #452d1529;font-size:10px;font-weight:800;white-space:nowrap}@media(prefers-reduced-motion:reduce){.map-marker{transition:none}}.public-only .topbar{display:none}.public-only .public-workspace{min-height:100vh;display:grid;place-items:center;padding:0}.public-only .preview-aside{display:none!important}.public-only .phone-frame{width:min(430px,100vw);height:100vh;min-height:100vh;border:0;border-radius:0}.public-only .public-cover{background:#8dc59a}.cover-map-reference{position:absolute;top:-20%;left:-70%;z-index:0;width:240%;height:132%;object-fit:contain;opacity:.28;filter:sepia(.3) saturate(1.8) hue-rotate(72deg) brightness(.88)}.public-only .public-cover:after{background:#14563a0d}.public-only .public-cover,.map-landscape{background-color:#6fae83;overflow:hidden}.public-only .public-cover{background-color:#82bd91}.scene-cloud{position:absolute;z-index:0;width:112px;height:34px;border-radius:50%;background:#f8fff4a8;box-shadow:28px -13px 0 5px #f8fff4a8,59px 0 0 2px #f8fff4a8;pointer-events:none;animation:cloudFloat 8s ease-in-out infinite alternate}.cloud-a{top:10%;left:-38px}.cloud-b{top:18%;right:18px;transform:scale(.72);animation-delay:-3s}.cloud-c{top:71%;left:-55px;transform:scale(.9);animation-delay:-5s}.map-cloud-a{top:7%;left:-70px;opacity:.55}.map-cloud-b{right:-42px;bottom:12%;opacity:.48;animation-delay:-4s}.cover-map-reference{z-index:1;opacity:.43;filter:drop-shadow(0 11px 0 rgba(25,101,67,.18));animation:mapRise .72s cubic-bezier(.2,.75,.25,1) both}.public-only .cover-copy{z-index:3;animation:titleDrop .62s ease-out both}.public-only .cover-city{z-index:3;animation:cityPop .7s .18s cubic-bezier(.2,.8,.25,1.12) both}.public-only .cover-cta{z-index:4;animation:ctaRise .6s .42s ease-out both,ctaPulse 1.9s 1.1s ease-in-out infinite}.reference-map{z-index:1;filter:drop-shadow(0 10px 0 rgba(33,92,61,.34));animation:mapRise .65s cubic-bezier(.2,.75,.25,1) both}.map-landscape .map-marker{z-index:3;animation:markerEnter .5s .26s ease-out both}.map-landscape .map-caption{z-index:4;animation:ctaPulse 2.2s ease-in-out infinite}@keyframes cloudFloat{0%{translate:-12px 0}to{translate:18px 0}}@keyframes titleDrop{0%{opacity:0;translate:0 -28px}to{opacity:1;translate:0 0}}@keyframes mapRise{0%{opacity:0;translate:0 42px}to{opacity:1;translate:0 0}}@keyframes cityPop{0%{opacity:0;scale:.72}to{opacity:1;scale:1}}@keyframes ctaRise{0%{opacity:0;translate:0 26px}to{opacity:1;translate:0 0}}@keyframes ctaPulse{0%,to{scale:1}50%{scale:1.035}}@keyframes markerEnter{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.scene-cloud,.cover-map-reference,.public-only .cover-copy,.public-only .cover-city,.public-only .cover-cta,.reference-map,.map-landscape .map-marker,.map-landscape .map-caption{animation:none}}
