:root{font-family:ui-rounded,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif;color:#f8f2e5;background:#102b35;font-synthesis:none;color-scheme:dark;font-weight:500}*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f6cd76;outline-offset:3px}canvas:focus-visible{outline:2px solid #f6cd7677;outline-offset:-3px}button[hidden],[hidden]{display:none!important}.app{width:min(100%,480px);margin:0 auto;min-height:100svh;height:100dvh;max-height:1050px;display:flex;flex-direction:column;padding:max(13px,env(safe-area-inset-top)) 20px max(10px,env(safe-area-inset-bottom));gap:10px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.back{color:#b6cccb;text-decoration:none;font-size:12px;display:flex;gap:5px;align-items:center;min-width:70px;min-height:44px}.brand{text-align:center}.brand>span{font-size:8px;letter-spacing:2px;color:#79aaa8;white-space:nowrap}.brand h1{font-size:21px;letter-spacing:-.8px;margin:3px 0 0}.tools{display:flex;gap:3px}.icon-button{width:37px;height:44px;border-radius:15px;background:transparent;color:#d4e3dc;border:0;position:relative;font-size:21px}.icon-button:hover{background:#23434b}.mute-slash{position:absolute;left:18px;top:13px;color:#f0957e;font-size:17px}.scoreboard{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.eyebrow{font-size:10px;letter-spacing:.6px;color:#98b8b6;display:block}.scoreboard strong{display:block;font-size:43px;line-height:1.1;font-weight:750;letter-spacing:-2px;font-variant-numeric:tabular-nums}.scoreboard strong small{font-size:12px;letter-spacing:0;margin-left:7px;color:#98b8b6;font-weight:500}.scoreboard .best{text-align:right}.scoreboard .best strong{font-size:27px;color:#c7ded5;line-height:1.5}.landmark{padding:0 4px;flex-shrink:0}.landmark>div:first-child{display:flex;justify-content:space-between;font-size:10px;color:#87aaa6;gap:8px}.landmark #district{color:#c9d7b7}.progress-track{height:3px;background:#355158;margin-top:7px;border-radius:5px;overflow:hidden}.progress-track i{display:block;height:100%;width:0;background:#f4cc86;transition:width .25s}.arena{flex:1;min-height:220px;position:relative;isolation:isolate;background:#183b45;border:1px solid #355259;border-radius:23px;overflow:hidden;touch-action:manipulation;user-select:none;-webkit-user-select:none}canvas{display:block;width:100%;height:100%;position:absolute;inset:0}.sky-caption{position:absolute;top:20px;left:18px;font-size:10px;color:#a5bfc3;letter-spacing:.3px;pointer-events:none;max-width:calc(100% - 84px)}.ground-label{position:absolute;bottom:13px;left:0;width:100%;text-align:center;letter-spacing:2px;font-size:7px;color:#89aaa4;pointer-events:none}.pause-button{position:absolute;right:10px;top:9px;width:42px;height:42px;border:0;border-radius:50%;background:#234750a8;color:#cfe0d8;font-size:17px;z-index:2}.overlay{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px;background:linear-gradient(180deg,#122c3d80,#142f3ee8);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.overlay .eyebrow{color:#b4d4bc;font-size:11px}.overlay h2{font-size:29px;letter-spacing:-1.2px;margin:8px 0 12px;line-height:1.2}.overlay p{color:#b9ccc9;font-size:13px;line-height:1.75;margin:0 0 22px;max-width:300px;word-break:keep-all}.primary-button{min-width:210px;min-height:52px;border:0;border-radius:14px;background:#f1b881;color:#263942;font-weight:800;box-shadow:0 4px #ab7759;transition:transform .1s}.primary-button:active{transform:translateY(2px);box-shadow:0 2px #ab7759}.text-button{background:transparent;color:#c0d0c5;border:0;min-height:42px;margin-top:9px;font-size:12px;text-decoration:underline;text-underline-offset:4px}.intro-art{height:78px;width:112px;position:relative;margin-bottom:20px}.intro-art i{display:block;position:absolute;height:19px;border-radius:3px;background-image:repeating-linear-gradient(90deg,transparent 0 9px,#fff2afc9 9px 15px,transparent 15px 22px);box-shadow:inset 0 -4px #0002}.intro-art i:nth-child(1){background-color:#79c9b2;width:90px;bottom:0;left:0}.intro-art i:nth-child(2){background-color:#efbf75;width:77px;bottom:23px;left:6px}.intro-art i:nth-child(3){background-color:#f39378;width:63px;bottom:46px;left:12px}.intro-art>span{position:absolute;right:0;top:-21px;font-size:45px;color:#f8da9b;transform:rotate(-18deg);text-shadow:0 0 25px #f5d49455}.feedback{position:absolute;top:29%;left:0;width:100%;text-align:center;pointer-events:none;font-size:24px;font-weight:800;color:#f8d68f;text-shadow:0 2px 20px #102b35;opacity:0;transform:translateY(8px);transition:opacity .16s,transform .16s}.feedback.show{opacity:1;transform:translateY(0)}.feedback.cut{font-size:17px;color:#b9d1c6}.feedback.close{color:#f7ba95;font-size:20px}.feedback.landmark-hit{font-size:23px;color:#ffe9af}.feedback small{display:block;font-size:11px;font-weight:600;letter-spacing:.6px;margin-top:6px;color:#b4d8c1}.streak{position:absolute;top:19%;left:0;text-align:center;width:100%;color:#6f9b98;font-size:13px;letter-spacing:8px;pointer-events:none}.streak b{color:#f9d18a}.streak small{display:block;font-size:9px;letter-spacing:.5px;color:#abc9be;margin-top:5px}.drop-button{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;gap:4px;min-height:64px;background:#88cbb5;color:#193d43;border:0;border-radius:16px;box-shadow:0 4px #487f77;touch-action:manipulation;transition:background .1s}.drop-button>span{font-size:19px;font-weight:800}.drop-button>small{font-size:10px;opacity:.72;letter-spacing:.3px}.drop-button:active:not(:disabled){background:#a4e0c9;transform:translateY(2px);box-shadow:0 2px #487f77}.drop-button:disabled{opacity:.3;cursor:default}.tip{text-align:center;color:#98b6ac;font-size:10px;margin:11px 0 0;line-height:1.5}.tip b{color:#d3dbc1;font-weight:600}.storage-warning{text-align:center;color:#f8c08e;font-size:11px;margin:5px 0 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}footer{flex-shrink:0;padding-bottom:2px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;max-width:300px;gap:8px;margin:-5px 0 21px;padding:12px 0;border-top:1px solid #8aa99a36;border-bottom:1px solid #8aa99a36}.result-stats b{display:block;font-size:22px;color:#fae0a7}.result-stats span{display:block;font-size:9px;color:#a8bdb7;margin-top:4px}.overlay.result .intro-art{display:none}.overlay.result h2{font-size:36px}.overlay.result p{margin-bottom:18px}dialog{width:min(90vw,390px);border:1px solid #54706e;border-radius:25px;background:#18363e;color:#edf1df;padding:31px 27px;box-shadow:0 25px 80px #0007}dialog::backdrop{background:#081c2bc9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}dialog h2{font-size:29px;line-height:1.25;letter-spacing:-1px;margin:15px 0 25px}.dialog-close{position:absolute;top:9px;right:9px;border:0;background:transparent;color:#c7d4c8;font-size:27px;width:44px;height:44px}.help-steps p{display:flex;gap:15px;color:#94b5ac;font-size:12px;line-height:1.8;margin:18px 0}.help-steps p>b{color:#f1c388;font-size:14px}.help-steps strong{color:#e2e9d6;font-weight:600}.help-note{font-size:10px;color:#8dadab;line-height:1.8;margin:25px 0 18px}dialog .primary-button{width:100%}@media(max-height:680px){.app{gap:7px;padding-top:7px;padding-bottom:8px}.topbar{min-height:39px}.brand h1{font-size:18px}.brand>span{font-size:7px}.scoreboard strong{font-size:32px}.scoreboard .best strong{font-size:23px}.landmark>div:first-child{font-size:9px}.progress-track{margin-top:5px}.arena{min-height:190px}.overlay{padding:16px}.overlay h2{font-size:24px;margin-bottom:9px}.overlay p{font-size:12px;margin-bottom:17px}.intro-art{height:51px;transform:scale(.7);margin-bottom:12px}.primary-button{min-height:47px}.drop-button{min-height:55px}.tip{font-size:9px;margin-top:9px}.feedback{font-size:20px}.result-stats{padding:9px 0;margin-bottom:16px}.result-stats b{font-size:19px}.overlay.result h2{font-size:30px}}@media(min-width:650px){body{background:radial-gradient(ellipse at 50% 40%,#204851,#102b35 65%)}.app{padding-top:22px;padding-bottom:16px}}@media(max-width:340px){.app{padding-left:14px;padding-right:14px}.back{min-width:55px}.tools{gap:0}.icon-button{width:34px}.brand h1{font-size:18px}.overlay h2{font-size:23px}.overlay p{font-size:11px}.sky-caption{font-size:9px}}@media(max-height:470px)and (orientation:landscape){.app{width:min(100%,940px);height:100dvh;min-height:100dvh;max-height:none;padding:8px max(15px,env(safe-area-inset-right)) 12px max(15px,env(safe-area-inset-left));display:grid;grid-template-columns:130px minmax(240px,1fr) 135px;grid-template-rows:42px minmax(0,1fr);gap:10px 16px}.topbar{grid-column:1/4;grid-row:1}.brand{position:absolute;left:50%;transform:translate(-50%)}.brand h1{font-size:17px}.brand>span{font-size:7px}.scoreboard{grid-column:1;grid-row:2;align-self:start;display:block;padding:23px 0 0 7px}.scoreboard strong{font-size:42px}.scoreboard .best{text-align:left;margin-top:17px}.scoreboard .best strong{font-size:25px}.landmark{grid-column:1;grid-row:2;align-self:end;padding:0 4px 12px}.landmark>div:first-child{flex-direction:column;gap:5px;font-size:10px}.arena{grid-column:2;grid-row:2;height:100%;min-height:0;border-radius:19px}.sky-caption{top:15px;font-size:9px}.pause-button{top:5px;right:5px}.ground-label{bottom:8px}.streak{top:22%}.feedback{top:36%;font-size:20px}.feedback.landmark-hit{font-size:18px}footer{grid-column:3;grid-row:2;align-self:center}.drop-button{min-height:93px}.drop-button>span{font-size:18px}.drop-button>small{font-size:8px}.tip{font-size:10px;line-height:1.9;margin-top:18px}.overlay{padding:10px}.overlay h2{font-size:22px;margin:4px 0 8px}.overlay p{font-size:11px;margin-bottom:13px}.intro-art{display:none}.primary-button{min-width:175px;min-height:43px}.text-button{margin-top:3px;min-height:34px}.overlay.result h2{font-size:28px}.result-stats{max-width:250px;margin-bottom:13px;padding:8px 0}.result-stats b{font-size:17px}.overlay.result p{margin-bottom:8px}dialog{max-height:94dvh;overflow:auto;padding:22px}.help-steps p{margin:12px 0}.help-note{margin-top:18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.feedback{top:12%}.streak{top:27%}@media(max-height:470px)and (orientation:landscape){.feedback{top:14%;font-size:18px}.feedback.landmark-hit{font-size:18px}.streak{top:29%}.streak small{font-size:8px}}.alignment{position:absolute;bottom:31px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;white-space:nowrap;padding:7px 10px;border:1px solid #9dc8b82b;border-radius:20px;background:#112b3bcc;pointer-events:none;color:#b5d7ca;font-size:10px;z-index:1}.alignment b{font-weight:600}.alignment>span{width:5px;height:5px;border-radius:50%;background:#94b7ab}.alignment[data-state=safe]{color:#a5efd0}.alignment[data-state=safe]>span{background:#a5efd0}.alignment[data-state=perfect]{color:#ffe4a0;border-color:#ffe4a078}.alignment[data-state=perfect]>span{background:#ffe4a0}.alignment[data-state=outside]{color:#f4baa7}.alignment[data-state=outside]>span{background:#f4baa7}.resume-cue{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);width:210px;padding:17px 16px 13px;border:1px solid #a1c9bf5e;border-radius:18px;background:#183944ed;text-align:center;pointer-events:none}.resume-cue b{display:block;font-size:16px;color:#f3e5bd}.resume-cue span{display:block;font-size:10px;color:#bbd2c8;margin-top:7px}.resume-cue i{display:block;height:3px;width:var(--remaining,100%);background:#f1c98f;margin-top:12px;border-radius:3px}.overlay.result p{max-width:290px;font-size:12px;line-height:1.75}.icon-button{min-width:40px}.feedback{max-width:100%;padding:0 10px}.feedback small{letter-spacing:0;font-size:10px}@media(max-width:340px){.icon-button{min-width:37px}.alignment{font-size:9px;padding:6px 9px}.overlay.result p{font-size:11px}}@media(max-height:470px)and (orientation:landscape){.alignment{bottom:20px;font-size:8px;padding:4px 7px}.resume-cue{width:190px;padding:13px}.resume-cue b{font-size:14px}.resume-cue span{font-size:9px}.overlay.result p{font-size:10px;line-height:1.6;max-width:235px}}
