:root{--bg:#101612;--panel:#1b241e;--line:#ffffff22;--ink:#edf1df;--muted:#8e9c90;--green:#b7f34b;--hot:#03efa0;--red:#e45440;--mono:'Menlo','Consolas',monospace;--cn:'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}body{margin:0;background:#080c09;color:var(--ink);font-family:var(--cn);overflow:hidden}button{font:inherit;cursor:pointer;color:inherit;border:0;background:none;touch-action:manipulation}button:focus-visible{outline:2px solid var(--green);outline-offset:4px}button:disabled{opacity:.35;cursor:default}button,img{-webkit-user-select:none;user-select:none}button{ -webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}img{object-fit:cover;display:block}#app{height:100dvh;min-height:520px;position:relative;overflow:hidden;background:var(--bg)}.shell{height:100%;display:flex;flex-direction:column;position:relative}.topbar{height:82px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid var(--line);z-index:5;background:#111711e8}.brand{display:flex;align-items:center;gap:18px}.delta{display:flex;gap:9px;align-items:center;font-size:23px;font-weight:900;letter-spacing:-1px;line-height:1}.delta em{font-size:38px;color:var(--green);font-style:normal}.delta small{display:block;font:8px var(--mono);letter-spacing:2.8px;margin-top:6px}.cross{font:23px var(--mono);color:#74816f}.haidilao{color:#ef5c4d;font-size:25px;font-weight:800}.haidilao small{display:block;font-size:8px;letter-spacing:3px;color:#b5bdb0}.topright{display:flex;gap:22px;align-items:center;font:11px var(--mono);letter-spacing:1px}.status{color:var(--green)}.status:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:9px;box-shadow:0 0 12px var(--green)}.iconbtn{width:40px;height:40px;border:1px solid var(--line);font-size:18px}.scene{position:relative;flex:1;min-height:0;overflow:hidden;animation:arrive .5s both}.scene:after{pointer-events:none;content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 4px,#0000000b 4px 5px);z-index:3}.eyebrow{font:11px var(--mono);letter-spacing:3px;color:var(--green);text-transform:uppercase}.footer{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;font:9px var(--mono);letter-spacing:1.6px;color:#73806e;border-top:1px solid var(--line);flex-shrink:0;z-index:4}.footer strong{color:#c5cebb;font-weight:400}.primary{min-height:54px;padding:14px 30px;background:var(--green);color:#16220f;font-weight:800;letter-spacing:1px;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%);transition:filter .15s,transform .15s}.primary:hover{filter:brightness(1.12)}.primary:active{transform:scale(.97)}.secondary{border:1px solid #69775e;padding:13px 23px;min-height:48px;color:#d6dfca}.muted{color:var(--muted)}.grid-bg{background-image:linear-gradient(#a3d28908 1px,transparent 1px),linear-gradient(90deg,#a3d28908 1px,transparent 1px),radial-gradient(ellipse at 50% 50%,#40563333,transparent 65%);background-size:64px 64px,64px 64px,100% 100%}.scene-head{position:absolute;top:32px;left:38px;z-index:4}.scene-head h2{font-size:30px;margin-top:10px;letter-spacing:2px}.scene-index{position:absolute;right:38px;top:26px;font:74px var(--mono);font-weight:700;color:#ffffff0b}.coordinates{position:absolute;left:38px;bottom:28px;font:10px/2 var(--mono);letter-spacing:2px;color:#89977c}.scene-bottom{position:absolute;bottom:28px;right:38px;font:10px var(--mono);color:#839273}.intro{background:#1d291f}.landscape{position:absolute;inset:0;background:linear-gradient(90deg,#0c170ee8 0%,#101a1255 70%),linear-gradient(0deg,#101612 0%,transparent 70%),url('assets/battle.jpg') center/cover;filter:saturate(.55);animation:land 7s ease-out both}.intro:before{content:'';position:absolute;right:7%;top:10%;width:360px;height:360px;border:1px solid #d1f3a322;border-radius:50%;z-index:1;box-shadow:0 0 0 65px #d1f3a308,0 0 0 130px #d1f3a305}.flight-frame{position:absolute;inset:0;background:url('assets/flight.jpg') center/cover;animation:flyframe 3.2s ease-in-out both;pointer-events:none;z-index:2;filter:saturate(.55)}.intro-copy{position:absolute;left:8%;top:22%;z-index:3;animation:copyin 1s 1.9s both}.intro-copy h1{font-size:clamp(55px,6.8vw,100px);line-height:1.12;letter-spacing:5px;margin:25px 0 24px;font-weight:900}.intro-copy h1 span{color:var(--green);display:block}.intro-copy p{color:#bdc8b4;font-size:14px;letter-spacing:3px;margin-bottom:36px}.intro-copy .eyebrow{border-left:3px solid var(--green);padding-left:12px}.intro-copy .primary{min-width:250px;text-align:left;display:flex;justify-content:space-between}.tap-hint{font:10px var(--mono);letter-spacing:3px;margin-top:14px;color:#9caa8d}.mission-side{position:absolute;right:5%;bottom:12%;z-index:3;text-align:right;animation:copyin 1s 2.2s both}.mission-side b{font:56px var(--mono);color:#d7e3bf}.mission-side p{font:10px/2 var(--mono);color:#aab998;letter-spacing:2px}.crate-layout{height:100%;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:80px 10% 40px;gap:8%}.crate-visual{position:relative;display:grid;place-items:center;height:95%}.crate-visual:before{content:'';position:absolute;width:340px;height:340px;max-width:95%;border:1px solid #b7f34b33;transform:rotate(45deg);background:radial-gradient(#a4ff2922,transparent 70%)}.crate-visual:after{content:'GTI / SECURE CONTAINER';position:absolute;bottom:4%;font:9px var(--mono);letter-spacing:3px;color:#8eaa6b}.safe{width:min(270px,80%);height:350px;background:linear-gradient(100deg,#526056,#1b251f 35%,#3e4b40 75%,#17201b);border:8px solid #627064;border-radius:28px;box-shadow:0 30px 80px #0009,inset 0 0 0 4px #0b130b,inset 0 0 40px #0008;position:relative;transform:perspective(700px) rotateY(-12deg) rotateX(3deg);animation:float 4s ease-in-out infinite;cursor:pointer}.safe:before,.safe:after{content:'';position:absolute;left:-9px;right:-9px;height:16px;background:linear-gradient(#e0c883,#8b7038);box-shadow:0 4px 5px #0008}.safe:before{top:16px}.safe:after{bottom:16px}.safe-lines{position:absolute;inset:60px 20px;border:1px solid #a2b29444;background:repeating-linear-gradient(0deg,transparent 0 3px,#a3ae9a0b 3px 4px)}.safe-screen{position:absolute;top:72px;left:50%;transform:translateX(-50%);width:140px;height:65px;border:5px solid #88937f;background:#111b0e;color:var(--green);font:14px var(--mono);display:grid;place-items:center;box-shadow:0 0 25px #aaff0022}.safe-lock{position:absolute;top:170px;left:50%;transform:translateX(-50%);height:96px;width:96px;border:7px double #a3af9b;border-radius:50%;background:radial-gradient(#83907b,#333e2e);display:grid;place-items:center;color:#d0efb6;font:36px var(--mono);box-shadow:0 8px 10px #0008}.safe-lock:after{content:'';position:absolute;top:78px;width:28px;height:47px;background:linear-gradient(90deg,#33402e,#87947e,#263121);border:2px solid #91a181}.crate-info{position:relative;z-index:4}.crate-info h1{font-size:clamp(38px,4.8vw,66px);line-height:1.2;margin:18px 0 20px;font-weight:900}.crate-info h1 span{color:var(--green)}.crate-info p{font-size:14px;line-height:1.9;color:#9da994}.loot-tag{display:inline-block;border:1px solid #7d9b5366;padding:8px 12px;font:10px var(--mono);color:#c7e3a4;margin:25px 0}.crate-info .primary{display:block;width:100%;max-width:300px}.unlock-center{position:absolute;inset:100px 0 35px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.lock-label{font:11px var(--mono);letter-spacing:3px;color:#9cae8a}.wheels{display:flex;gap:18px;position:relative;padding:0 25px}.wheels:before{content:'';position:absolute;left:0;right:0;top:81px;height:75px;border:1px solid var(--green);background:#b7f34b0a;box-shadow:0 0 35px #b7f34b0a}.wheel{width:92px;height:235px;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:none;z-index:1;border-left:1px solid #ffffff10;border-right:1px solid #ffffff10;background:linear-gradient(#0c130c88,transparent,#0c130c88);cursor:ns-resize}.wheel button{height:70px;width:100%;font:36px var(--mono);color:#607154}.wheel output{height:75px;display:grid;place-items:center;font:58px var(--mono);color:var(--green);text-shadow:0 0 22px #b7f34b44;pointer-events:none}.unlock-center .primary{min-width:300px}.search-area{position:absolute;inset:115px 15% 50px;display:flex;flex-direction:column;justify-content:center}.search-label{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.search-label h1{font-size:33px}.search-label b{font:42px var(--mono);color:var(--green)}.loot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.loot-cell{aspect-ratio:1.2;border:1px solid #62745355;position:relative;background:repeating-linear-gradient(-45deg,#ffffff03 0 8px,transparent 8px 16px);display:grid;place-items:center;color:#81916c;font:40px var(--mono);transition:.2s}.loot-cell small{position:absolute;bottom:12px;left:14px;font:9px var(--mono);color:#7e8c72}.loot-cell.active{background:#b7f34b22;border-color:var(--green);color:var(--green);box-shadow:inset 0 0 45px #b7f34b11}.loot-cell.found{background:#b7f34b;border:1px solid var(--green);color:#15220d;animation:pulse 1s infinite}.loot-cell.found small{color:#304820}.progress{height:3px;background:#ffffff18;margin-top:25px;overflow:hidden}.progress i{display:block;height:100%;background:var(--green);transition:width .1s}.search-area>.muted{font:10px var(--mono);margin-top:15px;letter-spacing:1px}.reward-wrap{position:absolute;inset:30px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:15px}.reward-wrap:before{content:'';position:absolute;width:550px;height:550px;background:repeating-conic-gradient(from 0deg,transparent 0deg 28deg,#b7f34b08 28deg 30deg);border-radius:50%;animation:spin 70s linear infinite}.reward-wrap h1{font-size:34px;z-index:1}.reward-card{width:470px;max-width:75vw;display:grid;grid-template-columns:44% 56%;background:#c3f35e;color:#17230f;position:relative;text-align:left;border:1px solid #d4ff83;box-shadow:0 0 100px #b7f34b12;animation:rewardin .8s cubic-bezier(.2,.8,.2,1) both}.reward-image{width:100%;height:220px;filter:saturate(.85)}.reward-card .reward-content{padding:25px 23px;border-left:2px dashed #47602b66;display:flex;flex-direction:column;justify-content:center}.reward-content small{font:10px var(--mono);letter-spacing:1px}.reward-content h2{font-size:31px;margin:13px 0 8px}.reward-content p{font-size:12px;line-height:1.7;color:#3c5424}.reward-content b{font:12px var(--mono);margin-top:15px}.reward-wrap>.primary{min-width:290px;z-index:1;margin-top:5px}.reward-wrap>.muted{font-size:12px;z-index:1}.shard{position:absolute;background:var(--green);width:12px;height:20px;clip-path:polygon(0 0,100% 30%,20% 100%);animation:shards 1.2s both;left:50%;top:45%}.menu-layout{display:grid;grid-template-columns:146px minmax(0,1fr) 290px;flex:1;min-height:0}.sidebar{border-right:1px solid var(--line);padding:28px 14px;display:flex;flex-direction:column;gap:8px}.sidebar .eyebrow{font-size:9px;margin:0 10px 16px;letter-spacing:1px}.category{display:flex;align-items:center;gap:14px;text-align:left;padding:16px 13px;color:#8e9b83;font-size:14px;border:1px solid transparent}.category span{font:11px var(--mono);opacity:.6}.category.active{background:var(--green);color:#182311;font-weight:800}.side-bottom{margin-top:auto;border-top:1px solid var(--line);padding:18px 10px 0;color:#7d8a72;font:9px/1.8 var(--mono)}.catalog{overflow:auto;padding:24px 26px 30px;scrollbar-width:thin;scrollbar-color:#506341 transparent}.menu-banner{position:relative;min-height:145px;border:1px solid #b7f34b30;overflow:hidden;padding:22px 26px;background:linear-gradient(90deg,#2f4125 0%,#253721bb 70%,#1d2b1d99),url('assets/battle.jpg') center/cover;display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.menu-banner h1{font-size:30px;margin:8px 0}.menu-banner p{color:#a9ba98;font-size:12px}.banner-code{font:66px var(--mono);font-weight:900;color:#c3e59830;transform:rotate(-8deg)}.catalog-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.catalog-title h2{font-size:19px}.catalog-title span{font:10px var(--mono);color:#8a987e}.food-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.food-card{background:#1b241b;border:1px solid #ffffff12;position:relative;transition:border-color .2s;overflow:hidden}.food-card:hover{border-color:#b7f34b77}.food-photo{width:100%;aspect-ratio:1.3;object-fit:cover}.photo-btn{padding:0;width:100%;position:relative;display:block}.food-badge{position:absolute;top:10px;left:10px;font-size:10px;background:#c1f56a;color:#203114;padding:5px 7px;font-weight:700}.food-id{position:absolute;bottom:8px;right:8px;font:9px var(--mono);background:#121b12b3;padding:4px 6px;color:#e3e9dc}.food-info{padding:13px 13px 15px}.food-info h3{font-size:16px;margin-bottom:7px;white-space:nowrap}.food-info p{font-size:10px;color:#87967d;white-space:nowrap}.food-price{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.food-price strong{font:22px var(--mono)}.food-price small{font-size:10px;color:#86927d}.add-btn{height:36px;width:36px;border:1px solid #6c8056;color:var(--green);font-size:24px;display:grid;place-items:center;padding:0}.add-btn:active{background:var(--green);color:#14200c}.cart{border-left:1px solid var(--line);background:#141d14;display:flex;flex-direction:column;min-height:0;padding:24px 20px 20px}.cart-head{display:flex;justify-content:space-between;align-items:center;margin:8px 0 25px}.cart-head h2{font-size:22px}.cart-count{color:var(--green);font:13px var(--mono);border:1px solid #b7f34b33;padding:6px 8px}.coupon-mini{border:1px dashed #85a45b;background:#b7f34b09;padding:13px;text-align:left;display:flex;align-items:center;gap:12px;margin-bottom:17px;width:100%;font-size:12px}.coupon-mini b{font-size:24px;color:var(--green)}.coupon-mini small{font-size:10px;color:#849774;display:block;margin-top:5px}.cart-list{overflow:auto;flex:1;min-height:0;scrollbar-width:thin}.cart-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#7d8e70;gap:12px;font-size:12px}.cart-empty b{font:50px var(--mono);font-weight:normal;color:#62784a}.cart-item{display:grid;grid-template-columns:48px 1fr;gap:10px;padding:15px 0;border-bottom:1px solid var(--line)}.cart-item img{width:48px;height:48px}.cart-item h3{font-size:12px;font-weight:500;margin-bottom:10px}.cart-item-bottom{display:flex;justify-content:space-between;align-items:center;font:12px var(--mono)}.quantity{display:flex;align-items:center;gap:9px}.quantity button{border:1px solid #ffffff30;width:26px;height:26px;padding:0;font-size:17px}.cart-totals{border-top:1px solid var(--line);padding-top:18px;margin-top:14px}.sum-row{display:flex;justify-content:space-between;font-size:11px;color:#97a38d;margin-bottom:10px}.sum-row.discount{color:var(--green)}.total-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:18px 0}.total-row b{font:31px var(--mono)}.cart .primary{width:100%;font-size:14px}.cart-note{text-align:center;font-size:9px;color:#63745a;margin-top:10px}.modal-backdrop{position:absolute;inset:0;background:#050a06c9;backdrop-filter:blur(10px);z-index:20;display:grid;place-items:center;animation:arrive .2s}.modal{position:relative;background:#1a241a;border:1px solid #6b8053;width:660px;max-width:90%;max-height:88%;overflow:auto;padding:34px}.close{position:absolute;right:15px;top:12px;font-size:26px;width:40px;height:40px;z-index:2;background:#152010bb}.detail{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:24px}.detail img{width:100%;height:240px}.detail h2{font-size:26px;margin-bottom:15px}.detail p{color:#8c9e80;font-size:13px;line-height:1.8;margin-bottom:22px}.detail .price{font:32px var(--mono);margin:20px 0}.spec{border:1px solid var(--green);color:var(--green);padding:10px 15px;font-size:12px}.detail .primary{width:100%;font-size:13px}.modal h2{margin:14px 0 20px}.checkout-list{max-height:220px;overflow:auto;margin-bottom:25px}.checkout-row{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}.modal-actions{display:flex;gap:12px;margin-top:25px}.modal-actions>*{flex:1}.ticket-list{display:flex;flex-direction:column;gap:12px}.ticket-option{border:1px solid #ffffff30;padding:18px;text-align:left;display:flex;justify-content:space-between;align-items:center}.ticket-option.selected{border-color:var(--green);color:var(--green);background:#b7f34b0a}.ticket-option p{font-size:12px;margin-top:7px;color:#8b9b7c}.success{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px}.success-mark{border:1px solid var(--green);width:90px;height:90px;display:grid;place-items:center;color:var(--green);font-size:46px;transform:rotate(45deg);margin-bottom:15px;background:#b7f34b10}.success-mark span{transform:rotate(-45deg)}.success h1{font-size:44px}.success p{font-size:14px;color:#8e9f80;line-height:1.9}.receipt{width:370px;border-top:1px dashed #5d704d;border-bottom:1px dashed #5d704d;padding:18px;margin:5px 0}.receipt div{display:flex;justify-content:space-between;margin:10px 0;font:13px var(--mono)}.success .modal-actions{width:420px;margin-top:0}.demo-label{font:10px var(--mono);color:#728269}.flying-food{position:fixed;z-index:50;width:70px;height:70px;border:2px solid var(--green);pointer-events:none;object-fit:cover;box-shadow:0 0 25px #b7f34b77;transition:transform .65s cubic-bezier(.3,.05,.6,1),opacity .65s;border-radius:4px}.cart.flash{animation:flash .5s}.food-card.scanned:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 35%,#b7f34b77 50%,transparent 65%);animation:scan .45s both}#toast{position:fixed;left:50%;bottom:65px;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:99;background:#c3f36a;color:#1a2a12;border:1px solid #dfffaf;padding:14px 25px;font-size:13px;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}.settings-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.settings-row button{font-size:12px}.settings-section{margin:24px 0;color:#8f9f82;font-size:12px}.settings-section select{display:block;margin-top:10px;width:100%;background:#10190f;border:1px solid #60774a;color:#dbe8cd;padding:12px;font:14px var(--cn)}.rotate-hint{display:none}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes flyframe{0%{opacity:1;transform:translate(-65%,-35%) scale(.7) rotate(-12deg);clip-path:polygon(15% 20%,100% 0,100% 100%,0 100%)}45%{opacity:1;transform:translate(0,0) scale(1.05) rotate(0)}70%{opacity:1}100%{opacity:0;transform:translate(15%,10%) scale(1.3)}}@keyframes land{from{transform:scale(1.2)}to{transform:scale(1)}}@keyframes copyin{from{opacity:0;transform:translateY(25px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}@keyframes float{50%{transform:perspective(700px) rotateY(-7deg) rotateX(3deg) translateY(-9px)}}@keyframes pulse{50%{filter:brightness(1.25);box-shadow:0 0 30px #b7f34b44}}@keyframes rewardin{from{opacity:0;transform:scale(.5) rotate(-9deg);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}@keyframes shards{from{transform:translate(calc(var(--x)*1px),calc(var(--y)*1px)) rotate(80deg);opacity:1}to{transform:translate(0,0) rotate(0);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flash{50%{background:#314621}}@keyframes scan{from{transform:translateY(-100%)}to{transform:translateY(100%)}}
@media(min-width:1500px){.topbar{height:90px}.menu-layout{grid-template-columns:170px minmax(0,1fr) 340px}.food-grid{gap:24px}.catalog{padding:30px 36px}.food-photo{aspect-ratio:1.5}}@media(max-width:1100px){.topbar{height:70px;padding:0 24px}.topright{gap:12px}.menu-layout{grid-template-columns:116px minmax(0,1fr) 250px}.sidebar{padding:22px 8px}.category{font-size:12px;padding:14px 8px;gap:9px}.catalog{padding:20px 18px}.food-grid{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.menu-banner{padding:18px;min-height:125px}.menu-banner h1{font-size:25px}.banner-code{font-size:48px}.cart{padding:20px 15px}.crate-layout{padding-top:90px}.safe{height:310px}.footer{padding:0 24px}.search-area{inset:110px 12% 35px}}@media(max-height:720px){.topbar{height:65px}.footer{height:32px}.intro-copy{top:14%}.intro-copy h1{font-size:65px;margin:18px 0}.intro-copy p{margin-bottom:24px}.scene-head{top:22px}.scene-head h2{font-size:24px}.safe{height:290px;width:220px}.safe-screen{top:60px}.safe-lock{top:145px}.crate-layout{padding-top:75px}.crate-info h1{font-size:42px}.reward-wrap{gap:10px}.reward-image{height:175px}.reward-content h2{font-size:27px}.unlock-center{inset:80px 0 20px;gap:15px}.wheel{height:210px}.wheel button{height:65px}.wheels:before{top:68px}.loot-cell{aspect-ratio:1.5}.success{gap:12px}.success-mark{height:65px;width:65px}.success h1{font-size:35px}.receipt{padding:10px}.menu-banner{min-height:115px}}@media(orientation:portrait){.rotate-hint{display:block;position:fixed;bottom:0;left:0;right:0;padding:10px;text-align:center;z-index:100;background:var(--green);color:#14210e;font-size:12px}.menu-layout{grid-template-columns:96px minmax(0,1fr) 220px}.topright .status{display:none}.food-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand{gap:8px}.delta{font-size:18px}.haidilao{font-size:20px}.crate-layout{padding:100px 5% 70px;gap:4%}.crate-info h1{font-size:34px}.safe{width:190px}.footer{font-size:8px}.food-info{padding:10px}.food-info h3{font-size:13px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}.flight-frame{display:none}}

/* Rare supply illustration */
.loot-cell.found{background:radial-gradient(ellipse at 50% 45%,#7ba73d55 0%,#263e20 55%,#142316 100%);color:var(--green);animation:crate-glow 2.4s ease-in-out infinite;overflow:hidden}
.supply-crate-art{width:88%;height:85%;object-fit:contain;align-self:start;pointer-events:none;filter:drop-shadow(0 8px 14px #0008);animation:crate-reveal .5s ease-out both}
.loot-cell.found small{color:#d6f9a2;left:0;right:0;bottom:12px;text-align:center;font:11px var(--cn);letter-spacing:1px}
@keyframes crate-glow{50%{box-shadow:inset 0 0 30px #b7f34b20,0 0 22px #b7f34b18;border-color:#ddff9b}}
@keyframes crate-reveal{from{opacity:0;transform:translateY(10px) scale(.8)}to{opacity:1;transform:none}}

/* Foreground aircraft and environment are separate layers. */
.intro .landscape{animation:none;transform:none}
.intro .flight-frame{inset:auto;left:0;top:0;width:82%;height:auto;aspect-ratio:1.93;background:none;clip-path:none;filter:none;transform-origin:50% 50%;animation:helicopter-pass 5.2s cubic-bezier(.25,.45,.55,.85) both;will-change:transform;z-index:2}
.helicopter-sprite{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(20px 50px 20px #0006);animation:flight-vibration .18s ease-in-out infinite alternate;pointer-events:none}
.intro-copy{animation:copyin 1s 3.2s both}
.mission-side{animation:copyin 1s 3.6s both}
@keyframes helicopter-pass{
0%{transform:translate(125%,70%) scale(.4) rotate(-9deg);opacity:1}
28%{transform:translate(48%,36%) scale(.63) rotate(-5deg);opacity:1}
52%{transform:translate(8%,14%) scale(.92) rotate(0deg);opacity:1}
72%{transform:translate(-40%,-18%) scale(1.12) rotate(5deg);opacity:1}
100%{transform:translate(-155%,-90%) scale(1.35) rotate(9deg);opacity:1}
}
@keyframes flight-vibration{from{transform:translateY(-1px) rotate(-.12deg)}to{transform:translateY(1px) rotate(.12deg)}}
@media(prefers-reduced-motion:reduce){.intro .flight-frame{display:none}.intro-copy,.mission-side{animation-delay:0s}}

/* Rotor rotation happens inside the projected rotor plane, not on the fuselage. */
.aircraft-rig{position:relative;width:100%;height:100%;animation:aircraft-bob 1.4s ease-in-out infinite alternate;transform-origin:43.3% 23%}
.aircraft-rig .helicopter-sprite{animation:none;filter:drop-shadow(20px 42px 18px #0005)}
.rotor-plane{position:absolute;left:43.3%;top:23%;width:85%;aspect-ratio:1;transform:translate(-50%,-50%) rotate(12deg) scaleY(.27);pointer-events:none}
.rotor-disc{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,transparent 4%,#8590850c 5%,#a9b2a41c 45%,#ced3c322 63%,transparent 70%);border:1px solid #b4beae16}
.rotor-blades{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg 77deg,#a9b2a433 80deg,#4b554ccc 87deg,#aeb9a89c 89deg,transparent 90deg 167deg,#a9b2a433 170deg,#4b554ccc 177deg,#aeb9a89c 179deg,transparent 180deg 257deg,#a9b2a433 260deg,#4b554ccc 267deg,#aeb9a89c 269deg,transparent 270deg 347deg,#a9b2a433 350deg,#4b554ccc 357deg,#aeb9a89c 359deg,transparent 360deg);mask-image:radial-gradient(circle,transparent 0 3%,#000 4% 65%,transparent 70%);-webkit-mask-image:radial-gradient(circle,transparent 0 3%,#000 4% 65%,transparent 70%);animation:rotor-revolve .17s linear infinite;filter:blur(.6px);will-change:transform}
.rotor-trail{opacity:.34;animation-delay:-.035s;filter:blur(5px)}
.rotor-hub{position:absolute;left:47%;top:47%;width:6%;height:6%;border-radius:50%;background:radial-gradient(#8e9c85,#1b251e 70%);box-shadow:0 0 6px #0008}
@keyframes rotor-revolve{to{transform:rotate(360deg)}}
@keyframes aircraft-bob{from{transform:translateY(-3px) rotate(-.35deg)}to{transform:translateY(3px) rotate(.35deg)}}
@media(prefers-reduced-motion:reduce){.aircraft-rig,.rotor-blades{animation:none}}

/* Photoreal mechanical safe replaces the CSS placeholder. */
.safe.safe-realistic{width:min(360px,95%);height:min(440px,56vh);padding:0;border:0;border-radius:0;background:none;box-shadow:none;transform:none;animation:safe-arrive .7s ease-out both;position:relative;transition:filter .2s}
.safe.safe-realistic:before,.safe.safe-realistic:after{display:none}
.safe-prop{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 24px 24px #0009);pointer-events:none}
.safe.safe-realistic:hover{filter:brightness(1.1)}
.safe.safe-realistic:active{transform:scale(.98)}
.safe-target{position:absolute;left:42%;top:47%;width:20%;aspect-ratio:1;border:1px solid #c7f79566;border-radius:50%;transform:translate(-50%,-50%);animation:safe-target-pulse 2.3s ease-out infinite;pointer-events:none}
@keyframes safe-target-pulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}25%{opacity:.7}100%{opacity:0;transform:translate(-50%,-50%) scale(1.65)}}
@keyframes safe-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-height:720px){.safe.safe-realistic{height: min(340px,54vh)}}
@media(prefers-reduced-motion:reduce){.safe.safe-realistic,.safe-target{animation:none}}

/* Mechanical dial rotates inside the fixed safe housing. */
.safe-dial-spin{transform-origin:464px 650px;animation:dial-combination 5.4s cubic-bezier(.45,0,.25,1) infinite}
@keyframes dial-combination{0%,7%{transform:rotate(0deg)}30%,39%{transform:rotate(150deg)}59%,68%{transform:rotate(75deg)}88%,100%{transform:rotate(360deg)}}
.equipment-art{width:93%;height:76%;object-fit:contain;opacity:.36;filter:grayscale(1) brightness(.8);transition:opacity .25s,filter .25s,transform .25s;pointer-events:none;mix-blend-mode:screen;align-self:start;margin-top:4%}
.equipment-art.equipment-icon{width:50%;height:60%;margin-top:10%;image-rendering:auto}
.loot-cell:disabled{opacity:1}
.loot-cell.identified .equipment-art{opacity:.75;filter:grayscale(.2) brightness(1)}
.loot-cell.active .equipment-art{opacity:1;filter:grayscale(0) brightness(1.3);transform:scale(1.05)}
.loot-cell.active:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 30%,#b7f34b33 50%,transparent 70%);animation:scan .4s linear both}
.loot-cell small{font-family:var(--cn);font-size:11px;letter-spacing:.5px}
@media(prefers-reduced-motion:reduce){.safe-dial-spin{animation:none}}

/* Official campaign visual direction: cold battlefield, white and mint titles. */
@font-face{font-family:DeltaCampaign;src:url('assets/official/title-bold.ttf') format('truetype');font-weight:800 1000;font-display:swap}
:root{--green:#50ed9c;--bg:#131b20;--panel:#202b30;--ink:#f0f3ef;--muted:#9ba9ac}
.official-logo{width:205px;height:46px;object-fit:contain}
.topbar{background:#10191dec}.footer{background:#10191d;color:#809195}
.intro{background:#222e36}
.intro .landscape{background:linear-gradient(90deg,#0a131b88,transparent 80%),linear-gradient(0deg,#0b131be6 0%,transparent 75%),url('assets/official/battlefield-cold.jpg') center 45%/cover;filter:saturate(.62);inset:-5% 0 -9%;animation:none}
.intro:before{display:none}
.intro-copy{left:6%;top:auto;bottom:11%;max-width:72%}
.intro-copy h1{font-family:DeltaCampaign,var(--cn);font-size:clamp(65px,7.8vw,112px);letter-spacing:0;line-height:1.04;font-weight:1000;margin:18px 0 22px;text-shadow:0 3px 22px #0005}
.intro-copy h1 span{color:#50ed9c}
.intro-copy p{font-size:15px;letter-spacing:4px;color:#e0e6e4}
.intro-copy .primary{min-width:270px}
.mission-side{bottom:8%;right:5%}.intro .coordinates{display:none}
h1,h2,.scene-head h2{font-family:DeltaCampaign,var(--cn);font-weight:900}
.grid-bg{background-image:linear-gradient(#121c23ed,#16212af0),url('assets/official/battlefield-cold.jpg');background-size:cover;background-position:center}
.scene-index{color:#ffffff0c}.scene-head h2{font-size:32px}.crate-info h1{font-size:clamp(38px,4.8vw,66px)}
.menu-layout{background:#151e23}.sidebar{background:#141d22}.cart{background:#172126}.food-card{background:#202b30}.modal{background:#1c282e}
.menu-banner{min-height:170px;background:linear-gradient(90deg,#142129 0%,#142129e6 35%,#14212922 80%),url('assets/official/operator-wildfire.jpg') 62% 35%/cover;border-color:#506a69;padding:25px}
.menu-banner>div:first-child{position:relative;z-index:1;max-width:65%}.menu-banner h1{font-size:32px;color:#f2f4f2}.menu-banner p{color:#b7c6c5;font-size:12px}.menu-banner .eyebrow{font-size:9px;letter-spacing:1.4px}
.operator-banner-label{align-self:flex-end;position:relative;z-index:1;text-align:right}.operator-banner-label span{font:9px var(--mono);color:#dce8df}.operator-banner-label b{display:block;color:var(--green);font-size:14px;margin-top:5px}
.operator-strip{display:flex;align-items:center;gap:12px;border-top:1px solid #ffffff18;border-bottom:1px solid #ffffff18;margin:-6px 0 24px;padding:12px 0}
.operator-strip-title{font-size:13px;font-weight:700;margin-right:auto;white-space:nowrap}.operator-strip-title small{display:block;font:8px var(--mono);color:#7b9597;margin-top:6px}
.operator-strip>div{display:flex;align-items:center;gap:8px;min-width:0}.operator-strip img{width:65px;height:44px;object-fit:cover;border-left:2px solid var(--green)}.operator-strip>div span{font-size:12px;white-space:nowrap}.operator-strip>div small{display:block;color:#82999c;font-size:9px;margin-top:5px}
.loot-cell{background:linear-gradient(135deg,#27373d55,#131d2244);border-color:#829a9d44}.equipment-art{opacity:.62;filter:grayscale(.3) brightness(1.1)}.equipment-art.equipment-icon{width:48%;height:57%;margin-top:11%;filter:brightness(1.1)}.loot-cell.identified .equipment-art{opacity:.9}.loot-cell.active{background:#50ed9c18;border-color:var(--green)}
@media(max-width:1100px){.official-logo{width:175px}.operator-strip{gap:10px}.operator-strip img{width:44px;height:36px}.operator-strip-title small{font-size:7px}.menu-banner h1{font-size:26px}.operator-banner-label{display:none}}
@media(max-height:720px){.intro-copy{bottom:8%}.intro-copy h1{font-size:65px;margin:12px 0 16px}.intro-copy p{margin-bottom:20px}.menu-banner{min-height:145px}}

/* Portrait layout: one active scroll pane and an expandable bottom cart. */
.cart-toggle{display:none}
@media(orientation:portrait),(max-width:680px){
#app{min-height:0;height:100svh;height:100dvh}.topbar{height:64px;padding:8px 16px;gap:8px}.brand{gap:10px}.official-logo{width:150px;height:38px}.haidilao{font-size:20px}.haidilao small{font-size:7px;letter-spacing:1px}.cross{font-size:18px}.topright{gap:7px}.topright>span{display:none}.iconbtn{width:40px;height:40px;flex-shrink:0}
.footer{height:30px;padding:0 16px;font-size:8px;letter-spacing:.5px}.footer>span:nth-child(2){display:none}.scene{overflow:auto;overscroll-behavior:contain}.scene-head{position:relative;top:auto;left:auto;padding:25px 24px 0}.scene-head .eyebrow{font-size:10px;letter-spacing:2px}.scene-head h2{font-size:28px}.scene-index{right:20px;top:15px;font-size:62px}.coordinates,.scene-bottom{display:none}
.intro{overflow:hidden}.intro-copy{left:7%;right:7%;max-width:none;bottom:10%;top:auto}.intro-copy h1{font-size:clamp(52px,10vw,90px);line-height:1.1;margin:22px 0}.intro-copy p{font-size:13px;line-height:1.8;letter-spacing:2px;margin-bottom:22px}.intro-copy .eyebrow{font-size:9px;letter-spacing:1.5px}.intro-copy .primary{width:100%;max-width:380px;min-width:0}.tap-hint{font-size:8px;letter-spacing:1px}.mission-side{top:25px;bottom:auto;right:24px}.mission-side b{font-size:40px}.mission-side p{font-size:8px}.intro .landscape{background-position:58% center}.intro .flight-frame{width:130%;top:10%;left:-15%}
.crate-layout{height:auto;min-height:0;grid-template-columns:1fr;gap:8px;padding:15px 24px 30px;text-align:center}.crate-visual{height:auto;min-height:200px}.crate-visual:before{width:200px;height:200px}.crate-visual:after{display:none}.safe.safe-realistic{height:clamp(220px,32vh,380px);width:75%}.crate-info h1{font-size:32px;margin:8px 0 12px}.crate-info h1 br{display:none}.crate-info>.eyebrow{display:none}.crate-info p{font-size:12px;line-height:1.7}.loot-tag{font-size:9px;margin:15px 0}.crate-info .primary{margin:0 auto;max-width:400px;min-height:50px}
.unlock-center{position:relative;inset:auto;min-height:calc(100% - 100px);padding:35px 20px;gap:24px}.lock-label{font-size:10px;letter-spacing:1px;text-align:center}.wheels{width:100%;max-width:450px;gap:10px;padding:0 10px}.wheel{width:auto;flex:1;min-width:0;height:225px}.wheel button{height:75px;font-size:30px}.wheel output{height:75px;font-size:48px}.wheels:before{top:75px}.unlock-center .primary{min-width:0;width:100%;max-width:400px}
.search-area{position:relative;inset:auto;padding:28px 24px 26px;display:block}.search-label{margin-bottom:18px}.search-label h1{font-size:25px}.search-label b{font-size:31px}.loot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.loot-cell{aspect-ratio:1.65;min-height:95px}.loot-cell small{font-size:10px;left:10px;bottom:8px}.equipment-art{height:72%;margin-top:2%}.equipment-art.equipment-icon{height:55%;margin-top:6%}.search-area>.muted{line-height:1.7;font-size:9px}.progress{margin-top:18px}.supply-crate-art{height:78%;width:75%}
.reward-wrap{position:relative;inset:auto;min-height:calc(100% - 110px);padding:35px 20px;gap:20px;overflow:hidden}.reward-wrap:before{width:90vw;height:90vw}.reward-wrap h1{font-size:29px}.reward-card{max-width:100%;width:480px;grid-template-columns:42% 58%}.reward-image{height:220px}.reward-card .reward-content{padding:20px 15px}.reward-content h2{font-size:26px}.reward-content small{font-size:8px}.reward-content p{font-size:11px}.reward-wrap>.primary{width:100%;min-width:0;max-width:400px}
.menu-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.sidebar{flex-direction:row;overflow-x:auto;flex-wrap:nowrap;border:0;border-bottom:1px solid var(--line);padding:8px 12px;gap:6px}.sidebar>.eyebrow,.side-bottom{display:none}.category{flex:1;min-width:max-content;justify-content:center;padding:13px 12px;font-size:13px;gap:7px}.catalog{padding:18px 16px 24px;min-height:0}.menu-banner{min-height:150px;margin-bottom:20px;padding:20px}.menu-banner h1{font-size:28px}.menu-banner p{font-size:11px;line-height:1.7}.operator-strip{gap:12px;margin-bottom:20px}.operator-strip img{width:50px;height:40px}.operator-strip-title{font-size:12px}.operator-strip-title small{font-size:7px}.food-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.food-info{padding:13px}.food-info h3{font-size:15px}.food-info p{font-size:10px;overflow:hidden;text-overflow:ellipsis}.food-price strong{font-size:22px}.add-btn{width:44px;height:44px}.food-photo{aspect-ratio:1.3}
.cart{border-left:0;border-top:1px solid #50ed9c66;padding:10px 18px calc(12px + env(safe-area-inset-bottom));max-height:60dvh;overflow:hidden;flex-shrink:0;min-height:0}.cart>.eyebrow,.cart>.coupon-mini,.cart>.cart-list{display:none}.cart-head{margin:0 0 10px;gap:12px}.cart-head h2{font-size:16px}.cart-count{font-size:11px;padding:4px 7px}.cart-toggle{display:block;margin-left:auto;font-size:12px;color:var(--green);min-height:40px;padding:8px}.cart-totals{border:0;padding:0;margin:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,1fr);align-items:center;gap:12px}.cart-totals>.sum-row,.cart-totals>.cart-note{display:none}.total-row{margin:0;display:block}.total-row>span{font-size:10px;color:var(--muted)}.total-row b{display:block;font-size:27px;margin-top:3px}.cart .primary{font-size:12px;padding:12px;min-height:48px}.cart.expanded>.coupon-mini{display:flex;margin:0 0 8px;padding:10px}.cart.expanded>.cart-list{display:block;overflow:auto;flex:1;min-height:60px}.cart.expanded .cart-totals{padding-top:12px;border-top:1px solid var(--line);margin-top:8px}.cart-empty{padding:15px}.cart-empty b{display:none}.quantity button{width:40px;height:40px}.cart-item h3{font-size:14px}.cart-item-bottom{font-size:13px}
.modal-backdrop{padding:16px}.modal{max-width:100%;width:100%;max-height:calc(100dvh - 32px);padding:28px 20px;overscroll-behavior:contain}.modal h2{font-size:24px}.detail{grid-template-columns:1fr;gap:20px}.detail img{height:clamp(150px,25vh,260px);object-fit:cover}.detail p{margin-bottom:12px}.detail .price{margin:14px 0}.modal-actions{gap:10px}.modal-actions>button{padding:12px 10px;font-size:13px;min-width:0}.ticket-option{padding:14px;gap:10px}.ticket-option p{font-size:11px;line-height:1.7}.checkout-list{max-height:35vh}.checkout-row{font-size:12px;gap:10px}
.success{padding:40px 22px;gap:20px;justify-content:flex-start}.success-mark{flex-shrink:0;margin-top:15px;width:70px;height:70px}.success h1{font-size:32px}.success p{font-size:13px}.receipt,.success .modal-actions{width:100%;max-width:420px}.demo-label{font-size:9px}.settings-row{flex-direction:column}#toast{bottom:170px;max-width:90%;width:max-content;padding:12px 18px;font-size:12px}
}
@media(max-width:430px){.topbar{padding:8px 10px}.brand{gap:6px}.official-logo{width:117px}.haidilao{font-size:17px}.haidilao small{font-size:6px}.topright{gap:5px}.iconbtn{width:36px;height:40px}.category{font-size:12px;padding:12px 9px}.category span{display:none}.operator-strip-title{display:none}.operator-strip{justify-content:space-between}.operator-strip img{width:43px;height:34px}.menu-banner h1{font-size:24px}.food-info{padding:10px}.food-info h3{font-size:13px}.food-price strong{font-size:20px}.scene-head{padding:20px 18px 0}.scene-head h2{font-size:25px}.search-area{padding:25px 16px}.reward-wrap h1{font-size:24px}.reward-content h2{font-size:22px}.reward-image{height:190px}.crate-info h1{font-size:27px}}
