:root{--bg:#0f141b;--panel:#1a222e;--panel-border:#2a3646;--text:#e8eef5;--muted:#9aa9bb;--accent:#4da3ff;--good:#4caf7d;--bad:#e05c5c}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex-direction:column;height:100dvh;display:flex;overflow:hidden}#app-header{padding:.6rem calc(1rem + env(safe-area-inset-right)) .6rem calc(1rem + env(safe-area-inset-left));background:var(--panel);border-bottom:1px solid var(--panel-border);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;row-gap:.35rem;display:flex}#app-header h1{align-items:center;gap:.4rem;margin:0;font-size:1.1rem;display:flex}#app-header .logo{font-size:1.4rem;line-height:1}.header-right{align-items:center;gap:.5rem;display:flex}#sound-toggle{color:var(--text);border:1px solid var(--panel-border);white-space:nowrap;background:0 0;border-radius:999px;min-height:32px;padding:.25rem .7rem;font-size:.8rem;font-weight:600}#sound-toggle[aria-pressed=false]{color:var(--muted);text-decoration:line-through}#score-badge{background:var(--accent);color:#06121f;font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;padding:.25rem .7rem;font-weight:700}#score-badge.bump{animation:.35s bump}#app{flex:auto;min-height:0;display:flex}.screen{flex-direction:column;flex:auto;min-height:0;display:flex}#screen-game{position:relative}.hidden{display:none!important}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pop-in{0%{transform:scale(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes drop-in{0%{opacity:0;transform:translateY(-16px)scale(.5)}60%{opacity:1;transform:translateY(2px)scale(1.15)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.22)}to{transform:scale(1)}}@keyframes emoji-pop{0%{transform:scale(0)rotate(-40deg)}70%{transform:scale(1.25)rotate(10deg)}to{transform:scale(1)rotate(0)}}@keyframes soft-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes img-enter{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}#screen-loading,#screen-error,#screen-result{animation:.25s fade-in}.loading-text{text-align:center;color:var(--muted);margin-top:30vh;animation:1.6s ease-in-out infinite soft-pulse}#screen-error,#screen-result{text-align:center;justify-content:center;align-items:center;gap:1rem;padding:clamp(1rem,4vw,2rem);overflow-y:auto}button{background:var(--accent);color:#06121f;cursor:pointer;border:none;border-radius:8px;min-height:44px;padding:.7rem 1.2rem;font-size:1rem;font-weight:700}button:active{transform:scale(.97)}#round-info{color:var(--muted);flex:none;justify-content:space-between;gap:.5rem;padding:.4rem .8rem;font-size:.85rem;display:flex}#round-question{text-align:center;color:var(--accent);flex:none;margin:0;padding:.45rem .8rem;font-size:1rem;font-weight:700;animation:.4s fade-in}#image-wrap{background:#000;flex:0 0 36%;min-height:120px;max-height:46dvh;position:relative;overflow:hidden}#round-image{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;pointer-events:none;width:100%;height:100%;display:block}#round-image.img-enter{animation:.4s img-enter}#image-fallback{color:var(--muted);background:var(--panel);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#map-wrap{flex:auto;min-height:0;position:relative}#map{position:absolute;inset:0}#map-hint{top:calc(.6rem + env(safe-area-inset-top));z-index:500;color:var(--text);pointer-events:none;white-space:normal;text-align:center;background:#0f141bd9;border-radius:999px;max-width:calc(100% - 1.2rem);padding:.35rem .8rem;font-size:.8rem;animation:2.2s ease-in-out infinite soft-pulse;position:absolute;left:50%;transform:translate(-50%)}#reveal{top:calc(.6rem + env(safe-area-inset-top));z-index:600;pointer-events:none;text-align:center;color:#fff;text-shadow:0 0 3px #05080cf2,1px 0 2px #05080ce6,-1px 0 2px #05080ce6,0 1px 2px #05080ce6,0 -1px 2px #05080ce6,0 2px 8px #05080ce6,0 0 16px #05080cd9;width:fit-content;max-width:calc(100% - 1.2rem);margin:0 auto;animation:.35s cubic-bezier(.22,1,.36,1) reveal-in;position:absolute;left:0;right:0}#reveal.reveal-exit{animation:.4s ease-in forwards reveal-out}@keyframes reveal-in{0%{opacity:0;transform:translateY(-18px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes reveal-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-18px)scale(.95)}}#reveal>*,#reveal-stats>*{animation:.3s ease-out backwards reveal-item}#reveal>:nth-child(2){animation-delay:80ms}#reveal>:nth-child(3){animation-delay:.36s}#reveal>:nth-child(4){animation-delay:.44s}#reveal-stats>:first-child{animation-delay:.12s}#reveal-stats>:nth-child(2){animation-delay:.18s}#reveal-stats>:nth-child(3){animation-delay:.24s}#reveal-stats>:nth-child(4){animation-delay:.3s}@keyframes reveal-item{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}#reveal-rating{color:#fff;justify-content:center;align-items:center;gap:.5rem;font-size:1.2rem;font-weight:800;display:flex}.rating-emoji{filter:drop-shadow(0 1px 3px #05080ce6)drop-shadow(0 0 6px #05080ccc);font-size:1.7rem;line-height:1;animation:.4s ease-out .1s backwards pop-in}.rating-emoji.big{font-size:3.2rem}#reveal-stats{flex-wrap:wrap;justify-content:center;gap:.15rem .6rem;font-size:1.15rem;font-weight:700;display:flex}#reveal-stats .points{color:#7dffb2;font-variant-numeric:tabular-nums}#reveal-stats .weight-note{color:#dbe4ee;align-self:center;font-size:.9rem;font-weight:600}#reveal-stats .distance{color:#fff;font-weight:600}#reveal-meta{color:#dbe4ee;font-size:.9rem;line-height:1.35;overflow:hidden}#reveal-meta div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#reveal-bonus{color:#7dffb2;font-size:1.05rem;font-weight:700}#reveal-bonus .bonus-points{font-variant-numeric:tabular-nums}.reveal-line{stroke:#ff10f0;filter:drop-shadow(0 0 4px #ff10f0)drop-shadow(0 0 12px #ff10f0);animation:.8s linear infinite dashmove}.district-highlight{filter:drop-shadow(0 0 6px #00e5ffcc)}@keyframes dashmove{to{stroke-dashoffset:-14px}}.guess-dot,.target-dot{border:3px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 6px #0009}.guess-dot{background:var(--accent);animation:.35s ease-out drop-in}.target-dot{background:var(--bad);animation:.35s ease-out .18s backwards pop-in}#total-score{font-variant-numeric:tabular-nums;margin:.2rem 0;font-size:2.2rem;font-weight:800}#result-rating{flex-direction:column;align-items:center;gap:.2rem;font-size:1.2rem;font-weight:700;display:flex}.score-bar{background:var(--panel);border:1px solid var(--panel-border);border-radius:999px;width:100%;max-width:420px;height:12px;overflow:hidden}#score-bar-fill{background:linear-gradient(90deg, var(--accent), var(--good));width:0;height:100%;transition:width .8s cubic-bezier(.22,1,.36,1)}#week-label-result{color:var(--muted);margin:0}#round-list{text-align:left;font-variant-numeric:tabular-nums;flex-direction:column;gap:.4rem;width:100%;max-width:420px;margin:.5rem 0 1rem;padding-left:0;list-style:none;display:flex}#round-list li{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;align-items:center;gap:.7rem;padding:.45rem .7rem;line-height:1.35;animation:.3s ease-out backwards slide-up;display:flex}.round-emoji{flex:none;font-size:1.6rem;line-height:1;animation:.45s cubic-bezier(.34,1.56,.64,1) backwards emoji-pop}.round-text{flex-direction:column;min-width:0;display:flex}.round-head{font-weight:700}.round-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;font-size:.82rem;font-weight:500;overflow:hidden}#round-list li.expanded .round-sub{white-space:normal;text-overflow:unset;overflow:visible}.round-desc,.round-thumb{display:none}.round-desc{color:var(--muted);white-space:normal;font-size:.82rem;font-weight:500}.round-thumb{border:1px solid var(--panel-border);border-radius:8px;max-width:100%;margin-top:.35rem}#round-list li.expanded .round-desc,#round-list li.expanded .round-thumb{display:block}.result-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}dialog#share-dialog{background:var(--panel);color:var(--text);border:1px solid var(--panel-border);text-align:left;border-radius:12px;width:calc(100% - 2.5rem);max-width:440px;max-height:calc(100dvh - 2rem);padding:1.1rem 1.2rem;overflow-y:auto}dialog#share-dialog::backdrop{background:#05080ca6;animation:.2s fade-in}dialog#share-dialog[open]{animation:.25s ease-out slide-up}dialog#share-dialog h2{margin:0 0 .3rem;font-size:1.15rem}#share-text{background:var(--bg);border:1px solid var(--panel-border);white-space:pre-wrap;word-break:break-word;-webkit-user-select:all;user-select:all;border-radius:8px;max-height:42vh;margin:0 0 .9rem;padding:.7rem .8rem;font-family:inherit;font-size:.85rem;line-height:1.55;overflow-y:auto}.share-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}button.secondary,#again-btn{color:var(--text);border:1px solid var(--panel-border);background:0 0}@media (width<=400px){#app-header{padding-top:.45rem;padding-bottom:.45rem}#app-header h1{font-size:1rem}#app-header .logo{font-size:1.2rem}#score-badge,#sound-toggle{padding:.2rem .55rem}}@media (width<=759px) and (height<=700px){#image-wrap{flex-basis:30%;min-height:100px}}@media (width>=760px){#screen-game{flex-direction:row}#round-info{z-index:500;background:#0f141bcc;position:absolute;top:0;left:0;right:0}#round-question{z-index:500;background:#0f141bcc;padding:.35rem .8rem;position:absolute;top:1.9rem;left:0;right:0}#image-wrap{flex:0 0 45%;height:100%}#map-wrap{flex:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
