:root{--ink:#17211d;--text:#52605a;--muted:#66746d;--bg:#fbfcf8;--surface:#fff;--border:#e5e4e7;--border-strong:#cad4ce;--forest:#256b57;--amber:#c77a16;--rust:#b34a2c;--focus:#ffc72c;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/1.45 var(--sans);letter-spacing:0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ink:#f4f7f2;--text:#c1cbc5;--muted:#a5b1aa;--bg:#111714;--surface:#18211d;--border:#2f3c36;--border-strong:#52635a;--forest:#70c7a7;--amber:#ebb35e;--rust:#f08b70}}#root{min-height:100svh}body{margin:0}*{box-sizing:border-box}h1,h2{font-family:var(--heading);color:var(--ink);letter-spacing:0}h1{max-width:720px;margin:0;font-size:52px;font-weight:850;line-height:1.02}h2{margin:0;font-size:18px;font-weight:850;line-height:1.2}p{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}@media (width<=780px){h1{font-size:38px}}.app-shell{flex-direction:column;min-height:100svh;display:flex}.top-bar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:0 24px;display:flex}.brand-link{color:var(--ink);font-weight:700;text-decoration:none}.runtime-chip{border:1px solid var(--border-strong);color:var(--muted);text-transform:uppercase;border-radius:6px;padding:7px 9px;font-size:13px;font-weight:700;line-height:1}.campaign-screen{background:var(--bg);flex:1;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);min-height:calc(100svh - 65px);display:grid}.campaign-visual{border-right:1px solid var(--border);background:linear-gradient(135deg,#ffc72c33,#0000 46%),linear-gradient(#fff 0%,#f3f7f4 100%);place-items:center;padding:40px;display:grid}.campaign-visual img,.image-fallback{aspect-ratio:1;object-fit:contain;width:min(78%,340px)}.image-fallback{border:1px solid var(--border);color:var(--muted);background:var(--surface);justify-content:center;align-items:center;display:flex}.campaign-copy{text-align:left;flex-direction:column;justify-content:center;gap:20px;padding:48px min(7vw,76px);display:flex}.route-label{color:var(--forest);text-transform:uppercase;font-size:15px;font-weight:800}.summary,.state-message{color:var(--text);max-width:680px;font-size:20px;line-height:1.45}.venue-community{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:680px;display:grid}.venue-community div,.progress-panel,.reward-panel,.instruction-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px}.venue-community div{min-width:0;padding:14px}.venue-community span,.runtime-facts dt{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.venue-community strong{color:var(--ink);margin-top:5px;font-size:17px;line-height:1.25;display:block}.venue-community p,.progress-panel p,.reward-panel p,.instruction-panel p,.status-line p,.state-detail{color:var(--muted);margin:0}.progress-panel,.reward-panel,.instruction-panel{max-width:680px;padding:18px}.progress-heading{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.progress-heading strong{color:var(--ink);white-space:nowrap;font-size:18px}.progress-track{background:#e6ece8;border-radius:6px;height:12px;margin:14px 0 8px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--forest);height:100%;display:block}.status-line{border:1px solid var(--border);background:var(--surface);border-left-width:5px;border-radius:8px;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:14px;max-width:680px;padding:14px 16px;display:grid}.status-line span{color:var(--ink);font-weight:800}.status-ready{border-left-color:var(--forest)}.status-paused{border-left-color:var(--amber)}.status-expired{border-left-color:var(--rust)}.reward-panel{background:#fffdf7}.reward-panel h2,.instruction-panel h2{margin-bottom:6px}.action-row{flex-wrap:wrap;gap:10px;display:flex}.primary-action{border:1px solid var(--ink);color:#fff;background:var(--ink);min-height:48px;font:inherit;border-radius:6px;padding:0 18px;font-weight:800}.primary-action:disabled{cursor:not-allowed;color:var(--muted);border-color:var(--border);background:var(--surface)}.primary-action:not(:disabled):hover{background:#27322d}.primary-action:focus-visible,.sample-routes a:focus-visible,.brand-link:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.runtime-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:680px;margin:8px 0 0;display:grid}.runtime-facts div{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;padding:12px}.runtime-facts dd{color:var(--ink);overflow-wrap:anywhere;margin:4px 0 0;font-size:14px}.state-screen{text-align:center;background:linear-gradient(180deg, #2d675914, transparent 36%), var(--bg);flex:1;place-content:center;justify-items:center;gap:24px;min-height:calc(100svh - 65px);padding:48px 24px;display:grid}.state-mark{border:1px solid var(--border);width:88px;height:88px;color:var(--forest);background:var(--surface);border-radius:8px;place-items:center;font-size:24px;font-weight:900;display:grid}.state-copy{gap:12px;max-width:640px;display:grid}.sample-routes{flex-wrap:wrap;justify-content:center;gap:10px;max-width:720px;display:flex}.sample-routes a{border:1px solid var(--border-strong);min-height:40px;color:var(--ink);background:var(--surface);border-radius:6px;justify-content:center;align-items:center;padding:0 12px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}.sample-routes a:hover{border-color:var(--forest)}@media (width<=860px){.top-bar{padding:0 18px}.campaign-screen{grid-template-columns:1fr}.campaign-visual{border-right:0;border-bottom:1px solid var(--border);min-height:230px;padding:28px}.campaign-copy{justify-content:start;padding:34px 20px 42px}.summary,.state-message{font-size:18px}.venue-community,.status-line,.runtime-facts{grid-template-columns:1fr}}
