:root{--paper:#f3ecdb;--paper2:#e8dfc8;--ink:#2a2b35;--ink2:#5a5a66;--red:#b4553a;--gold:#e9b95b;--hand:"Ma Shan Zheng", "Long Cang", "Caveat", "Kaiti SC", "STKaiti", "KaiTi", cursive;--sans:-apple-system, "PingFang SC", "PingFang TC", "Noto Sans SC", "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif}body{font-family:var(--sans);-webkit-user-select:none;user-select:none}.hide{display:none!important}#top{right:calc(14px + env(safe-area-inset-right));top:calc(12px + env(safe-area-inset-top));z-index:6;gap:8px;display:flex;position:fixed}.pill{font:600 15px/1 var(--sans);color:#fff;letter-spacing:.06em;cursor:pointer;-webkit-backdrop-filter:blur(6px);text-shadow:0 1px 3px #00000059;background:#1c203075;border:1px solid #ffffff47;border-radius:999px;padding:10px 16px}.pill:hover{background:#1c20309e}.pill.dot:after{content:"";background:var(--gold);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-left:8px;animation:1.6s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{box-shadow:0 0 #fbf7eebf}50%{box-shadow:0 0 0 9px #fbf7ee00}}#goal{left:0;right:0;top:calc(64px + env(safe-area-inset-top));text-align:center;color:#fff;font:600 18px/1.4 var(--sans);letter-spacing:.14em;text-shadow:0 1px 10px #10182cb3,0 0 2px #10182c99;opacity:0;pointer-events:none;z-index:4;padding:0 60px;transition:opacity 1.4s;position:fixed}#goal.on{opacity:1}#place .pn{font:inherit;letter-spacing:inherit}#place .pr{font:600 12px var(--sans);letter-spacing:.16em;opacity:.75;margin-top:5px}#place{left:calc(18px + env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom));color:#ffffffd9;font:600 14px var(--sans);letter-spacing:.2em;text-shadow:0 1px 8px #10182cb3;pointer-events:none;z-index:3;transition:opacity 1.2s;position:fixed}#prompt{left:50%;bottom:calc(76px + env(safe-area-inset-bottom));z-index:6;font:700 18px var(--sans);letter-spacing:.1em;color:var(--ink);cursor:pointer;background:#f3ecdbf0;border-radius:999px;align-items:center;gap:12px;padding:11px 24px 11px 14px;display:none;position:fixed;transform:translate(-50%);box-shadow:0 4px 18px #0a101e59}#prompt.on{display:flex}#prompt kbd{font:700 15px var(--sans);background:var(--ink);color:var(--paper);border-radius:8px;padding:5px 10px}.veil{z-index:20;background:#0a0e1a6b;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.veil.on{animation:.35s fadein;display:flex}@keyframes fadein{0%{opacity:0}}.paper{background:var(--paper);width:min(560px,100%);max-height:88vh;color:var(--ink);background-image:radial-gradient(circle at 20% 10%,#ffffff80,#0000 60%);border-radius:6px;padding:34px 38px 28px;position:relative;overflow:auto;box-shadow:0 18px 60px #00000080,inset 0 0 90px #b4965a2e}.paper:before{content:"";pointer-events:none;border:1px solid #5a46282e;border-radius:3px;position:absolute;inset:10px}.paper .env{font:700 15px var(--sans);letter-spacing:.12em;color:var(--red);border-bottom:1px dashed #5a462859;margin-bottom:18px;padding-bottom:12px}.paper .body{font:400 28px/1.65 var(--hand);color:#20212b;white-space:pre-line}.paper .body p{opacity:0;margin:0 0 .45em;animation:.9s forwards ink}@keyframes ink{to{opacity:1}}.paper .body p.old{opacity:.55;animation:none}.paper .sketch{background:#efe8d4;border:1px solid #5a46284d;width:100%;margin:4px 0 16px;display:block}.paper .foot{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.btn{font:700 16px var(--sans);letter-spacing:.1em;color:var(--paper);background:var(--ink);cursor:pointer;border:0;border-radius:999px;padding:11px 26px}.btn.alt{color:var(--ink);background:0 0;border:1.5px solid #2a2b3573}.btn:disabled{opacity:.35;cursor:default}.btn:hover:not(:disabled){filter:brightness(1.25)}.bag-list{gap:12px;display:grid}.bag-item{text-align:left;cursor:pointer;font:inherit;color:inherit;background:#fbf6e8;border:1px solid #5a462847;border-radius:4px;align-items:center;gap:14px;padding:14px 16px;display:flex;position:relative}.bag-item:hover{background:#fffbef}.bag-item .stamp{border:2px dashed #b4553a99;border-radius:3px;flex:none;width:40px;height:48px}.bag-item .a{font:700 16px/1.45 var(--sans);letter-spacing:.06em}.bag-item .s{font:600 13px var(--sans);color:var(--red);letter-spacing:.1em;margin-top:3px}.paper h2{font:700 20px var(--sans);letter-spacing:.18em;margin:0 0 18px}.empty{font:600 16px var(--sans);color:var(--ink2);text-align:center;letter-spacing:.1em;padding:20px 0}#bubble{z-index:8;max-width:min(380px,80vw);color:var(--ink);font:600 19px/1.55 var(--sans);letter-spacing:.05em;background:#f3ecdbf7;border-radius:14px;padding:14px 18px 12px;display:none;position:fixed;transform:translate(-50%,-100%);box-shadow:0 6px 24px #0a101e66}#bubble.on{display:block}#bubble:after{content:"";border:9px solid #0000;border-top-color:#f3ecdbf7;border-bottom:0;margin-left:-9px;position:absolute;bottom:-9px;left:50%}#bubble .who{font:700 13px var(--sans);color:var(--red);letter-spacing:.16em;margin-bottom:3px}#bubble .next{text-align:right;font:700 13px var(--sans);color:var(--ink2);letter-spacing:.1em;margin-top:4px}#choices{left:50%;bottom:calc(76px + env(safe-area-inset-bottom));z-index:9;gap:12px;display:none;position:fixed;transform:translate(-50%)}#choices.on{display:flex}#caps{z-index:30;opacity:0;pointer-events:none;text-align:center;background:#0b0e17;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;transition:opacity 1.2s;display:flex;position:fixed;inset:0}#caps.on{opacity:1;pointer-events:auto}#caps p{color:#f3ecdb;font:500 clamp(18px, 2.4vw, 26px)/1.7 var(--sans);letter-spacing:.14em;opacity:0;max-width:760px;margin:0;transition:opacity 1.4s}#caps p.on{opacity:1}#fade{z-index:25;pointer-events:none;opacity:0;background:#0b0e17;transition:opacity 1.2s;position:fixed;inset:0}#fade.on{opacity:1}#toast{z-index:12}.card-wrap{justify-items:center;gap:12px;width:min(560px,100%);display:grid}.card-wrap canvas{background:#fff;width:min(100%,41.6vh);height:auto;box-shadow:0 14px 50px #0000008c}.card-wrap input[type=text]{box-sizing:border-box;width:100%;font:500 22px var(--hand);color:var(--ink);background:#f3ecdbf5;border:0;border-radius:8px;outline:none;padding:10px 14px}.row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.album{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;display:grid}.album img{cursor:pointer;border-radius:3px;width:100%;display:block;box-shadow:0 6px 20px #00000059}.tpl{gap:8px;margin-bottom:12px;display:grid}.tpl .opts{flex-wrap:wrap;gap:8px;display:flex}.chip{font:600 16px var(--sans);letter-spacing:.05em;color:var(--ink);cursor:pointer;background:0 0;border:1.5px solid #2a2b3559;border-radius:999px;padding:8px 14px}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.free{box-sizing:border-box;width:100%;font:500 24px var(--hand);color:var(--ink);background:#fbf6e8;border:1px solid #5a46284d;border-radius:4px;outline:none;margin:4px 0 12px;padding:8px 12px}.mine{font:400 26px/1.6 var(--hand)}.small{font:600 13px var(--sans);color:var(--ink2);letter-spacing:.08em}#end{z-index:28;color:#f3ecdb;text-align:center;background:#080b14c7;flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:24px;display:none;position:fixed;inset:0}#end.on{animation:2s fadein;display:flex}#end h1{font:700 clamp(34px, 6vw, 64px)/1.2 var(--sans);letter-spacing:.2em;margin:0}#end p{font:500 clamp(17px, 2.2vw, 22px)/1.8 var(--sans);letter-spacing:.12em;max-width:640px;margin:0}#title{z-index:15;color:#fff;text-align:center;background:linear-gradient(#080c1859,#080c1800 35% 60%,#080c188c);flex-direction:column;justify-content:flex-start;align-items:center;gap:16px;padding:9vh 0 7vh;display:none;position:fixed;inset:0}#title.on{display:flex}#title h1{font:800 clamp(48px, 9vw, 110px)/1.05 var(--sans);letter-spacing:.22em;text-shadow:0 3px 24px #0a143299;margin:0;padding-left:.22em}#title .sub{font:700 clamp(16px, 2vw, 22px) var(--sans);letter-spacing:.4em;text-shadow:0 2px 12px #0a1432b3}#title .where{font:600 clamp(12px, 1.25vw, 15px) var(--sans);letter-spacing:.32em;opacity:.88;text-shadow:0 1px 10px #0a1432b3;margin:-6px 0 auto}#title .btns{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:14px;display:flex}#title .btn{color:var(--ink);background:#f3ecdbf2;padding:14px 40px;font-size:20px}#title .btn.alt{color:#fff;background:#1c203080;border-color:#ffffff80}#title .tip{font:600 14px var(--sans);letter-spacing:.2em;opacity:.85;text-shadow:0 1px 8px #0a1432b3}#menu .row{margin:8px 0 18px}#rotate{z-index:40;color:#f3ecdb;font:600 20px var(--sans);letter-spacing:.12em;text-align:center;background:#0b0e17;justify-content:center;align-items:center;padding:30px;display:none;position:fixed;inset:0}@media (orientation:portrait) and (max-width:700px){#rotate.want{display:flex}}@media (max-width:700px){.paper{padding:26px 22px 22px}.paper .body{font-size:24px}#goal{top:calc(62px + env(safe-area-inset-top));padding:0 16px;font-size:15px}.pill{padding:9px 12px;font-size:14px}#bubble{font-size:17px}}#hint{left:0;right:0;bottom:calc(20px + env(safe-area-inset-bottom));text-align:center;color:#fff;font:600 16px var(--sans);letter-spacing:.12em;text-shadow:0 1px 10px #10182cbf;pointer-events:none;opacity:0;z-index:3;transition:opacity 1.4s;position:fixed}#hint.on{opacity:1}#fps{z-index:3}#vf{z-index:5;pointer-events:none;display:none;position:fixed;inset:0}#vf.on{display:block}.vf-frame{border:1.5px solid #fffaf0b3;position:absolute;box-shadow:0 0 0 100vmax #080c1861}.vf-frame.lock{border-color:#f4c46c}.vf-sketch{object-fit:fill;mix-blend-mode:multiply;opacity:0;filter:contrast(1.15);width:100%;height:100%;transition:opacity .25s;position:absolute;inset:0}.vf-c{border:0 solid #fff;width:22px;height:22px;position:absolute}.vf-c.tl{border-top-width:3px;border-left-width:3px;top:-3px;left:-3px}.vf-c.tr{border-top-width:3px;border-right-width:3px;top:-3px;right:-3px}.vf-c.bl{border-bottom-width:3px;border-left-width:3px;bottom:-3px;left:-3px}.vf-c.br{border-bottom-width:3px;border-right-width:3px;bottom:-3px;right:-3px}.vf-glow{opacity:0;width:18%;transition:opacity .3s;position:absolute;top:0;bottom:0}.vf-glow.l{background:linear-gradient(90deg,#f4c46c8c,#0000);left:0}.vf-glow.r{background:linear-gradient(270deg,#f4c46c8c,#0000);right:0}.vf-hint{text-align:center;color:#fff;font:600 16px var(--sans);letter-spacing:.14em;text-shadow:0 1px 8px #000000b3;position:absolute;bottom:12px;left:0;right:0}.vf-flash{opacity:0;background:#fff;position:absolute;inset:0}.vf-flash.go{animation:.5s ease-out shutter}@keyframes shutter{0%{opacity:.9}to{opacity:0}}.vf-bar{right:calc(24px + env(safe-area-inset-right));pointer-events:auto;flex-direction:column;align-items:center;gap:16px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.vf-shutter{cursor:pointer;background:#ffffff47;border:5px solid #fff;border-radius:50%;width:74px;height:74px}.vf-shutter:active{background:#ffffffb3}.vf-zb{color:#fff;width:46px;height:46px;font:700 24px var(--sans);cursor:pointer;background:#1c203080;border:1.5px solid #ffffffb3;border-radius:50%}.vf-close{left:calc(18px + env(safe-area-inset-left));top:calc(12px + env(safe-area-inset-top));pointer-events:auto;position:absolute}:is(body:has(#vf.on) #top,body:has(#vf.on) #goal,body:has(#vf.on) #place,body:has(#vf.on) #hint){display:none}.gflash{z-index:24;pointer-events:none;background:#fff;animation:.6s ease-out forwards shutter;position:fixed;inset:0}@media (max-height:500px){#goal{top:calc(58px + env(safe-area-inset-top));padding:0 16px;font-size:15px}.paper{max-height:94vh;padding:18px 26px 16px}.paper .env{margin-bottom:8px;padding-bottom:8px;font-size:13px}.paper .body{font-size:21px;line-height:1.45}.paper .foot{margin-top:10px}#bubble{padding:10px 14px 8px;font-size:16px}#prompt,#choices{bottom:calc(40px + env(safe-area-inset-bottom))}.pill{padding:8px 12px;font-size:14px}#title h1{font-size:52px}#title{gap:10px;padding:7vh 0 5vh}.card-wrap canvas{width:auto;height:62vh}}#end .btn{color:#2a2b35;background:#f3ecdb}#end .btn.alt{color:#f3ecdb;background:0 0;border-color:#f3ecdb99}html[lang^=en] #title h1{letter-spacing:.05em;padding-left:.05em;font-size:clamp(40px,6.4vw,86px)}html[lang^=en] #title .sub{letter-spacing:.22em}html[lang^=en] #title .where{letter-spacing:.18em}@media (hover:none) and (pointer:coarse){#prompt kbd{display:none}}#wp{z-index:3;pointer-events:none;opacity:0;will-change:transform;flex-direction:column;align-items:center;gap:2px;width:38px;margin:-19px 0 0 -19px;display:flex;position:fixed;top:0;left:0}#wp .wp-icon{filter:drop-shadow(0 2px 6px #0a101e73);animation:2.4s ease-in-out infinite wpbob}#wp .wp-d{font:700 14px var(--sans);color:#fff;letter-spacing:.08em;white-space:nowrap;text-shadow:0 1px 6px #0a101ecc}#wp .wp-arrow{transform-origin:-8px 6px;filter:drop-shadow(0 1px 3px #0a101e99);border:6px solid #0000;border-left:10px solid #fbf7ee;width:0;height:0;margin-left:-6px;display:none;position:absolute;top:10px;left:50%}@keyframes wpbob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.pulse{animation:1.4s ease-in-out infinite pulse}:is(body:has(#vf.on) #wp,body:has(.paper-wrap.on) #wp){display:none}#hint.tut{left:50%;right:auto;bottom:calc(34px + env(safe-area-inset-bottom));color:#2a2b35;text-shadow:none;font:700 18px var(--sans);letter-spacing:.1em;white-space:nowrap;background:#fbf7eef0;border-radius:999px;max-width:92vw;padding:14px 26px;transform:translate(-50%);box-shadow:0 6px 24px #0a101e59}@media (max-width:700px){#hint.tut{white-space:normal;text-align:center;padding:11px 18px;font-size:15px}}#end a.follow{color:#f3ecdb;font:700 16px var(--sans);letter-spacing:.12em;pointer-events:auto;border-bottom:1px solid #f3ecdb80;padding-bottom:2px;text-decoration:none}#ridefade{z-index:26;pointer-events:none;opacity:0;background:#0b0e17;position:fixed;inset:0}#ridecap{left:0;right:0;bottom:calc(10% + env(safe-area-inset-bottom));text-align:center;z-index:27;pointer-events:none;color:#f3ecdb;font:500 clamp(18px, 2.4vw, 26px)/1.7 var(--sans);letter-spacing:.14em;text-shadow:0 1px 12px #0a0e1abf,0 0 3px #0a0e1a99;opacity:0;padding:0 24px;transition:opacity 1.4s;position:fixed}#ridecap.on{opacity:1}#rideskip{right:calc(14px + env(safe-area-inset-right));top:calc(12px + env(safe-area-inset-top));z-index:28;display:none;position:fixed}#rideskip.on{display:block}body.riding #goal,body.riding #place,body.riding #hint,body.riding #wp,body.riding #prompt,body.riding #toast,body.riding #top{display:none}
