@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(./nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2)format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(./nunito-latin-900-normal-BVB1fGs6.woff2)format("woff2"),url(./nunito-latin-900-normal-CVn49sIn.woff)format("woff")}:root{--sky:#3d98e6;--sky-soft:#cfe6f5;--terracotta:#d9603f;--terracotta-dark:#b84a2c;--sun:#ffc94a;--leaf:#4f9a3c;--cream:#fffaf0;--ink:#1d2b44;--ink-soft:#52607a;--panel:#fffaf0e6;--panel-border:#1d2b4414;--shadow:0 8px 28px #1228502e, 0 2px 6px #1228501f;--radius:18px;--radius-pill:999px;--font:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--focus:0 0 0 3px #fff, 0 0 0 6px var(--sky);--status:#4f9a3c}body{background:linear-gradient(#3d98e6,#cfe6f5 60%,#e6eabf)}*{box-sizing:border-box}html{background-color:var(--status);background-image:linear-gradient(var(--status) 33.34%, #c4d58a 33.34%);background-position:0;background-size:100% 300%}html,body{overscroll-behavior:none;height:100%;color:var(--ink);font-family:var(--font);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;margin:0;font-weight:600;overflow:hidden}#city{width:100vw;height:100vh;touch-action:none;height:100lvh;position:fixed;top:0;left:0}#city canvas{outline:none;display:block}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{box-shadow:var(--focus);outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px)saturate(1.3)}.btn{border-radius:var(--radius-pill);letter-spacing:.01em;white-space:nowrap;border:0;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-weight:800;text-decoration:none;transition:transform .12s,background .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--terracotta);color:#fff;box-shadow:0 4px 0 var(--terracotta-dark)}.btn-primary:hover{background:#e2694a}.btn-sun{background:var(--sun);color:var(--ink);box-shadow:0 4px #d9a52f}.btn-ghost{color:var(--ink);background:#ffffffbf}.btn-ghost:hover{background:#fff}.btn-icon{width:44px;padding:0}.btn[disabled]{opacity:.55;cursor:default}.chip{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:6px;height:36px;padding:0 14px;font-size:14px;font-weight:800;display:inline-flex}.hud{pointer-events:none;z-index:10;position:fixed;inset:0}.hud>*{pointer-events:auto}.hidden-ui .hud,.hidden-ui .sheet-wrap,.hidden-ui .toast{display:none!important}.topbar{top:calc(12px + var(--safe-top));flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;left:12px;right:12px}.brand-chip{background:var(--terracotta);color:#fff;gap:8px;font-weight:900}.brand-chip svg{width:18px;height:18px}.stat-chip{background:var(--panel);box-shadow:var(--shadow);color:var(--ink)}.stat-chip b{font-weight:900}.topbar .spacer{flex:1}.topbar .btn-icon{width:36px;height:36px;min-height:36px;box-shadow:var(--shadow)}.menu{top:calc(56px + var(--safe-top));flex-direction:column;gap:2px;min-width:220px;padding:8px;animation:.15s ease-out pop;display:flex;position:absolute;right:12px}.menu-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding:6px 10px 4px;font-size:12px;font-weight:900}.menu-row{gap:4px;padding:0 4px 4px;display:flex}.menu-row .menu-item{flex:1;justify-content:center}.menu-item{text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;min-height:42px;padding:0 12px;font-weight:800;display:flex}.menu-item:hover{background:#1d2b440f}.menu-item[aria-checked=true]{background:var(--terracotta);color:#fff}.menu-sep{background:#1d2b441a;height:1px;margin:4px 6px}[hidden]{display:none!important}.newest{top:calc(60px + var(--safe-top));background:var(--sun);color:var(--ink);box-shadow:var(--shadow);border:0;position:absolute;left:12px}@media (max-width:520px){.newest{top:calc(104px + var(--safe-top))}}.searchbar{left:50%;bottom:calc(16px + var(--safe-bottom));border-radius:var(--radius-pill);align-items:center;gap:6px;width:min(560px,100% - 24px);padding:6px;display:flex;position:absolute;transform:translate(-50%)}.searchbar .at{color:var(--ink-soft);padding-left:12px;font-weight:900}.searchbar input{background:0 0;border:0;flex:1;min-width:0;height:44px;font-size:16px;font-weight:800}.searchbar input:focus{outline:none}.searchbar:focus-within{box-shadow:var(--shadow), 0 0 0 3px #3d98e673}.minimap{left:12px;bottom:calc(84px + var(--safe-bottom));border-radius:14px;padding:6px;position:absolute}.minimap canvas{cursor:pointer;border-radius:10px;width:132px;height:132px;display:block}@media (max-width:520px){.minimap{display:none}}.card{left:50%;bottom:calc(80px + var(--safe-bottom));width:min(400px,100% - 24px);padding:16px 16px 14px;animation:.18s ease-out pop;position:absolute;transform:translate(-50%)}@keyframes pop{0%{opacity:0;transform:translate(-50%,8px)}}.card h2{margin:0 0 2px;font-size:20px;font-weight:900}.card .addr{color:var(--ink-soft);margin:0}.card .who{margin:10px 0 0;font-weight:800}.card .tag{color:var(--terracotta-dark);background:#ffe8dc;border-radius:999px;margin-top:8px;padding:3px 10px;font-size:13px;font-weight:900;display:inline-block}.card .actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.card .close{width:36px;min-height:36px;position:absolute;top:8px;right:8px}.poster{z-index:60;background:linear-gradient(#3d98e6,#cfe6f5 55%,#e6eabf);place-items:center;transition:opacity .6s;display:grid;position:fixed;inset:0}.poster.gone{opacity:0;pointer-events:none}.poster .welcome{text-align:center;flex-direction:column;align-items:center;padding:16px;display:flex}.poster .hello{color:#fff;text-shadow:0 2px 10px #0003;margin:0 0 4px;font-size:clamp(18px,4.5vw,26px);font-weight:800}.poster h1{letter-spacing:-.02em;color:#fff;text-shadow:0 3px 0 var(--terracotta-dark), 0 10px 30px #00000040;margin:0;font-size:clamp(44px,11vw,84px);font-weight:900;line-height:.95}.poster .by{color:var(--ink);background:var(--panel);border-radius:999px;margin:12px 0 18px;padding:4px 12px;font-weight:800}.poster svg{width:min(70vw,360px)}.poster .count{min-height:1.3em;color:var(--ink);opacity:0;margin:12px 0 0;font-size:clamp(20px,5vw,28px);font-weight:900;transition:opacity .4s}.poster.ready .count{opacity:1}.poster.ready{cursor:pointer}.sheet-wrap{z-index:30;background:#14233c59;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (min-width:720px){.sheet-wrap{align-items:center}}.sheet{width:min(560px,100%);max-height:min(88vh,860px);padding:22px 18px calc(22px + var(--safe-bottom));background:var(--cream);box-shadow:var(--shadow);border-radius:22px 22px 0 0;animation:.22s ease-out rise;position:relative;overflow:auto}@media (min-width:720px){.sheet{border-radius:22px}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.sheet h1{margin:0 0 6px;font-size:26px;font-weight:900}.sheet h2{margin:18px 0 6px;font-size:18px;font-weight:900}.sheet p,.sheet li{color:var(--ink);line-height:1.5}.sheet .muted{color:var(--ink-soft);font-size:14px}.sheet .close{position:absolute;top:12px;right:12px}.sheet .row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.sheet label.field{margin-top:12px;font-weight:800;display:block}.sheet input[type=text]{background:#fff;border:2px solid #e3dccb;border-radius:14px;width:100%;height:48px;margin-top:6px;padding:0 14px;font-size:16px;font-weight:800}.sheet input[type=text]:focus{border-color:var(--sky);outline:none}.error{color:#b3261e;margin-top:8px;font-weight:800}.steps{gap:6px;margin:6px 0 14px;display:flex}.steps span{background:#ebe3d1;border-radius:6px;flex:1;height:6px}.steps span.on{background:var(--terracotta)}.consent{cursor:pointer;background:#fff;border:2px solid #efe8d8;border-radius:14px;align-items:flex-start;gap:12px;margin-top:12px;padding:12px;display:flex}.consent input{width:22px;height:22px;accent-color:var(--terracotta);flex:none;margin:2px 0 0}.consent b{display:block}.consent small{color:var(--ink-soft);font-weight:600}.code{border:2px dashed var(--terracotta);letter-spacing:.12em;background:#fff;border-radius:16px;justify-content:center;align-items:center;gap:10px;margin:12px 0;padding:16px;font:900 34px/1 ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.preview{background:linear-gradient(#bfe0f7,#e6eabf);border-radius:16px;height:220px;margin:8px 0 4px;position:relative;overflow:hidden}.preview canvas{width:100%;height:100%;display:block}.options{gap:10px;display:grid}.opt-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.opt-group>span{width:100%;font-size:14px;font-weight:900}.opt{background:#fff;border:2px solid #e8e0cd;border-radius:999px;min-height:36px;padding:0 12px;font-size:14px;font-weight:800}.opt[aria-pressed=true]{border-color:var(--terracotta);background:#ffe8dc}.swatch{border:3px solid #fff;border-radius:50%;width:32px;height:32px;padding:0;box-shadow:0 0 0 2px #e8e0cd}.swatch[aria-pressed=true]{box-shadow:0 0 0 3px var(--terracotta)}.share-img{width:100%;box-shadow:var(--shadow);border-radius:14px}.toast{left:50%;top:calc(64px + var(--safe-top));z-index:40;background:var(--ink);color:#fff;max-width:calc(100% - 24px);box-shadow:var(--shadow);border-radius:999px;padding:10px 16px;font-weight:800;animation:.18s ease-out pop;position:fixed;transform:translate(-50%)}.debug-overlay{top:calc(60px + var(--safe-top));z-index:50;color:#d8f3ff;pointer-events:none;white-space:pre;background:#0a0f1eb8;border-radius:8px;margin:0;padding:8px 10px;font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;position:fixed;right:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
