:root{color:#18302d;background:#f2f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Noto Sans CJK SC,sans-serif;font-synthesis:none;--ink: #18302d;--fog: #f2f7f5;--gold: #f4d283;--panel: rgb(24 48 45 / 56%);--paper-deep: #dfece8;--sky: #2f7278}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(circle at 50% 12%,rgb(255 255 255 / 92%),transparent 38%),radial-gradient(circle at 92% 8%,rgb(20 208 180 / 13%),transparent 25rem),linear-gradient(145deg,var(--fog),var(--paper-deep))}button{color:inherit;font:inherit}#app{position:relative;min-height:100svh;background:transparent}#scene{display:block;width:100%;height:100%;touch-action:none}[hidden]{display:none!important}.intro-overlay{position:fixed;z-index:30;inset:0;display:grid;place-items:center;color:var(--ink);background:var(--fog)}.intro-panel{display:grid;place-items:center;width:min(86vw,920px);animation:intro-reveal .72s ease both}.company-lockup{display:block;width:min(78vw,820px);height:auto}.title-intro h1{margin:0}.title-intro img{display:block;width:min(72vw,720px);height:auto}.title-intro p{margin:-5% 0 0;color:#18302dad;font-size:13px;letter-spacing:.45em;text-indent:.45em}.skip-intro{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));padding:8px 14px;color:#18302d9e;background:transparent;border:1px solid rgb(24 48 45 / 18%);border-radius:999px;cursor:pointer}.map-heading{position:fixed;z-index:5;top:max(22px,env(safe-area-inset-top));left:50%;text-align:center;transform:translate(-50%);pointer-events:none}.map-heading p{margin:0;color:var(--sky);font-size:11px;letter-spacing:.32em;text-indent:.32em}.map-heading h1{margin:5px 0 2px;color:var(--ink);font-family:Songti SC,STSong,serif;font-size:clamp(24px,3.6vw,46px);font-weight:600;letter-spacing:.12em;text-indent:.12em;text-shadow:0 1px 18px rgb(251 254 253 / 95%)}.selector-logo{position:fixed;z-index:5;top:max(16px,env(safe-area-inset-top));left:50%;display:block;width:clamp(150px,17vw,220px);height:auto;pointer-events:none;transform:translate(-50%);filter:drop-shadow(0 1px 14px rgb(251 254 253 / 92%))}.map-choice-grid{position:fixed;z-index:6;inset:0;pointer-events:none}.map-choice{position:absolute;left:0;top:0;width:0;height:0;box-sizing:border-box;appearance:none;display:grid;align-content:end;gap:3px;padding:0 2px clamp(5px,.8vmin,9px);color:var(--ink);text-align:center;background:transparent;border:0;cursor:pointer;pointer-events:auto;transition:background-color .18s ease,filter .18s ease}.map-choice strong,.map-choice span{opacity:0;transform:translateY(4px);transition:opacity .16s ease,transform .18s ease}.map-choice strong{font-family:Songti SC,STSong,serif;font-size:var(--map-choice-title-size, clamp(10px, 1.25vmin, 14px));line-height:1.05;letter-spacing:.04em;text-shadow:0 1px 12px var(--fog);white-space:nowrap}.map-choice span{color:#18302d9e;font-size:var(--map-choice-detail-size, clamp(7px, .9vmin, 10px));line-height:1.05;letter-spacing:0;white-space:nowrap}.map-choice:hover,.map-choice:focus-visible{background:linear-gradient(to top,#f2f7f5e0,#f2f7f500 42%);filter:drop-shadow(0 10px 18px rgb(24 48 45 / 10%))}.map-choice:hover strong,.map-choice:hover span,.map-choice:focus-visible strong,.map-choice:focus-visible span{opacity:1;transform:translateY(0)}.map-choice:focus-visible{outline:0;filter:drop-shadow(0 0 4px #73d6bd)}.map-choice:disabled{color:transparent;background:transparent;border-color:transparent;box-shadow:none}.map-feedback{position:fixed;z-index:8;left:50%;bottom:max(22px,env(safe-area-inset-bottom));margin:0;padding:9px 14px;color:#f2d9a1;background:#3d2718b8;border-radius:999px;transform:translate(-50%)}.loading-veil{position:fixed;z-index:8;left:50%;bottom:max(26px,calc(env(safe-area-inset-bottom) + 14px));display:block;padding:9px 15px;background:#fbfefdb8;border:1px solid rgb(47 114 120 / 20%);border-radius:999px;box-shadow:0 10px 28px #18302d1a;color:var(--ink);pointer-events:none;transform:translate(-50%);backdrop-filter:blur(9px);animation:loading-cloud .48s ease both}.loading-veil span{display:none}.loading-veil strong{font-size:12px;font-weight:500;letter-spacing:.14em}.hud{position:fixed;z-index:5;top:max(22px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));display:grid;gap:3px;padding:10px 14px;color:var(--ink);background:transparent;border:0;text-shadow:0 1px 10px rgb(251 254 253 / 95%)}.hud span{color:#18302dad;font-family:ui-monospace,monospace;font-size:11px}.config-menu{position:fixed;z-index:7;top:max(20px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));display:flex;gap:8px}.config-menu button{min-height:34px;padding:6px 11px;color:var(--ink);background:#fbfefd8a;border:1px solid rgb(47 114 120 / 26%);border-radius:999px;cursor:pointer}.config-menu button:disabled{opacity:.46;cursor:default}.bottom-surface{position:fixed;z-index:7;left:50%;bottom:max(26px,calc(env(safe-area-inset-bottom) + 14px));transform:translate(-50%);animation:bottom-in .48s cubic-bezier(.2,.9,.28,1.08) both}.difficulty-surface{display:grid;justify-items:center}.difficulty-actions,.interest-point-return{grid-area:1 / 1;align-self:end;justify-self:center}.difficulty-actions{display:grid;justify-items:center;gap:9px;opacity:1;visibility:visible;transform:translateY(0);transition:opacity .36s ease .26s,transform .42s cubic-bezier(.2,.9,.28,1.08) .26s,visibility 0s linear .26s}.interest-point-return{min-width:122px;min-height:48px;padding:8px 24px;color:var(--gold);background:var(--panel);border:1px solid rgb(244 210 131 / 42%);border-radius:14px;box-shadow:0 14px 28px #0000002e;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(64px);transition:opacity .36s ease 0s,transform .42s cubic-bezier(.2,.9,.28,1.08) 0s,visibility 0s linear .36s}.difficulty-surface.is-interest-point .difficulty-actions{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(64px);transition-delay:0s,0s,.36s}.difficulty-surface.is-interest-point .interest-point-return{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:.26s,.26s,.26s}.interest-point-return:hover{background-color:#18302dad}.interest-point-return:focus-visible{outline:3px solid #73d6bd;outline-offset:3px}.interest-point-return:disabled{cursor:wait;opacity:.58}.difficulty-surface.is-interest-point .interest-point-return:disabled{opacity:.58}.difficulty-menu,.gameplay-menu{display:grid;grid-auto-flow:column;gap:10px}.difficulty-menu button,.gameplay-menu button{min-width:122px;min-height:52px;padding:9px 22px;color:var(--gold);background:var(--panel);border:1px solid rgb(244 210 131 / 42%);border-radius:14px;box-shadow:0 14px 28px #0000002e;cursor:pointer}.leaderboard-run-status{min-height:1.1em;margin:6px 0 0;color:#eff6f1b8;font-size:11px;text-align:center}.back-to-maps{min-height:32px;padding:5px 14px;color:#e2ede3b8;background:#18302d57;border:1px solid rgb(226 237 227 / 18%);border-radius:999px;cursor:pointer}.difficulty-menu button:hover,.gameplay-menu button:hover,.back-to-maps:hover{background-color:#18302dad}.difficulty-menu button:focus-visible,.gameplay-menu button:focus-visible,.back-to-maps:focus-visible,.config-menu button:focus-visible{outline:3px solid #73d6bd;outline-offset:3px}.confirmation-dialog{width:min(90vw,420px);padding:0;color:var(--fog);background:#132c29f5;border:1px solid rgb(244 210 131 / 35%);border-radius:18px;box-shadow:0 24px 80px #0000005c}.confirmation-dialog::backdrop{background:#0612116b;backdrop-filter:blur(5px)}.confirmation-dialog form{display:grid;gap:12px;padding:24px;text-align:center}.confirmation-dialog p{margin:0;color:#a9c6b0;font-size:10px;letter-spacing:.3em}.confirmation-dialog h2{margin:0;color:var(--gold);font-size:22px}.confirmation-dialog span{color:#eff6f1b8;font-size:13px;line-height:1.7}.confirmation-dialog form div{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.confirmation-dialog button{min-height:42px;background:#ffffff12;border:1px solid rgb(255 255 255 / 14%);border-radius:12px;cursor:pointer}.confirmation-dialog button:last-child{color:var(--gold);border-color:#f4d28361}.map-reference-dialog{width:min(86vw,720px);max-width:none;max-height:min(90svh,820px);margin:auto;padding:0;color:var(--fog);background:#132c29eb;border:1px solid rgb(244 210 131 / 35%);border-radius:18px;box-shadow:0 24px 80px #00000057;overflow:hidden;backdrop-filter:blur(12px)}.map-reference-dialog::backdrop{background:#0612117a;backdrop-filter:blur(6px)}.map-reference-dialog figure{display:grid;gap:10px;margin:0;padding:14px}.map-reference-dialog figcaption{padding:2px 4px 0;color:var(--gold);font-family:Songti SC,STSong,serif;font-size:clamp(17px,2.6vw,24px);letter-spacing:.08em;text-align:center}.map-reference-dialog img{display:block;width:100%;max-height:calc(90svh - 122px);height:auto;aspect-ratio:1;object-fit:contain;border:1px solid rgb(244 210 131 / 20%);border-radius:10px;background:var(--fog)}.map-reference-dialog button{justify-self:stretch;min-height:44px;color:var(--gold);background:#ffffff12;border:1px solid rgb(244 210 131 / 30%);border-radius:11px;cursor:pointer}.map-reference-dialog button:hover{background:#ffffff1f}.attribution-dialog{width:min(92vw,680px);max-width:none;max-height:min(88svh,760px);padding:0;color:var(--fog);background:#132c29f5;border:1px solid rgb(244 210 131 / 35%);border-radius:18px;box-shadow:0 24px 80px #0000005c;overflow:auto}.attribution-dialog::backdrop{background:#0612117a;backdrop-filter:blur(6px)}.attribution-dialog article{display:grid;gap:12px;padding:22px}.attribution-dialog h2{margin:0;color:var(--gold);font-family:Songti SC,STSong,serif;font-size:23px}.attribution-dialog p,.attribution-dialog li{color:#eff6f1c7;font-size:12px;line-height:1.7}.attribution-dialog p,.attribution-dialog ul{margin:0}.attribution-dialog ul{display:grid;gap:8px;padding-left:1.4em}.attribution-dialog a{color:#9edbd0}.attribution-dialog button{min-height:42px;color:var(--gold);background:#ffffff12;border:1px solid rgb(244 210 131 / 30%);border-radius:11px;cursor:pointer}.completion-dialog{position:fixed;z-index:10;inset:auto auto max(24px,calc(env(safe-area-inset-bottom) + 16px)) 50%;width:min(720px,calc(100% - 36px));max-width:none;max-height:none;margin:0;padding:0;color:var(--fog);background:#132c29e0;border:1px solid rgb(244 210 131 / 38%);border-radius:16px;box-shadow:0 18px 54px #0000003d;overflow:hidden;transform:translate(-50%);backdrop-filter:blur(10px);animation:completion-in .42s cubic-bezier(.2,.9,.28,1.08) both}.completion-summary-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:46px;padding:8px 14px;color:var(--fog);background:#18302db8;border:0;border-bottom:1px solid rgb(244 210 131 / 18%);cursor:pointer}.completion-summary-status{color:var(--gold);font-size:12px;font-weight:760;white-space:nowrap}.completion-summary-toggle strong{color:#e9f2ee;font-family:ui-monospace,monospace;font-size:14px;white-space:nowrap}.completion-summary-action{color:#a9c6b0;font-size:11px;font-weight:700;white-space:nowrap}.completion-dialog:not(.is-collapsed) .completion-summary-action:before{content:"收起 · "}.completion-details{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"eyebrow time" "title time" "hint time" "leaderboard leaderboard" "actions actions";column-gap:24px;padding:17px 18px 18px}.completion-details p{grid-area:eyebrow;margin:0;color:#a9c6b0;font-size:10px;letter-spacing:.18em}.completion-details h2{grid-area:title;margin:5px 0 3px;color:var(--gold);font-family:Songti SC,STSong,serif;font-size:clamp(20px,3vw,30px);font-weight:600}.completion-details>span{grid-area:hint;color:#eff6f1b8;font-size:12px}.completion-time{grid-area:time;align-self:center;color:#e9f2ee;font-family:ui-monospace,monospace;font-size:clamp(24px,4vw,38px)}.leaderboard-submit{grid-area:leaderboard;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;margin-top:14px;padding:12px;border:1px solid rgb(244 210 131 / 20%);border-radius:11px;background:#05181642}.leaderboard-submit h3,.leaderboard-submit>p{grid-column:1 / -1;margin:0}.leaderboard-submit h3{color:var(--gold);font-size:14px;font-weight:650}.leaderboard-submit>p{color:#eff6f1a8;font-size:11px;line-height:1.55}.leaderboard-submit>label[for=leaderboard-nickname]{grid-column:1 / -1;color:#a9c6b0;font-size:11px}.leaderboard-submit input[type=text]{min-width:0;min-height:38px;padding:0 10px;color:var(--fog);background:#ffffff12;border:1px solid rgb(244 210 131 / 28%);border-radius:9px;font:inherit}.leaderboard-submit input[type=text]:focus-visible{outline:2px solid rgb(244 210 131 / 62%);outline-offset:2px}.leaderboard-submit input[aria-invalid=true]{border-color:#ef927a}.leaderboard-remember{grid-column:1 / -1;display:inline-flex;align-items:center;gap:7px;color:#eff6f1b3;font-size:11px}.leaderboard-submit-actions{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:8px}.leaderboard-submit-actions button{min-height:38px;color:var(--gold);background:#ffffff12;border:1px solid rgb(244 210 131 / 28%);border-radius:9px;cursor:pointer}.leaderboard-submit-actions button:disabled{color:#eff6f161;cursor:default}.leaderboard-submit-status{min-height:1.5em;color:#b9d4c0!important}.leaderboard-submit-status[data-state=error]{color:#ffc0aa!important}.leaderboard-submit-status[data-state=success]{color:#f4d283!important}.completion-actions{grid-area:actions;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}.completion-actions button{min-width:0;min-height:43px;padding:7px 11px;color:var(--gold);background:#ffffff12;border:1px solid rgb(244 210 131 / 30%);border-radius:11px;cursor:pointer}.completion-actions button:hover{background:#ffffff1f}.completion-actions button:disabled{color:#eff6f161;border-color:#eff6f11f;cursor:default}.completion-dialog.is-collapsed{inset:auto max(20px,env(safe-area-inset-right)) max(20px,calc(env(safe-area-inset-bottom) + 12px)) auto;width:auto;max-width:calc(100% - 40px);border-radius:999px;transform:none}.completion-dialog.is-collapsed .completion-details{display:none}.completion-dialog.is-collapsed .completion-summary-toggle{min-height:44px;border:0;border-radius:999px}.fatal-error{position:fixed;z-index:50;inset:20px;display:grid;place-items:center;padding:24px;color:#ffe0d0;background:#311f1d}@keyframes intro-reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes loading-cloud{0%{opacity:0}to{opacity:1}}@keyframes bottom-in{0%{opacity:0;transform:translate(-50%,calc(100% + 40px))}72%{opacity:1;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@keyframes completion-in{0%{opacity:0;translate:0 36px}72%{opacity:1;translate:0 -6px}to{opacity:1;translate:0 0}}@media(max-width:700px){.company-lockup{width:min(84vw,620px)}.selector-logo{top:max(13px,env(safe-area-inset-top));width:clamp(112px,32vw,142px)}.map-heading{top:max(70px,env(safe-area-inset-top))}.map-heading h1{font-size:25px}.config-menu{top:max(12px,env(safe-area-inset-top));right:10px;flex-direction:column;align-items:flex-end;gap:4px}.config-menu button{min-height:30px;padding:5px 8px;font-size:11px}.hud{top:max(10px,env(safe-area-inset-top));left:10px;padding:7px 10px;font-size:11px}.map-choice{gap:2px;padding:6px 3px}.map-choice strong{letter-spacing:.02em}.map-choice span{letter-spacing:0}.difficulty-menu{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));width:min(92vw,356px)}.difficulty-menu button{min-width:0;min-height:46px}.gameplay-menu button{min-width:98px;min-height:46px}.completion-dialog,.map-reference-dialog{width:calc(100% - 20px)}.completion-dialog.is-collapsed{right:10px;max-width:calc(100% - 20px)}.completion-details{grid-template-columns:1fr;grid-template-areas:"eyebrow" "title" "time" "hint" "leaderboard" "actions";row-gap:4px}.completion-time{margin:4px 0;font-size:25px}.completion-actions{grid-template-columns:1fr;gap:7px}.completion-actions button{min-height:40px}.leaderboard-submit{grid-template-columns:1fr}.leaderboard-submit-actions{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.difficulty-actions,.interest-point-return{transition-delay:0s!important}}
