:root{--master:390px;--outer:#5f0008;--page-red:#910000}
*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;background:var(--outer);font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","Noto Sans",Arial,sans-serif}
button{font:inherit}.is-hidden{display:none!important}
body{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}
.app-stage{position:relative;margin:0 auto;background:var(--page-red);overflow:visible}
.phone-shell{position:relative;width:var(--master);min-height:100svh;background:var(--page-red);overflow:visible;transform-origin:top left;will-change:transform}
.language-screen{position:relative;min-height:820px;overflow:visible;background:var(--page-red)}
.map-screen{position:absolute;inset:0;overflow:hidden;background:var(--page-red)}
.language-bg{position:absolute;top:0;left:-20.72px;width:446.37px;height:853.48px;max-width:none;pointer-events:none;user-select:none;object-fit:cover}
.language-header{position:absolute;z-index:2;top:20px;left:50%;width:240px;height:auto;transform:translateX(-50%);text-align:center;color:#fff;pointer-events:none;user-select:none}
.language-brand{display:block;width:206.76px;height:auto;margin:0 auto 14px}
.guide-title-zh{font-family:"Noto Serif TC","Songti TC","PMingLiU",serif;font-size:20px;line-height:1.25;letter-spacing:.02em}
.guide-title-en{font-family:Georgia,"Times New Roman",serif;font-size:11.5px;line-height:1.3;margin-top:2px}
.guide-divider{width:23px;height:1px;background:rgba(255,255,255,.85);margin:13px auto 11px}
.choose-title-zh{font-family:"Noto Serif TC","Songti TC","PMingLiU",serif;font-size:19px;line-height:1.2}
.choose-title-en{font-family:Georgia,"Times New Roman",serif;font-size:11.5px;line-height:1.25;margin-top:3px}
.language-grid{position:absolute;left:0;top:242px;width:390px;height:570px;z-index:3}
.lang-btn{position:absolute;width:102.47px;height:102.47px;border:0;padding:0;background:transparent;border-radius:50%;cursor:pointer;transition:transform .14s ease,filter .14s ease}
.lang-btn img{display:block;width:100%;height:100%}.lang-btn:active{transform:scale(.95);filter:brightness(.92)}
.lang-cn{left:143.76px;top:0}.lang-jp{left:85.5px;top:99px}.lang-en{left:202px;top:99px}.lang-kr{left:143.76px;top:198px}.lang-th{left:85.5px;top:297px}.lang-vi{left:202px;top:297px}.lang-id{left:143.76px;top:396px}
.map-screen iframe{display:block;width:100%;height:100%;border:0;background:#eee}
.side-btn{position:absolute;z-index:5;left:50%;bottom:max(22px,env(safe-area-inset-bottom));width:80px;height:80px;border:0;padding:0;background:transparent;cursor:pointer;transform:translateX(-50%)}
.side-btn img{display:block;width:100%;height:100%}
.overlay{position:fixed;inset:0;z-index:1000;background:var(--page-red);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s ease-in-out,visibility 0s linear .5s;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;will-change:opacity}
.overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .5s ease-in-out}
.overlay-base{position:absolute;inset:0;width:100%;min-height:100%;object-fit:cover;pointer-events:none;user-select:none}
.overlay-inner{position:relative;z-index:2;width:min(390px,100vw);min-height:100dvh;margin:0 auto;color:#fff;padding-bottom:max(28px,env(safe-area-inset-bottom))}
.overlay-logo{display:block;width:206.76px;height:auto;margin:20px auto 0;pointer-events:none;user-select:none}
.overlay-content{position:relative;margin-top:18px;padding:0 20px 28px;display:flex;flex-direction:column;color:#fff;opacity:0;transform:translateY(8px);transition:opacity .5s ease-in-out,transform .5s ease-in-out}
.overlay.is-visible .overlay-content{opacity:1;transform:translateY(0)}
.overlay-description{font-size:17px;line-height:1.72;white-space:pre-line;text-align:left;text-shadow:0 1px 2px rgba(0,0,0,.12)}
.deco-icon{display:block;width:148px;height:auto;margin:16px auto 22px;pointer-events:none;user-select:none}
.overlay-actions{display:grid;gap:12px;padding-bottom:4px}
.overlay-btn{min-height:50px;border:1px solid rgba(255,255,255,.68);border-radius:25px;background:#fff;color:#910000;font-weight:700;font-size:16px;cursor:pointer}
.overlay-btn-secondary{background:transparent;color:#fff}
@media(max-width:340px){.overlay-inner{width:100vw}.overlay-content{padding-left:16px;padding-right:16px}.overlay-description{font-size:15.5px;line-height:1.65}}
