:root{--paper: #e9edee;--paper-2: #f6f8f8;--ink: #10171b;--ink-soft: #55646b;--rule: #c4ced2;--signage: #0b6e4f;--signage-dark: #07543c;--hazard: #f0c419;--alert: #b3311f;--radius: 4px;--shadow: 0 1px 0 var(--rule);--tape: repeating-linear-gradient( -45deg, var(--hazard) 0 10px, var(--ink) 10px 20px );--font-display: "Archivo", "Helvetica Neue", Arial, sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:32px 32px;opacity:.28}h1,h2,h3{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0}a{color:var(--signage-dark)}button,input,select{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--signage);outline-offset:2px}.shell{max-width:560px;margin:0 auto;min-height:100%;padding:0 18px calc(40px + env(safe-area-inset-bottom));background:var(--paper);border-left:1px solid var(--rule);border-right:1px solid var(--rule)}.shell--wide{max-width:1080px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 14px;border-bottom:1px solid var(--rule);margin-bottom:22px}.wordmark{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:800;font-size:15px;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--ink)}.wordmark span.dot{width:12px;height:12px;border-radius:50%;background:var(--signage);box-shadow:0 0 0 3px #0b6e4f2e}.topbar nav{display:flex;gap:14px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.topbar nav a{color:var(--ink-soft);text-decoration:none;padding-bottom:2px;border-bottom:2px solid transparent}.topbar nav a.active,.topbar nav a:hover{color:var(--ink);border-bottom-color:var(--hazard)}.eyebrow{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 8px}.display{font-size:clamp(34px,11vw,52px);text-transform:uppercase;letter-spacing:-.035em}.lede{color:var(--ink-soft);margin:12px 0 0;max-width:46ch}.muted{color:var(--ink-soft)}.code{font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;border:1px solid var(--rule);background:var(--paper-2);border-radius:2px;padding:2px 6px;white-space:nowrap}.stack{display:grid;gap:14px}.stack-lg{display:grid;gap:26px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.panel{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--radius);padding:18px}.panel__title{font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px;display:flex;justify-content:space-between;align-items:baseline;gap:10px}.here{border:1px solid var(--ink);border-radius:var(--radius);background:var(--paper-2);overflow:hidden}.here__tape{height:8px;background:var(--tape)}.here__body{padding:16px 18px}.here__label{font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.here__name{font-family:var(--font-display);font-size:clamp(24px,7vw,32px);font-weight:800;letter-spacing:-.02em;margin:4px 0 0;text-transform:uppercase}.here__meta{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--paper-2);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:transform .08s ease,background .15s ease}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--signage);border-color:var(--signage-dark);color:#fff}.btn--primary:hover{background:var(--signage-dark)}.btn--block{width:100%}.btn--ghost{border-color:var(--rule);background:transparent}.btn--danger{border-color:var(--alert);color:var(--alert);background:transparent}.btn--sm{min-height:36px;padding:6px 12px;font-size:13px}.btn[disabled]{opacity:.45;cursor:not-allowed}.destinations{display:grid;gap:10px}.destination{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:14px 16px;border:1px solid var(--rule);border-left:5px solid var(--signage);border-radius:var(--radius);background:var(--paper-2);cursor:pointer;transition:border-color .15s ease,background .15s ease}.destination:hover:not([disabled]){background:#fff;border-color:var(--ink);border-left-color:var(--signage)}.destination[disabled]{opacity:.5;cursor:default}.destination__name{font-family:var(--font-display);font-weight:700;font-size:17px}.destination__sub{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.destination__arrow{font-size:20px;color:var(--signage)}.steps{list-style:none;margin:0;padding:0;counter-reset:step}.step{display:grid;grid-template-columns:34px 1fr;gap:14px;padding-bottom:18px;position:relative}.step:not(:last-child):before{content:"";position:absolute;left:16px;top:30px;bottom:4px;border-left:2px dashed var(--rule)}.step__marker{width:34px;height:34px;border-radius:50%;border:1px solid var(--ink);background:var(--paper-2);display:grid;place-items:center;font-size:16px;z-index:1}.step--active .step__marker{background:var(--hazard)}.step--done .step__marker{background:var(--signage);color:#fff;border-color:var(--signage-dark)}.step__text{padding-top:5px}.step__instruction{font-family:var(--font-display);font-weight:700;font-size:16px}.step__detail{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);letter-spacing:.03em}.stats{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;background:var(--paper-2)}.stat{padding:14px 16px;border-right:1px solid var(--rule)}.stat:last-child{border-right:0}.stat__label{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.stat__value{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.02em;margin-top:2px}.notice{border:1px solid var(--rule);border-left:5px solid var(--ink-soft);border-radius:var(--radius);background:var(--paper-2);padding:14px 16px}.notice__title{font-family:var(--font-display);font-weight:700;margin-bottom:4px}.notice__body{font-size:14px;color:var(--ink-soft)}.notice--error{border-left-color:var(--alert)}.notice--warn{border-left-color:var(--hazard)}.notice--ok{border-left-color:var(--signage)}.map-frame{border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper-2);padding:8px;overflow:hidden}.map-svg{display:block;width:100%;height:auto}.map-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft)}.map-legend span{display:inline-flex;align-items:center;gap:6px}.map-legend i{width:12px;height:12px;border:1px solid var(--ink);display:inline-block}.field{display:grid;gap:5px}.field label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.field input,.field select{min-height:44px;padding:8px 10px;border:1px solid var(--rule);border-radius:var(--radius);background:#fff}.grid-2,.grid-4{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 640px){.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper-2)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--rule);white-space:nowrap}th{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}tbody tr:last-child td{border-bottom:0}.qr-card{border:1px solid var(--ink);border-radius:var(--radius);background:#fff;padding:16px;text-align:center}.qr-card img{width:100%;max-width:240px;height:auto;image-rendering:pixelated}.qr-card__caption{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-top:8px}.qr-sheet{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.qr-sheet .qr-card img{max-width:100%}.ar-root{position:fixed;top:0;right:0;bottom:0;left:0;background:#05080a;color:#fff;overflow:hidden}.ar-video,.ar-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.ar-canvas{pointer-events:none}.ar-ui{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:calc(14px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));pointer-events:none}.ar-ui>*{pointer-events:auto}.ar-head{background:#060c0eb8;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);padding:12px 14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ar-mode{display:inline-block;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;padding:3px 8px;border-radius:2px;background:var(--hazard);color:var(--ink);font-weight:600}.ar-mode--real{background:var(--signage);color:#fff}.ar-dest{font-family:var(--font-display);font-weight:800;font-size:26px;text-transform:uppercase;letter-spacing:-.02em;margin-top:8px}.ar-remaining{font-family:var(--font-mono);font-size:13px;color:#cfe3d9}.ar-foot{display:grid;gap:10px}.ar-instruction{background:#060c0ec7;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);padding:14px;display:flex;align-items:center;gap:14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ar-instruction__glyph{font-size:34px;line-height:1;color:var(--hazard)}.ar-instruction__main{font-family:var(--font-display);font-weight:800;font-size:19px;text-transform:uppercase}.ar-instruction__sub{font-family:var(--font-mono);font-size:12px;color:#cfe3d9}.ar-controls{display:flex;gap:8px}.ar-btn{flex:1;min-height:50px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.3);background:#060c0ec7;color:#fff;font-family:var(--font-display);font-weight:700;cursor:pointer}.ar-btn--primary{background:var(--signage);border-color:var(--signage)}.ar-btn--wide{flex:2}.ar-arrived{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;padding:24px;background:#05140fe6}.ar-arrived h2{font-size:clamp(30px,10vw,46px);text-transform:uppercase;color:#fff}.ar-arrived .check{font-size:64px;color:var(--hazard)}.ar-setup{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;align-content:center;gap:16px;padding:24px;background:#05080a;overflow-y:auto}.ar-setup .panel{background:#ffffff0d;border-color:#ffffff2e;color:#e8f1ed}.ar-setup .panel__title,.ar-setup .eyebrow{color:#9fb4ac}.spinner{width:22px;height:22px;border:3px solid var(--rule);border-top-color:var(--signage);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.footer-note{margin-top:30px;padding-top:14px;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;color:var(--ink-soft)}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media print{body:before,.topbar,.no-print{display:none!important}.shell{border:0;max-width:none}.qr-card{break-inside:avoid}}
