*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#4fa8c5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#scene{display:block;width:100%;height:100%;touch-action:none}#hud{position:fixed;left:0;right:0;bottom:0;padding:12px calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));display:flex;gap:8px;flex-wrap:wrap;pointer-events:none}.card{pointer-events:auto;min-width:168px;flex:1 1 168px;max-width:260px;padding:10px 12px;border-radius:14px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);box-shadow:0 6px 20px #281e0f2e;font-size:13px;line-height:1.35;text-align:left;font-family:inherit;cursor:pointer;transition:transform .15s ease,border-color .15s ease}.card:hover{transform:translateY(-2px)}.card.active{border-color:var(--accent);box-shadow:0 6px 20px #281e0f38,0 0 0 2px var(--accent) inset}.card.fogged{opacity:.75}.card h2{margin:0 0 4px;font-size:14px;font-weight:600}.card .dim{color:var(--text-dim);font-size:12px}.bar{margin-top:6px;height:6px;border-radius:3px;background:#00000014;overflow:hidden}.bar>span{display:block;height:100%;background:var(--progress);transition:width .6s ease}.bubbles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.bubble{position:absolute;top:0;left:0;max-width:220px;padding:7px 11px;border-radius:14px;background:var(--cloud);color:var(--cloud-text);font-size:13px;line-height:1.3;box-shadow:0 4px 14px #281e0f38;white-space:pre-wrap;word-break:break-word;transition:opacity .3s ease;animation:bubble-in .35s ease}.bubble:after{content:"";position:absolute;left:50%;bottom:-6px;width:12px;height:12px;margin-left:-6px;border-radius:2px;transform:rotate(45deg);background:inherit}.bubble-author{font-size:11px;font-weight:700;color:var(--accent);margin-bottom:2px}.bubble-creator{background:var(--creator-cloud);font-weight:600}@keyframes bubble-in{0%{opacity:0;transform:translate(-50%,-100%) scale(.9)}}.labels{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;transition:opacity .25s ease}.label{position:absolute;top:0;left:0;padding:2px 7px;border-radius:7px;background:#fffaf0eb;border:1px solid var(--panel-border);color:var(--text);font-size:11px;font-weight:600;white-space:nowrap;box-shadow:0 2px 6px #281e0f2e}.label-founder{border-color:#d9a02b;box-shadow:0 2px 8px #d99a2b66}.panel{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 64px);transform:translate(-50%);width:min(360px,calc(100vw - 24px));max-height:min(60dvh,calc(100dvh - 160px));overflow-y:auto;overscroll-behavior:contain;padding:46px 16px 14px;border-radius:16px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);box-shadow:0 12px 34px #281e0f47;font-size:13px;z-index:5}.panel h3{margin:0 0 8px;font-size:15px}.panel p{margin:0 0 8px;line-height:1.4}.panel button{margin-top:4px;padding:7px 14px;border-radius:10px;border:1px solid var(--panel-border);background:transparent;color:var(--text);font:inherit;cursor:pointer}body.in-telegram .account{top:calc(64px + env(safe-area-inset-top))}body.in-telegram.admin-body{padding-top:calc(72px + env(safe-area-inset-top))}.account{position:fixed;top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:6}.account-button{padding:9px 14px;border-radius:12px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;box-shadow:0 6px 18px #281e0f33}.account-hint{font-size:11px;color:var(--text-dim);background:#fff8ecd1;padding:3px 8px;border-radius:8px}.account-button:disabled{opacity:.6;cursor:default}.account-card{width:min(320px,calc(100vw - 24px));padding:14px 16px;border-radius:16px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);box-shadow:0 12px 34px #281e0f47;font-size:13px;display:flex;flex-direction:column;gap:8px}.account-card.wide{width:min(380px,calc(100vw - 24px))}.account-card h3{margin:0;font-size:15px}.account-card p{margin:0;line-height:1.45}.account-link{padding:4px 0;border:none;background:none;color:var(--accent);font:inherit;font-size:13px;text-align:left;text-decoration:none;cursor:pointer}.account-link.danger{color:#b5563c}.close-cross{position:absolute;top:8px;right:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:12px;background:#2e2a240f;color:var(--text-dim);font-size:15px;line-height:1;cursor:pointer}.close-cross:hover{background:#2e2a241f;color:var(--text)}.passport{position:relative;width:min(340px,calc(100vw - 24px));border-radius:20px;overflow:hidden;background:linear-gradient(160deg,#fffaf1,#f7ecd9);border:1px solid var(--panel-border);box-shadow:0 18px 44px #281e0f52;color:var(--text);font-size:13px;display:flex;flex-direction:column;gap:10px;padding:16px}.passport-header{display:flex;align-items:center;gap:12px}.passport-number{flex:0 0 auto;min-width:54px;height:54px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:#2e2a24;color:#fff8ec;font-size:17px;font-weight:700;letter-spacing:-.02em}.passport-number.founder{background:linear-gradient(150deg,#f2c14e,#d99a2b);color:#3a2c10;box-shadow:0 4px 14px #d99a2b73}.passport-name{font-size:17px;font-weight:650;line-height:1.15}.passport-role{font-size:12px;color:var(--text-dim);margin-top:2px}.passport-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.passport-stat{padding:10px 8px;border-radius:14px;background:#2e2a240d;text-align:center}.passport-stat-value{font-size:18px;font-weight:650;letter-spacing:-.02em}.passport-stat-label{margin-top:2px;font-size:11px;color:var(--text-dim)}.passport-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.passport-confirm{padding:12px;border-radius:14px;background:#b5563c17;border:1px solid rgba(181,86,60,.3);display:flex;flex-direction:column;gap:10px}.passport-confirm p{margin:0;line-height:1.4}:root{--paper: #f5efe3;--card: #fbf7ef;--card2: #f0e7d6;--line: #dfd2bc;--ink: #33291f;--ink2: #6e5e4a;--muted: #95836c;--seal: #a6392b;--moss: #3e6b4f;--gold: #b4862b}.admin-body{overflow:auto;background:var(--paper);color:var(--ink);padding:18px 14px 60px;touch-action:auto}#admin{max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.adm-top{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0;background:var(--paper)}.adm-top h1{margin:0;font-size:19px;letter-spacing:-.02em}.adm-cities{display:flex;gap:6px;flex:1 1 auto}.adm-city{display:flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink2);font:inherit;font-size:12px;cursor:pointer}.adm-city:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dot, var(--muted))}.adm-city.active{color:var(--ink);border-color:var(--ink2);background:var(--card2);font-weight:600}.adm-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:6px}.adm-tab{position:relative;padding:7px 12px;border:none;border-radius:10px 10px 0 0;background:none;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.adm-tab.active{color:var(--ink);background:var(--card);font-weight:650;box-shadow:inset 0 -2px 0 var(--ink)}.adm-dot{margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--seal);color:#fff;font-size:11px;font-weight:700}.adm-columns{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;align-items:start}.adm-left{display:flex;flex-direction:column;gap:14px;min-width:0}.adm-card{padding:16px 18px;border-radius:16px;border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;gap:10px}.adm-card h2{margin:0;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.adm-card p{margin:0;font-size:13px;line-height:1.45}.adm-muted{color:var(--muted);font-size:12px;line-height:1.4}.adm-strong{font-size:15px;font-weight:650}.adm-mono{font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink2)}.adm-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.adm-tile{padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--card)}.adm-tile-value{font-size:30px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.adm-tile-label{margin-top:2px;font-size:13px;font-weight:600}.adm-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.adm-track{height:8px;border-radius:999px;background:var(--card2);overflow:hidden}.adm-track.big{height:12px}.adm-track>span{display:block;height:100%;background:var(--moss);transition:width .5s ease}.adm-source{display:flex;flex-direction:column;gap:4px}.adm-source-label{font-size:12px;color:var(--ink2);font-variant-numeric:tabular-nums}.adm-hours{display:flex;align-items:flex-end;gap:3px;height:90px}.adm-hour{flex:1;border-radius:3px 3px 0 0;background:var(--card2)}.adm-hour.peak{background:var(--gold)}.adm-hours-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.adm-nested{padding:12px;border-radius:12px;background:var(--card2);display:flex;flex-direction:column;gap:8px}.adm-nested-title{font-size:12px;font-weight:650;color:var(--ink2)}.adm-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.adm-button{padding:8px 13px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:13px;text-decoration:none;cursor:pointer}.adm-button:hover{border-color:var(--ink2)}.adm-button:disabled{opacity:.5}.adm-button.seal{background:var(--seal);border-color:var(--seal);color:#fff}.adm-input{flex:1 1 160px;min-width:0;padding:8px 11px;border-radius:10px;border:1px solid var(--line);background:#fffdf8;color:var(--ink);font:inherit;font-size:13px}.adm-input-small{flex:0 0 90px}.adm-list{display:flex;flex-direction:column;gap:8px}.adm-citizen{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;background:var(--card2);flex-wrap:wrap}.adm-citizen-about{flex:1 1 160px;min-width:0}.adm-no{flex:0 0 auto;padding:8px 10px;border-radius:10px;background:var(--ink);color:var(--card);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.adm-no.founder{background:linear-gradient(150deg,#d9a92b,var(--gold));color:#3a2c10}.adm-feed{position:sticky;top:64px;max-height:calc(100dvh - 110px);overflow-y:auto}.adm-event{display:flex;gap:8px;font-size:12.5px;line-height:1.4;padding:6px 0;border-bottom:1px solid var(--card2)}.adm-time{flex:0 0 auto;color:var(--muted);font-variant-numeric:tabular-nums}@media (max-width: 820px){.adm-columns{grid-template-columns:1fr}.adm-feed{position:static;max-height:340px}}@media (max-width: 820px){#hud{gap:6px;padding:8px calc(8px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) calc(8px + env(safe-area-inset-left))}.card{min-width:0;flex:1 1 44%;padding:8px 10px;border-radius:12px;font-size:12px}.card h2{font-size:13px}.card .dim{font-size:11px}}
