:root{--night: #16151f;--panel: #211f2c;--line: #3a3646;--amber: #e0a040;--glow: #ffd58a;--paper: #f5efe3;--muted: #cfc6b4;--display: "EB Garamond", Georgia, "Times New Roman", serif;--body: "Public Sans", "Segoe UI", Arial, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root,.app{height:100%;margin:0}body{background:var(--night);color:var(--paper);font-family:var(--body);-webkit-text-size-adjust:100%}button{font:600 16px var(--body);color:var(--paper);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px;min-height:46px}button:disabled{opacity:.55}button:focus-visible,input:focus-visible{outline:2px solid var(--glow);outline-offset:2px}button.primary{background:var(--amber);color:var(--night);border-color:var(--amber)}.page{max-width:560px;margin:0 auto;padding:24px 16px 40px;display:flex;flex-direction:column;gap:14px}h1{font:500 40px/1.1 var(--display);margin:0}h2{font:500 26px/1.2 var(--display);margin:10px 0 0}.sub{margin:0;color:var(--amber)}.muted{margin:0;color:var(--muted)}.spots{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.spots li{display:flex;gap:8px;align-items:stretch}.spot{flex:1;min-width:0;display:flex;align-items:center;gap:12px;text-align:left;padding:8px}.spot img{width:72px;height:54px;object-fit:cover;border-radius:6px}.spot span{overflow-wrap:anywhere}html:has(.view),body:has(.view){overflow:hidden;overscroll-behavior:none}.view{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh;overflow:hidden;background:#000;touch-action:none}.view video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.view video.mirror{transform:scaleX(-1)}.lantern.video{padding:0;overflow:hidden;background:#000}.view .lantern.video video{position:static;width:100%;height:100%;object-fit:cover;display:block}video.clip{width:100%;max-height:300px;border-radius:10px;background:#000}button.report{min-height:38px;padding:6px 12px;margin-top:6px}.ghost{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.lantern{position:absolute;left:0;top:0;transform-origin:0 0;opacity:0;transition:opacity .25s;padding:16px 18px;border-radius:14px;pointer-events:none;will-change:transform;font:italic 500 30px/1.25 var(--display);color:var(--paper);background:#16151fdb;border:2px solid var(--amber);box-shadow:0 0 40px #ffd58a8c}.meter,.status{position:absolute;left:12px;right:12px;top:calc(12px + env(safe-area-inset-top,0px));padding:10px 14px;border-radius:10px;background:#16151fd9;text-align:center;font-weight:600}.meter.good,.status.on{background:var(--amber);color:var(--night)}.meter.poor{background:#7a2f22;color:var(--paper)}.stats{position:absolute;left:12px;right:12px;bottom:calc(82px + env(safe-area-inset-bottom,0px));padding:10px 12px;border-radius:10px;background:#16151fc7;font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}.stats label{display:flex;align-items:center;gap:10px}.stats input{flex:1;min-width:0;accent-color:var(--amber)}.copied{color:var(--glow);white-space:pre-wrap;overflow-wrap:anywhere;user-select:text;-webkit-user-select:text;max-height:120px;overflow:auto}.bar{position:absolute;left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom,0px));display:flex;gap:10px}.bar .primary,.row .primary{flex:1}.row{display:flex;gap:10px}.place{position:relative;line-height:0}.place img{width:100%;border-radius:10px;cursor:crosshair}.pin{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;background:var(--glow);box-shadow:0 0 18px 6px #ffd58ab3;pointer-events:none}.field{display:flex;flex-direction:column;gap:6px;color:var(--muted)}.field input{font:16px var(--body);color:var(--paper);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px}.error{position:fixed;z-index:10;left:12px;right:12px;top:calc(12px + env(safe-area-inset-top,0px));display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 12px;border-radius:10px;background:#7a2f22;color:var(--paper)}.error button{flex:none;min-height:38px;padding:6px 12px}.spot small{display:block;color:var(--muted);font-weight:400;margin-top:2px}.lantern small{display:block;font:500 18px/1.3 var(--body);color:var(--glow)}.bar button{padding:12px 10px}.bar button.primary{flex:1}
