:root{font-family:Inter,system-ui,sans-serif;color-scheme:dark;--background: #06101d;--surface: #0b192a;--foreground: #f4fbff;--muted: #a8bbce;--accent: #2ee7ff;--accent-foreground: #031016;--secondary-accent: #8d6bff;--border: rgba(113, 221, 255, .28);--radius: 20px;color:var(--foreground);background:var(--background);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at top right,color-mix(in srgb,var(--secondary-accent) 12%,transparent),transparent 55%),var(--background)}body[data-theme=city]{--background: #160f0a;--surface: #211710;--foreground: #fff8ee;--muted: #d1bca9;--accent: #ff8a3d;--accent-foreground: #1c0c03;--secondary-accent: #2dd58a;--border: rgba(255, 174, 98, .3);color:var(--foreground)}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;white-space:nowrap}button:disabled{opacity:.55;cursor:wait}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}h1,h2,p{margin:0}h1,h2{text-wrap:balance}#app{width:min(1080px,100%);margin:auto;padding:32px max(24px,env(safe-area-inset-right)) 24px max(24px,env(safe-area-inset-left))}.site-header,.poster-header{display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:800;letter-spacing:.13em;font-size:20px;white-space:nowrap}.subtle-link{color:var(--muted);font-size:14px;padding:12px 0}.subtle-link:hover,.text-action:hover{color:var(--accent)}.launcher-intro{margin:64px 0 40px;max-width:760px}.eyebrow{color:var(--accent);font-size:12px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}h1{font-size:clamp(36px,5vw,64px);font-weight:750;letter-spacing:-.035em;line-height:1.08;margin:16px 0 24px}h1 span{color:var(--accent)}.lead{max-width:620px;color:var(--muted);font-size:20px;line-height:1.5}.activities{display:grid;gap:16px}.activity{display:grid;grid-template-columns:56px 1fr 40px;gap:24px;padding:28px 24px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:background .2s}.activity:hover{background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.activity-number{color:var(--accent);font-size:18px;padding-top:4px}.activity h2{font-size:28px;font-weight:600;letter-spacing:-.025em;margin:6px 0 8px}.activity p:not(.eyebrow){color:var(--muted);line-height:1.5;max-width:620px}.activity-arrow{font-size:30px;align-self:center}.city .eyebrow,.city .activity-number{color:#ff8a3d}.camera-note{color:var(--muted);font-size:14px;line-height:1.5;max-width:680px;margin:24px 0 16px}.text-action{display:inline-block;padding:12px 0;font-weight:600}.partners{margin-top:48px}.partner-label{display:block;color:var(--muted);font-size:11px;letter-spacing:.13em;text-transform:uppercase;margin-bottom:12px}.partner-logos{display:grid;grid-template-columns:2.4fr .85fr 1fr;gap:40px;align-items:center;background:#fff;padding:20px 32px;border-radius:8px}.partner-logos img{max-width:100%;width:auto;object-fit:contain;height:60px;justify-self:center}.atos-frame{position:relative;display:block;width:100%;aspect-ratio:2340 / 462;overflow:hidden}.partner-logos .atos-frame .atos{position:absolute;left:-5.769231%;top:-42.640693%;width:110.384615%;height:auto;max-width:none;max-height:none}.partner-logos .armir{width:160px;height:auto}.partner-logos .rdf{width:auto;height:70px}.ranking{margin-top:64px;padding:32px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.ranking h1{font-size:48px}.ranking-controls{display:flex;gap:16px;justify-content:space-between;margin:32px 0 16px}.tabs{display:flex;gap:4px;padding:4px;background:var(--background);border-radius:var(--radius)}.tabs button,.refresh{min-height:44px;padding:10px 20px;border:1px solid transparent;background:transparent;border-radius:8px}.tabs button[aria-pressed=true]{background:var(--accent);color:var(--accent-foreground)}.refresh{border-color:var(--border)}#ranking-status,.ranking-note{color:var(--muted);font-size:13px;line-height:1.5;margin:16px 0 24px}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th{text-align:left;color:var(--muted);font-size:12px;font-weight:500;padding:16px 12px}td{border-top:1px solid var(--border);padding:20px 12px;font-size:18px}td:nth-child(2){font-weight:600;overflow-wrap:anywhere}td:nth-child(3){color:var(--accent);font-weight:700}th:nth-child(n+3),td:nth-child(n+3){text-align:right}tbody tr:nth-child(-n+3){background:color-mix(in srgb,var(--accent) 8%,var(--surface))}tbody tr{content-visibility:auto;contain-intrinsic-size:auto 64px}.empty-state{padding:48px 24px;background:var(--surface);line-height:1.5;border-radius:var(--radius)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:600px){#app{padding-top:16px}.brand{font-size:16px}.subtle-link{font-size:12px}.launcher-intro,.ranking{margin-top:40px}.lead{font-size:17px}.activity{grid-template-columns:28px 1fr 20px;gap:12px;padding:24px 16px}.activity h2{font-size:23px}.activity p:not(.eyebrow){font-size:14px}.partner-logos{gap:16px;padding:16px;grid-template-columns:1fr 1fr}.partner-logos .atos-frame{grid-column:1 / 3}.partner-logos .rdf{height:55px}.ranking h1{font-size:36px}.ranking{padding:20px 12px}.ranking-controls{flex-wrap:wrap;gap:8px}.tabs button{padding:10px 12px;font-size:14px}th,td{padding:14px 5px}th{font-size:10px}td{font-size:14px}}.screen-body{min-height:100vh;display:grid;place-items:center}.screen-body #app{width:100%;padding:0;max-width:none}.screen-poster{width:min(100vw,177.7778vh);height:min(56.25vw,100vh);margin:auto;padding:2.2% 3%;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:clamp(10px,1.1vw,24px);background:var(--background)}.poster-header{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:clamp(12px,1.15vw,22px)}.poster-header .brand{color:var(--foreground);font-size:clamp(18px,1.65vw,32px);letter-spacing:.13em}.screen-poster .poster-header{padding-bottom:.6%;border-bottom:1px solid var(--border)}.screen-main{min-height:0;display:grid;grid-template-columns:1.16fr 1fr;gap:3%}.model-side{position:relative;min-height:0;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 45%,#152b45,transparent 68%)}.model-side:before,.model-side:after{content:"";position:absolute;width:36px;height:36px;pointer-events:none;border-color:var(--border);border-style:solid}.model-side:before{top:4%;left:1%;border-width:1px 0 0 1px}.model-side:after{bottom:14%;right:1%;border-width:0 1px 1px 0}#model-stage{flex:1;min-height:0;width:100%}#model-stage canvas{width:100%;height:100%;display:block}.model-caption{flex-shrink:0;display:flex;gap:24px;align-items:center;padding:2% 3%;border-top:1px solid var(--border)}#model-counter{color:var(--accent);font-size:clamp(12px,1.1vw,22px);font-variant-numeric:tabular-nums}.model-caption h2{font-size:clamp(18px,1.8vw,34px);font-weight:550}.model-caption p{color:var(--muted);font-size:clamp(12px,1.1vw,20px);margin-top:4px}#model-status{position:absolute;left:6%;top:40%;color:var(--muted);max-width:75%;font-size:18px}.scan-side{min-height:0;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:clamp(8px,1vw,20px);background:linear-gradient(145deg,var(--surface),#171b35);color:var(--foreground);padding:5%;border:1px solid var(--border);border-radius:var(--radius)}.scan-side .eyebrow{color:var(--accent);font-size:clamp(11px,.95vw,18px)}.scan-side h1{font-size:clamp(28px,3.15vw,62px);margin:0;line-height:1.04;letter-spacing:-.035em}.scan-side h1 span{color:var(--accent)}.scan-side>p:not(.eyebrow){color:var(--muted);line-height:1.45;font-size:clamp(14px,1.25vw,24px)}.scan-action{min-height:0;display:grid;grid-template-columns:52% 1fr;grid-template-rows:minmax(0,1fr) auto;gap:0 5%;align-items:center}.qr{width:100%;height:auto;display:block;background:#fff;border-radius:4px}.scan-action .qr{width:100%;height:100%;min-height:0;object-fit:contain}.qr-url{font-size:14px;letter-spacing:.035em;white-space:nowrap}.scan-action .qr-url{grid-column:1;grid-row:2;font-size:clamp(10px,.85vw,17px);text-align:center;margin-top:8px}.scan-action strong{grid-column:2;grid-row:1;font-size:clamp(14px,1.2vw,24px);line-height:1.4;font-weight:550}.screen-poster .partners{margin-top:0}.screen-poster .partner-label{font-size:clamp(8px,.65vw,12px);margin-bottom:8px}.screen-poster .partner-logos{grid-template-columns:repeat(3,minmax(0,1fr));padding:.8% 3%;gap:5%;height:clamp(74px,8vw,154px);border-radius:4px}.screen-poster .atos-frame{width:min(100%,390px);justify-self:center}.screen-poster .partner-logos .armir{width:230px;max-width:75%;height:auto;max-height:100px}.screen-poster .partner-logos .rdf{width:200px;max-width:65%;height:auto;max-height:112px}.screen-utilities{display:flex;gap:16px;align-items:center;color:var(--muted);font-size:10px}.screen-utilities span{margin-right:auto}.screen-utilities button{background:transparent;border:0;padding:4px;font-size:10px}.print-body{background:#273a55;color:var(--foreground);color-scheme:dark}.print-poster{width:210mm;height:297mm;margin:16px auto;background:var(--background);padding:13mm 14mm 12mm;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:7mm;position:relative}.print-poster:before{content:"";position:absolute;left:0;top:0;height:4mm;width:100%;background:linear-gradient(90deg,var(--accent),var(--secondary-accent))}.print-poster .poster-header{color:var(--muted);font-size:9pt;border-bottom:1px solid var(--border);padding-bottom:5mm}.print-main{min-height:0;display:flex;flex-direction:column;justify-content:space-between;gap:5mm}.print-poster .eyebrow{color:var(--accent);font-size:8pt;letter-spacing:.08em}.print-poster h1{font-size:48pt;margin:0 0 3mm;line-height:1.08;letter-spacing:-.035em}.print-subtitle{color:var(--accent);font-size:19pt;font-weight:600;line-height:1.3;margin-bottom:7mm}.print-lead{max-width:160mm;font-size:10.5pt;line-height:1.5;color:var(--muted)}.print-steps{list-style:none;counter-reset:step;padding:5mm 0 0;margin:5mm 0 0;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr;gap:3mm}.print-steps li{counter-increment:step;display:grid;grid-template-columns:10mm 1fr;gap:1mm 3mm;font-size:10pt}.print-steps li:before{content:"0" counter(step);grid-row:1/3;color:var(--accent);font-weight:550;font-size:18pt}.print-steps strong{font-size:10.5pt}.print-steps span{grid-column:2;color:var(--muted);line-height:1.4}.print-qr{align-self:stretch;display:grid;grid-template-columns:52mm 1fr;grid-template-rows:auto auto 1fr;text-align:left;align-items:center;gap:2mm 6mm;background:var(--surface);padding:5mm;border:1px solid var(--border);border-radius:4mm}.print-qr .qr{width:52mm;grid-row:1/4}.print-qr strong{font-size:22pt;letter-spacing:-.035em;padding-top:4mm}.print-qr .qr-url{font-size:10pt}.print-qr p{color:var(--muted);font-size:9pt;line-height:1.5;align-self:start}.print-poster .partners{margin-top:0}.print-poster .partner-label{color:var(--muted);font-size:7pt;margin-bottom:3mm}.print-poster .partner-logos{grid-template-columns:1.8fr 1fr 1fr;background:#fff;border-radius:2mm;padding:4mm;gap:6mm;height:29mm}.print-poster .atos-frame{width:100%}.print-poster .partner-logos .armir{width:34mm;height:auto;max-height:17mm}.print-poster .partner-logos .rdf{width:29mm;height:auto;max-height:21mm}@page{size:A4 portrait;margin:0}@media print{.print-body{background:#fff}.print-poster{margin:0;print-color-adjust:exact;-webkit-print-color-adjust:exact}}
