@font-face{font-family:"Fusion Pixel 12";src:url(/assets/fonts/fusion-pixel-12/fusion-pixel-12-zh-hant.woff2) format("woff2");font-style:normal;font-weight:400;font-display:block}:root{color-scheme:dark;--ink: #102027;--cream: #fff2c7;--panel: rgba(16, 32, 39, .88);--pixel-font: "Fusion Pixel 12", monospace}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#0b1419;font-family:var(--pixel-font);font-synthesis:none;touch-action:none}button{font:inherit}#app{position:relative;display:grid;width:100vw;height:100vh;place-items:center;background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),#0b1419;background-size:16px 16px}#app canvas{position:absolute;top:50%;left:50%;display:block;width:var(--touch-canvas-width, 480px)!important;height:var(--touch-canvas-height, 320px)!important;transform:translate(-50%,-50%);image-rendering:pixelated;image-rendering:crisp-edges;box-shadow:0 0 0 3px #263c46,0 18px 60px #00000073}.prototype-ui{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:10}.prototype-ui.dialogue-has-choices{pointer-events:auto}.prototype-hud{position:absolute;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));min-width:210px;padding:7px 9px;color:#fff;background:var(--panel);border:2px solid #d8b968;box-shadow:3px 3px #00000059}.prototype-hud p{margin:0}.prototype-title{color:var(--cream);font-size:12px;font-weight:700}.prototype-region{margin-top:2px!important;font-size:12px}.prototype-status{margin-top:2px!important;color:#bbd3d8;font-size:12px}.prototype-quest{margin-top:5px!important;padding-top:4px;color:#f6cf63;border-top:1px solid rgba(246,207,99,.35);font-size:12px}.touch-controls{pointer-events:auto;position:absolute;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));left:max(14px,env(safe-area-inset-left));display:none;align-items:end;justify-content:space-between}.prototype-ui.menu-is-open .touch-controls{display:none}.dialogue-box{pointer-events:auto;cursor:pointer;position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));left:max(18px,env(safe-area-inset-left));min-height:92px;padding:10px 14px 20px;color:#17242b;white-space:pre-line;background:#fff8df;border:4px double #273b43;box-shadow:5px 5px #0000005c}.dialogue-box.has-choices{pointer-events:auto}.dialogue-title,.dialogue-text{margin:0}.dialogue-choices{display:grid;gap:4px;margin-top:8px}.dialogue-choices:empty{display:none}.dialogue-choices button{pointer-events:auto;display:grid;grid-template-columns:16px 1fr;padding:4px 8px;color:#17242b;font:inherit;text-align:left;background:transparent;border:1px solid transparent}.dialogue-choices button.is-selected,.dialogue-choices button:hover{color:#75451f;background:#f5df9d;border-color:#b58a42}.dialogue-title{color:#8b562b;font-size:12px;font-weight:700}.dialogue-text{margin-top:5px;font-size:12px;line-height:1.5}.dialogue-next{position:absolute;right:10px;bottom:5px;color:#59666b;font-size:12px}.dialogue-next.is-complete{color:#8b562b;animation:dialogue-prompt-bob .65s steps(2,end) infinite}@keyframes dialogue-prompt-bob{50%{transform:translateY(2px)}}.game-menu{pointer-events:auto;position:absolute;z-index:40;inset:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));display:grid;grid-template-columns:180px minmax(0,1fr);overflow:hidden;color:#17242b;background:#fff8df;border:4px double #273b43;box-shadow:8px 8px #00000073}.game-menu-nav{display:flex;flex-direction:column;padding:18px 14px;color:#fff;background:#17323b;border-right:3px solid #d8b968}.game-menu-nav h2,.game-menu-main h2,.game-menu-main h3,.game-menu-nav p{margin:0}.menu-kicker{color:#c88d43;font-size:12px;font-weight:700;letter-spacing:.12em}.game-menu-nav .menu-kicker{color:#f6cf63}.game-menu-nav nav{display:grid;gap:7px;margin-top:22px}.game-menu-nav button{padding:10px;color:#d7e4e6;background:#ffffff0f;border:1px solid #55737a;border-radius:5px;cursor:pointer;text-align:left}.game-menu-nav button.is-active{color:#17242b;background:#f6cf63;border-color:#fff2c7;font-weight:700}.game-menu-nav .menu-return-title{margin-top:auto;color:#ffd9c9;border-color:#9c5a4d}.game-menu-main{position:relative;overflow:auto;padding:26px 30px;background:linear-gradient(rgba(23,50,59,.04) 1px,transparent 1px),#fff8df;background-size:16px 16px}.game-menu-content>h2{margin-top:3px;font-size:25px}.game-menu-content>p{line-height:1.55}.menu-close{position:absolute;top:12px;right:12px;width:38px;height:38px;color:#fff;background:#8b3f35;border:2px solid #ffe7bd;border-radius:8px;cursor:pointer;font-size:24px}.menu-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px}.menu-stat-grid article{display:flex;justify-content:space-between;padding:14px;background:#ffffffb8;border:2px solid #9b8b68}.menu-stat-grid span,.menu-note{color:#647277}.menu-note{margin-top:18px;font-size:11px}.menu-item-list,.menu-objectives{margin:16px 0;padding:0;list-style:none;border-top:2px solid #9b8b68}.menu-item-list li,.menu-objectives li{display:flex;justify-content:space-between;padding:10px 4px;border-bottom:1px dashed #aa9a78}.menu-objectives li{justify-content:flex-start;gap:10px}.menu-objectives li.is-complete{color:#28705f;font-weight:700}.menu-badge,.menu-quest-status{padding:10px;background:#e8f1ec;border:2px solid #4d756d}.menu-setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px;padding:14px;background:#ffffffb3;border:2px solid #9b8b68}.menu-setting-row p{margin:4px 0 0;color:#647277;font-size:10px}.menu-setting-row button{min-width:70px;padding:8px;color:#fff;background:#276a65;border:2px solid #173d3a;border-radius:6px;cursor:pointer}.menu-setting-row.is-static>span{color:#28705f;font-weight:700}.menu-controls-list{margin-top:18px}.menu-controls-list div{display:grid;grid-template-columns:130px 1fr;padding:10px 4px;border-bottom:1px dashed #aa9a78}.menu-controls-list dt{color:#8b562b;font-weight:700}.menu-controls-list dd{margin:0}.airport-map{display:grid;gap:18px;margin-top:18px}.map-top,.map-bottom{display:flex;justify-content:center}.map-middle{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.airport-map-node{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:relative;display:grid;gap:5px;min-width:145px;padding:12px;color:#6f6c62;background:#d8d3c4;border:2px dashed #9b8b68;text-align:center;font:inherit}.airport-map-node.is-visited{color:#17323b;background:#e8f1ec;border-style:solid;border-color:#4d756d}.airport-map-node.is-travelable{cursor:pointer}.airport-map-node.is-travelable:hover,.airport-map-node.is-travelable:focus-visible{color:#17242b;background:#fff6cf;border-color:#c99b2d;outline:none;box-shadow:0 0 0 3px #f6cf6373}.airport-map-node:disabled{cursor:default}.airport-map-node.is-current{box-shadow:0 0 0 4px #f6cf638c}.airport-map-node span,.airport-map-node small{font-size:9px}.passport-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.passport-summary article{display:flex;justify-content:space-between;padding:12px;background:#ffffffb8;border:2px solid #9b8b68}.passport-stamps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0;list-style:none}.passport-stamps li{display:grid;gap:3px;padding:10px;color:#777064;background:#e1dac8;border:2px dashed #a99a79}.passport-stamps li.is-complete{color:#244f48;background:#e8f1ec;border-style:solid;border-color:#4d756d}.passport-stamps small{font-size:9px}.shop-panel{pointer-events:auto;position:absolute;z-index:30;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));overflow:auto;color:#17242b;background:#fff8df;border:4px double #273b43;box-shadow:8px 8px #0000006b}.shop-header{position:sticky;top:0;z-index:2;display:flex;align-items:start;justify-content:space-between;padding:14px 16px;color:#fff;background:#17323b;border-bottom:3px solid #d8b968}.shop-header p,.shop-header h2,.shop-products h3,.shop-cart h3{margin:0}.shop-kicker{color:#f6cf63;font-size:10px;letter-spacing:.12em}.shop-data-source{display:inline-block;margin:2px 0 6px;padding:2px 6px;color:#b9f7d4;border:1px solid rgba(91,214,146,.55);background:#185c3a80;font-size:9px}.shop-data-source.is-fallback{color:#ffe2a8;border-color:#eab046a6;background:#6e461280}.shop-title{margin-top:2px!important;font-size:22px}.shop-welcome{margin-top:3px!important;color:#c7d9dc;font-size:11px}.shop-clerk{margin:5px 0 0!important;color:#f6cf63;font-size:10px}.shop-close{width:38px;height:38px;color:#fff;background:#8b3f35;border:2px solid #ffe7bd;border-radius:8px;font-size:24px;cursor:pointer}.shop-content{display:grid;grid-template-columns:minmax(0,2fr) minmax(230px,1fr);min-height:calc(100% - 83px)}.shop-products,.shop-cart{padding:14px}.shop-products{background:linear-gradient(rgba(23,50,59,.04) 1px,transparent 1px),#fff8df;background-size:16px 16px}.quest-panel{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:11px 12px;background:#e8f1ec;border:2px solid #4d756d;box-shadow:3px 3px #273b431f}.quest-panel h3,.quest-panel p,.quest-panel ul{margin:0}.quest-panel p{margin-top:3px;color:#4a6265;font-size:10px}.quest-panel ul{display:flex;flex-wrap:wrap;gap:5px 10px;padding:7px 0 0;list-style:none;font-size:10px}.quest-panel li.is-complete{color:#28705f;font-weight:700}.quest-kicker{color:#8b562b!important;font-weight:700;letter-spacing:.08em}.quest-panel button{flex:0 0 auto;padding:9px 11px;color:#fff;background:#b06a32;border:2px solid #6e3f1e;border-radius:6px;cursor:pointer;font-weight:700}.shop-cart{background:#e7dcc2;border-left:2px solid #8c7953}.product-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.product-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;background:#fffdf4;border:2px solid #9b8b68;box-shadow:3px 3px #273b4326}.product-card.is-focused{border-color:#c88231;box-shadow:0 0 0 3px #f6cf6373}.product-icon{display:grid;width:42px;height:42px;place-items:center;color:#fff;background:#a66c82;border:2px solid #5f4350;border-radius:8px;font-size:20px}.product-copy p{margin:3px 0;color:#59666b;font-size:10px;line-height:1.35}.product-sku{display:block;color:#68787c;font-size:9px;letter-spacing:.04em}.product-name{display:block;margin-top:2px}.product-data-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:7px}.product-data-grid span{display:flex;flex-direction:column;gap:2px;padding:4px;color:#59666b;background:#f5ecd2;border:1px solid #c8b88f;font-size:8px}.product-data-grid b{color:#8b562b;font-weight:700}.product-data-grid .original-price{color:#7b7b73;text-decoration:line-through}.product-data-grid .promotion-price{color:#b54332}.product-data-grid .out-of-stock{color:#a3372d}.promotion-period{display:block;margin-top:5px;color:#77766f;font-size:8px}.promotion-period.is-active{color:#b54332;font-weight:700}.product-card button,.checkout-button,.cart-row button{color:#fff;background:#276a65;border:2px solid #173d3a;border-radius:6px;cursor:pointer}.product-card button{padding:7px}.product-card button:disabled{cursor:not-allowed;opacity:.45}.shop-balance,.cart-total{display:flex;justify-content:space-between;padding:8px;background:#ffffff8c;border:1px solid #9b8b68}.shop-cart h3{margin-top:14px}.cart-list{min-height:90px;margin:8px 0}.purchased-list{margin-top:8px}.purchased-row{display:flex;justify-content:space-between;padding:5px 0;color:#394c52;border-bottom:1px dashed #aa9a78;font-size:10px}.cart-empty{color:#746b5b;font-size:11px}.cart-row{display:grid;grid-template-columns:1fr 30px;gap:6px;align-items:center;padding:6px 0;border-bottom:1px dashed #9b8b68;font-size:11px}.cart-row button{height:28px;background:#98564d}.checkout-button{width:100%;margin-top:10px;padding:10px;background:#276a65;font-weight:700}.checkout-message{min-height:28px;margin:8px 0 0;color:#8b3f35;font-size:10px;line-height:1.4}.checkout-message.is-success{color:#276a65}.virtual-stick{touch-action:none;position:relative;width:142px;height:142px;border:2px solid rgba(255,247,220,.34);border-radius:50%;background:radial-gradient(circle at 38% 34%,rgba(118,147,158,.12),transparent 34%),#10232c38;box-shadow:inset 0 0 0 8px #08181f1a,inset 0 -12px 18px #00000014,0 6px 18px #0000001a;user-select:none;-webkit-user-select:none}.virtual-stick-ring{position:absolute;top:23px;right:23px;bottom:23px;left:23px;border:1px solid rgba(255,242,199,.14);border-radius:50%}.virtual-stick-knob{position:absolute;top:50%;left:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border:2px solid rgba(255,248,224,.42);border-radius:50%;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.1),transparent 30%),linear-gradient(145deg,#39545f6b,#122a346b);box-shadow:inset 0 -8px 12px #00000024,0 5px 12px #0000002e;transition:transform 70ms ease-out;will-change:transform}.virtual-stick.is-active .virtual-stick-knob{border-color:#fff4c8;box-shadow:inset 0 -8px 12px #00000038,0 0 18px #f6cf635c}.action-button,.back-button{color:#fff;background:#192f3a4d;border:2px solid rgba(255,242,199,.4);border-radius:50%;user-select:none;-webkit-user-select:none}.action-button:active,.back-button:active{background:#d8b968d1}.mobile-actions{display:flex;gap:16px;align-items:flex-end}.action-button,.back-button{width:68px;height:68px;color:var(--cream);font-size:22px;font-weight:700;box-shadow:0 5px 12px #0000001f}.action-button{transform:translateY(-12px)}.action-button.is-ready{color:#15252b;background:#f6cf63;border-color:#fff5c7;box-shadow:0 0 0 3px #f6cf6347,0 0 18px #f6cf63b8;animation:interaction-ready .76s ease-in-out infinite alternate}@keyframes interaction-ready{0%{transform:scale(1)}to{transform:scale(1.08)}}.back-button{font-size:22px}.back-button.is-running{color:#15252b;background:#8fe6dd;border-color:#d5fffa;box-shadow:0 0 14px #69e6da9e;font-size:10px;font-weight:700}@media(pointer:coarse),(max-width:820px){.touch-controls{display:flex}.prototype-hud{max-width:58vw}.dialogue-box{right:84px;bottom:18px;left:84px}.shop-content{grid-template-columns:1fr}.shop-cart{border-top:2px solid #8c7953;border-left:0}.product-list{grid-template-columns:1fr}.game-menu{grid-template-columns:132px minmax(0,1fr)}.game-menu-main{padding:22px 18px}.menu-stat-grid,.map-middle,.passport-summary,.passport-stamps{grid-template-columns:1fr}}html.touch-layout #app{position:fixed;top:0;left:0;display:block;overflow:hidden}html.touch-layout #app canvas{box-shadow:none}html.touch-layout .prototype-ui{z-index:10}html.touch-layout .touch-controls{z-index:50;display:flex}html.portrait-touch-layout #app{top:50%;left:50%;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center}html.title-screen .prototype-hud,html.title-screen .virtual-stick,html.title-screen .back-button{display:none}html.title-screen .touch-controls{justify-content:flex-end}html.title-screen .mobile-actions{display:flex;align-items:end}:is(.prototype-hud,.dialogue-box,.game-menu,.shop-panel),:is(.prototype-hud,.dialogue-box,.game-menu,.shop-panel) *{font-size:12px}:is(.game-menu-main h2,.shop-title,.menu-close,.shop-close){font-size:24px}@media not all{#app:after{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;color:var(--cream);background:#081115f0;content:"請將手機轉為橫向，會更適合探索免稅店。";text-align:center;font-size:18px}}
