:root{--ink: #1b1b1b;--ink-soft: #6b6b6b;--ink-faint: #9a968d;--line: #e6e3dd;--line-strong: #d8d4cb;--accent: #2b7fff;--surface: #ffffff;--surface-alt: #faf9f7;--surface-sunken: #f2f0ea;--success: #1f9d55;--success-ink: #15733e;--success-soft: #eafaf0;--success-soft-strong: #d7f4e2;--cat-a: #e4572e;--cat-b: #0f9b8e;--cat-c: #7048c4;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: .875rem;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgb(27 27 27 / .06), 0 1px 1px rgb(27 27 27 / .04);--shadow-md: 0 8px 24px rgb(27 27 27 / .14);--fs-2xs: .6875rem;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .875rem;--fs-md: .9375rem;--fs-lg: 1.0625rem;--bottom-nav-h: 3.75rem;--paper: #f6f1e6;--paper-deep: #efe7d6;--forest: #2f5d50;--forest-ink: #234a3f;--brand-blue: #1d3f8f;--brand-red: #e3473e;--brand-yellow: #f2b632;--brand-teal: #3fb7a6;--glow: #f7b24a;--rules-bg: #8c8fb3;font-family:Noto Sans TC,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang TC,Microsoft JhengHei,sans-serif;-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}html{touch-action:manipulation}body{color:var(--ink);background:#faf9f7}button{font-family:inherit}.cluster-bubble{display:flex;align-items:center;justify-content:center;border-radius:50%;background:#2b7fff47;color:#fff;font-weight:700;box-shadow:0 2px 8px #0003}.cluster-bubble span{display:flex;align-items:center;justify-content:center;width:76%;height:76%;border-radius:50%;background:#2b7fff}.cluster-bubble--sm{font-size:.75rem}.cluster-bubble--md{font-size:.8125rem;background:#1860d247}.cluster-bubble--md span{background:#1860d2}.cluster-bubble--lg{font-size:.875rem;background:#0c3e9147}.cluster-bubble--lg span{background:#0c3e91}.me-marker{position:relative}.me-marker__dot{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 1px 4px #00000059}.me-marker__pulse{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#2b7fff59;animation:me-pulse 2s ease-out infinite}@keyframes me-pulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(2.2);opacity:0}}@media(prefers-reduced-motion:reduce){.me-marker__pulse{animation:none;opacity:.4}}.leaflet-popup-content-wrapper{border-radius:calc(20 * var(--u, .4px))}.leaflet-popup-content{margin:calc(26 * var(--u, .4px)) calc(22 * var(--u, .4px));line-height:1.5}.pin-popup{width:calc(520 * var(--u, .4px));text-align:center;font-family:Noto Sans TC,sans-serif;font-weight:700;--pu: var(--u, .4px)}.pin-popup__name{margin:0 0 calc(10 * var(--pu));font-size:max(16px,calc(40 * var(--pu)));font-weight:900;color:#000;letter-spacing:.1em}.pin-popup__title{margin:0;font-size:calc(max(13px,calc(32 * var(--pu))) * var(--fit, 1));color:#000;letter-spacing:.06em;white-space:nowrap}.pin-popup__addr{margin:calc(6 * var(--pu)) 0 0;font-size:max(13px,calc(32 * var(--pu)));color:#666;line-height:1.5;letter-spacing:.04em}.pin-popup__actions{display:flex;justify-content:center;gap:calc(16 * var(--pu));margin-top:calc(18 * var(--pu))}.pin-popup__nav,.pin-popup__shoot{display:inline-flex;align-items:center;justify-content:center;min-height:36px;margin:0;padding:0 max(10px,calc(24 * var(--pu)));border:0;border-radius:999px;color:#fff!important;font-family:inherit;font-size:max(12px,calc(23 * var(--pu)));font-weight:700;letter-spacing:.1em;white-space:nowrap;text-decoration:none;cursor:pointer}.pin-popup__nav{background:#0143b6}.pin-popup__shoot{background:#1d322f}.leaflet-control-attribution{font-size:.625rem}.film-page{--film-bg: var(--paper);--sprocket: 1.75rem;position:fixed;top:0;right:0;bottom:0;left:0;display:flex;padding:0 var(--sprocket);background:var(--brand-blue);background-image:repeating-linear-gradient(to bottom,transparent 0 .5rem,#fff .5rem 1.4rem,transparent 1.4rem 2.1rem),repeating-linear-gradient(to bottom,transparent 0 .5rem,#fff .5rem 1.4rem,transparent 1.4rem 2.1rem);background-size:.9rem 100%,.9rem 100%;background-position:.42rem 0,calc(100% - .42rem) 0;background-repeat:repeat-y,repeat-y}.film-page__inner{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;padding:max(1.25rem,env(safe-area-inset-top)) 1rem max(1.25rem,env(safe-area-inset-bottom));background:var(--film-bg);overflow:hidden}.logo{margin:0;font-size:2.75rem;font-weight:900;line-height:1.1;letter-spacing:.04em}.logo--sm{font-size:1.75rem}.logo__blue{color:var(--brand-blue)}.logo__red{color:var(--brand-red)}.btn-pill{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:0 1.5rem;border:0;border-radius:999px;font-family:inherit;font-size:1.0625rem;font-weight:800;color:#fff;box-shadow:0 .25rem #00000026;cursor:pointer}.btn-pill:disabled{cursor:not-allowed;box-shadow:none}.btn-pill--red{background:var(--brand-red)}.btn-pill--grey{background:#9a9a9a}.btn-pill--forest{background:var(--forest)}.paper-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--paper);color:var(--ink)}.paper-page__top{flex:none;display:grid;grid-template-columns:2.75rem 1fr 2.75rem;align-items:center;padding:max(.5rem,env(safe-area-inset-top)) .5rem 0}.paper-page__back{width:2.75rem;height:2.75rem;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--forest);border-radius:50%;background:transparent;color:var(--forest);font-size:1.1rem;cursor:pointer}.paper-page__title{margin:.25rem 0 0;text-align:center;font-family:"Noto Serif TC",Songti TC,PMingLiU,serif;font-size:1.5rem;font-weight:700;letter-spacing:.35em;text-indent:.35em;color:var(--forest)}.paper-page__subtitle{margin:.15rem 0 0;text-align:center;font-size:.75rem;letter-spacing:.2em;color:var(--forest-ink)}.paper-page__subtitle:before,.paper-page__subtitle:after{content:" ◆ "}.paper-nav{flex:none;display:flex;align-items:stretch;padding:.5rem .5rem calc(.5rem + env(safe-area-inset-bottom))}.paper-nav__btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;min-height:3.75rem;padding:.25rem;border:0;background:none;font-family:inherit;font-size:.6875rem;color:var(--forest-ink);cursor:pointer}.paper-nav__btn+.paper-nav__btn{border-left:1px solid rgb(47 93 80 / .25)}.paper-nav__btn:disabled{opacity:.6;cursor:progress}.paper-nav__icon{width:2.5rem;height:2.5rem;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--forest);border-radius:50%;font-size:1.1rem;line-height:1;color:var(--forest)}.paper-nav__icon--solid{background:var(--forest);color:#fff;border-color:var(--forest)}.paper-nav__icon.is-spinning{animation:paper-nav-spin 1s linear infinite}@keyframes paper-nav-spin{to{transform:rotate(360deg)}}.stage-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:clip;background:var(--stage-bg, #fcf8f1)}.stage{--u: min(100vw / 941, 100dvh / 1672);position:relative;flex:none;width:calc(941 * var(--u));height:calc(1672 * var(--u))}@supports not (height: 100dvh){.stage{--u: min(100vw / 941, 100vh / 1672)}}.stage>*{position:absolute}.stage{overflow:clip}.stage img{display:block;max-width:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.stage--paper{background:#fcf8f1 url(/ui/paper-sparkle.webp) center / 100% 100% no-repeat}.stage-back,.stage-icon-btn{display:flex;align-items:center;justify-content:center;padding:0;border:0;background:none;cursor:pointer}.stage-back img,.stage-icon-btn img{width:100%;height:100%}.stage-title{margin:0;text-align:center;white-space:nowrap;font-family:"Noto Serif TC",Songti TC,PMingLiU,serif;font-weight:900;color:#13545e;font-size:calc(76 * var(--u));line-height:1;letter-spacing:.16em;text-indent:.16em}.stage-rule{display:flex;align-items:center;justify-content:center;gap:calc(15 * var(--u));margin:0;font-family:"Noto Serif TC",Songti TC,PMingLiU,serif;font-size:calc(32 * var(--u));line-height:1;color:#1d322f;letter-spacing:.18em;white-space:nowrap}.stage-rule:before,.stage-rule:after{content:"";flex:1;height:1px;background:#1d322f}.stage-rule span:before,.stage-rule span:after{content:"◆";font-size:.6em;vertical-align:.2em}.stage-rule span:before{margin-right:.6em}.stage-rule span:after{margin-left:.4em}.stage-pill{display:flex;align-items:center;justify-content:center;padding:0;border:calc(7 * var(--u)) solid #fff;border-radius:999px;font-family:Noto Sans TC,sans-serif;font-weight:900;color:#fff;font-size:calc(58 * var(--u));letter-spacing:.08em;box-shadow:0 calc(8 * var(--u)) calc(12 * var(--u)) #00000038;cursor:pointer}.stage-pill--red{background:#f2615b}.stage-pill--grey{background:#a6a6a6;cursor:not-allowed}
