:root{font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7fa;color:#1f2933}html,body,#app{height:100%}body{margin:0;min-width:320px}:root{box-sizing:border-box;--map-chrome: clamp(96px, 18vh, 220px);--viewport-height: 100vh}@supports (height: 100dvh){:root{--viewport-height: 100dvh}}*,*:before,*:after{box-sizing:inherit}.app{min-height:var(--viewport-height);height:var(--viewport-height);display:flex;flex-direction:column;background:#111827;color:#f9fafb}.app--test{--map-chrome: clamp(128px, 24vh, 260px)}.app__header{padding:16px 24px;display:flex;flex-direction:column;gap:12px;background:#111827e6}.app__header-top{display:flex;flex-wrap:wrap;width:100%;align-items:center}.app__header-message{min-height:32px;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:600;letter-spacing:.01em}.app__header-message>*{margin:0;width:100%}.app__header-label{font-size:1.05rem;font-weight:600;color:#f8fafc;letter-spacing:.02em}.app__action{border:none;border-radius:999px;padding:12px 20px;font-size:.95rem;font-weight:600;background:#e91e63;color:#fff;cursor:pointer;transition:background .2s ease;pointer-events:auto}.app__action:hover,.app__action:focus-visible{background:#d81b60}.app__title{margin:0;flex:1 1 12rem;min-width:0;word-break:break-word;overflow-wrap:anywhere;font-size:clamp(1.375rem,4vw,1.875rem);font-weight:700;text-align:center}.group-selector{display:flex;position:absolute;align-items:center;right:0;top:0}.group-selector__select{background:#1f2937cc;border:1px solid rgba(75,85,99,.6);border-radius:8px;color:#f9fafb;padding:8px 12px;font-size:.875rem;font-weight:500;min-width:120px;cursor:pointer;transition:all .2s ease}.group-selector__select:hover{background:#1f2937e6;border-color:#4b5563cc}.group-selector__select:focus{outline:none;border-color:#e91e63;box-shadow:0 0 0 2px #e91e6333}.group-selector__option--selected{background:#e91e63;color:#fff}.app__feedback{margin:0;color:#f8fafc;font-weight:600;text-align:center;pointer-events:none}.app__feedback--error{color:#ef4444}.app__feedback--success{color:#22c55e}.app__main{flex:1;display:flex;min-height:0;width:100%;justify-content:center;align-items:stretch;overflow:hidden}.app__footer{position:relative;display:flex;flex-wrap:nowrap;gap:12px;padding:12px 16px;align-items:stretch}.map-container{position:relative;display:grid;place-items:center;width:100%;max-width:100%;max-height:calc(var(--viewport-height) - var(--map-chrome));aspect-ratio:1000 / 1300;margin:0 auto}.map{position:relative;display:block;overflow:hidden;-webkit-overflow-scrolling:touch;background:#111827;width:100%;height:100%}.map svg{width:100%;height:100%;display:block;touch-action:manipulation}.map svg g#main path{cursor:pointer;transition:fill .2s ease}.map svg g#main path{fill:#cfd8dc;stroke:#646464}.map svg g#main path:is(:hover,:focus-visible){fill:#b0bec5}.map svg g#main path.is-selected{fill:#90a4ae}.map svg g#main path.is-last-clicked{fill:#90a4ae}.map svg g#main path.is-revealed{fill:#e91e63}@media (min-width: 768px){.app__header{flex-direction:column}}@media (max-width: 600px){:root{--map-chrome: clamp(72px, 18vh, 160px)}.app--test{--map-chrome: clamp(110px, 24vh, 200px)}.app__header{padding:12px 16px;gap:10px}.app__header-message{min-height:28px}.app__main{padding:0}.app__footer{padding:10px 12px;gap:10px}.footer-button{min-height:42px;font-size:.9rem}.test-progress{padding:6px 16px}.test-progress__bar{height:22px}}.footer-button{flex:1 1 0;min-width:0;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:999px;font-weight:600;font-size:.95rem;cursor:pointer;color:#f8fafc;background:#47556999;box-shadow:0 12px 30px #0f172a33;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.footer-button:hover,.footer-button:focus-visible{transform:translateY(-1px);box-shadow:0 16px 32px #0f172a40;outline:2px solid rgba(148,163,184,.45);outline-offset:2px}.footer-button--stats{background:#14b8a6e6}.footer-button--stats:hover,.footer-button--stats:focus-visible{background:#2dd4bff2}.footer-button--test{background:#6366f1d9}.footer-button--test:hover,.footer-button--test:focus-visible{background:#818cf8e6}.footer-button--action{background:#e91e63}.footer-button--action:hover,.footer-button--action:focus-visible{background:#d81b60}.test-progress{position:sticky;top:0;z-index:6;padding:8px 24px;background:#0f172af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.test-progress__bar{position:relative;height:26px;border-radius:999px;background:#0f172aa6;overflow:hidden}.test-progress__fill{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#f97316,#facc15);transition:width .3s ease}.test-progress__label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:600;letter-spacing:.03em;color:#f8fafc;text-transform:uppercase;pointer-events:none}.stats-overlay{position:fixed;inset:0;background:#0f172a8c;display:flex;justify-content:center;align-items:center;padding:8px;z-index:5}.test-result-overlay{z-index:6}.stats-modal{position:relative;width:min(720px,100%);box-sizing:border-box;height:calc(100vh - 16px);display:flex;flex-direction:column;overflow:hidden;background:#111827f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f9fafb;border-radius:20px;padding:32px 36px;box-shadow:0 20px 50px #0f172a73}.stats-modal h2{margin:0;font-size:1.5rem;font-weight:700}.stats-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.stats-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding-right:4px}.stats-close{width:44px;height:44px;border:none;border-radius:999px;background:none;color:#f9fafb;font-size:2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.stats-close:hover,.stats-close:focus-visible{color:#f8fafc}.stats-close:focus-visible{outline:2px solid rgba(148,163,184,.5);outline-offset:2px}.test-modal{position:relative;width:min(420px,90vw);padding:36px 28px 28px;display:flex;flex-direction:column;align-items:center;gap:16px;background:#0f172af2;color:#f8fafc;border-radius:18px;box-shadow:0 24px 60px #0f172a8c;text-align:center}.test-modal__close{position:absolute;top:12px;right:12px;width:40px;height:40px;border:none;border-radius:999px;background:none;color:#f8fafc;font-size:1.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.test-modal__close:hover,.test-modal__close:focus-visible{color:#fb7185}.test-modal__icon{font-size:2.75rem}.test-modal__title{margin:0;font-size:1.6rem;font-weight:700}.test-modal__score{margin:0;font-size:2.25rem;font-weight:800;letter-spacing:.04em}.test-modal__percent{margin:0;font-size:1.1rem;font-weight:600;color:#bfdbfe}.test-modal__message{margin:8px 0 0;font-size:1rem;color:#e2e8f0}.test-modal__meta{margin:0;font-size:.95rem;color:#e2e8f0cc}.test-modal__actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:8px}.test-modal__button{min-width:120px;padding:10px 18px;border:none;border-radius:999px;font-weight:600;font-size:.95rem;cursor:pointer;color:#0f172a;background:linear-gradient(90deg,#f97316,#facc15);box-shadow:0 12px 30px #0f172a40;transition:transform .2s ease,box-shadow .2s ease}.test-modal__button:hover,.test-modal__button:focus-visible{transform:translateY(-1px);box-shadow:0 16px 36px #0f172a59}.test-modal__button--secondary{color:#f8fafc;background:#4f46e5e6}.test-modal__button--secondary:hover,.test-modal__button--secondary:focus-visible{background:#6366f1f2}.stats-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.8fr) minmax(0,1fr);row-gap:8px;column-gap:12px;font-size:.95rem}.stats-row{display:contents}.stats-name{font-weight:600;color:#e2e8f0;align-self:center}.stats-bar{position:relative;background:#94a3b840;border-radius:999px;height:10px;align-self:center;overflow:hidden}.stats-bar-fill{position:absolute;inset:0;background:linear-gradient(90deg,#22d3ee,#0ea5e9);border-radius:inherit;transition:width .3s ease,opacity .2s ease}.stats-bar-fill--unseen{opacity:.5}.stats-data{font-variant-numeric:tabular-nums;color:#cbd5f5;align-self:center;justify-self:end}@media (max-width: 600px){.stats-modal{padding:24px 20px 28px;border-radius:16px}.stats-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) minmax(0,.9fr);column-gap:8px;font-size:.9rem}}
