@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,700;12..96,800&family=Public+Sans:wght@400;500;600&family=Space+Mono:wght@400;700&display=swap');
:root{--ground:#E7EBE8;--panel:#fff;--line:#CBD3CD;--ink:#14202E;--graphite:#5A6572;
  --seal:#7B2D26;--amber:#B4761F;--slip:#EDE6D4;--moss:#3D6350}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--ground);color:var(--ink);
  font-family:'Public Sans',system-ui,sans-serif;font-size:15px;line-height:1.5}
#app{max-width:430px;margin:0 auto;min-height:100vh;background:var(--ground);
  border-left:1px solid var(--line);border-right:1px solid var(--line);padding-bottom:96px}
.rule{height:4px;background:var(--seal)}
header{padding:15px 18px 11px;border-bottom:1px solid var(--line);display:flex;
  align-items:baseline;justify-content:space-between;position:sticky;top:0;background:var(--ground);z-index:20}
.mark{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;
  letter-spacing:-.03em;text-transform:uppercase}
.mark span{color:var(--seal)}
.sub,.mono{font-family:'Space Mono',monospace}
.sub{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--graphite)}
main{padding:18px}
h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:25px;
  letter-spacing:-.025em;margin:0 0 4px;line-height:1.12}
.lede{color:var(--graphite);font-size:14px;margin:0 0 18px}
.eyebrow{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--graphite);margin:24px 0 8px;display:flex;align-items:center;gap:8px}
.eyebrow::after{content:"";flex:1;height:1px;background:var(--line)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:14px}
.card+.card{margin-top:10px}
button.card{width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;display:block}
button.card:hover{border-color:var(--ink)}
.btn{width:100%;padding:14px;background:var(--seal);color:#fff;border:none;border-radius:3px;
  font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:14.5px;cursor:pointer;margin-top:10px}
.btn[disabled]{background:#B0B7B2;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn.quiet{background:transparent;color:var(--graphite);border:1px solid var(--line);padding:10px;font-size:13px}
label{display:block;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--graphite);margin:0 0 5px}
input,select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:3px;
  background:var(--panel);font:inherit;font-size:16px;color:var(--ink);margin-bottom:13px}
input:focus,select:focus{outline:none;border-color:var(--seal)}
.slip{background:var(--slip);padding:24px 20px;text-align:center;transform:rotate(-1.4deg);
  box-shadow:2px 3px 0 rgba(20,32,46,.12);margin:6px 4px 18px;border-radius:2px}
.slip .l{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;color:#8A7A57}
.slip .code{font-family:'Space Mono',monospace;font-weight:700;font-size:36px;letter-spacing:.04em;margin:9px 0 7px}
.slip p{font-size:12.5px;color:#6E6045;max-width:250px;margin:0 auto}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.shot{position:relative;aspect-ratio:5/7;border:1px solid var(--line);border-radius:3px;background:var(--panel);
  overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;width:100%}
.shot.wide{aspect-ratio:7/5}
.shot img{width:100%;height:100%;object-fit:cover}
.shot .e{text-align:center;color:var(--graphite);padding:10px;font-size:11px}
.shot .e b{display:block;font-size:22px;color:var(--line)}
.shot .cap{position:absolute;left:0;right:0;bottom:0;background:rgba(20,32,46,.82);color:#fff;
  font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:4px 6px}
.note{border-radius:3px;padding:12px;font-size:12.5px;margin-top:10px}
.note b{display:block;font-family:'Space Mono',monospace;font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;margin-bottom:5px}
.note.calm{background:#F2EEE2;border:1px solid #DDD3B8;color:#5F5335}.note.calm b{color:#8A7A57}
.note.bad{background:#F6E9E7;border:1px solid #E0C4C0;color:#6E3730}.note.bad b{color:#94493E}
.note.good{background:#EAF0EC;border:1px solid #C4D5CA;color:#2F4E3E}.note.good b{color:#3D6350}
.pip{display:inline-flex;align-items:center;gap:6px;font-family:'Space Mono',monospace;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.dot{width:7px;height:7px;border-radius:50%}
.ledger{position:relative;padding-left:21px}
.ledger::before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:1px;background:var(--line)}
.ev{position:relative;padding-bottom:14px}
.ev::before{content:"";position:absolute;left:-21px;top:5px;width:9px;height:9px;border-radius:50%;
  background:var(--ground);border:2px solid var(--moss)}
.ev .t{font-weight:600;font-size:13.5px}
.ev .d{font-size:12px;color:var(--graphite);font-family:'Space Mono',monospace;word-break:break-all}
nav{position:fixed;bottom:0;left:0;right:0;max-width:430px;margin:0 auto;background:var(--panel);
  border-top:1px solid var(--line);display:flex;z-index:30}
nav button{flex:1;padding:12px 2px 15px;background:none;border:none;cursor:pointer;
  font-family:'Space Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--graphite);border-top:3px solid transparent;margin-top:-1px}
nav button.on{color:var(--seal);border-top-color:var(--seal);font-weight:700}
.toast{position:fixed;bottom:88px;left:16px;right:16px;max-width:398px;margin:0 auto;
  background:var(--ink);color:#fff;padding:11px 14px;border-radius:3px;font-size:13.5px;z-index:80}
.cam{position:fixed;inset:0;background:#0B0F14;z-index:70;display:flex;flex-direction:column}
.cam .top{padding:13px 16px;color:#fff;display:flex;justify-content:space-between;align-items:center}
.cam .top button{background:none;border:none;color:#fff;font-family:'Space Mono',monospace;
  font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.stage{flex:1;position:relative;overflow:hidden;background:#000}
.stage video{width:100%;height:100%;object-fit:cover;display:block}
.reticle{position:absolute;inset:9% 7%;border:2px solid rgba(255,255,255,.75);border-radius:6px;
  box-shadow:0 0 0 2000px rgba(11,15,20,.35)}
.reticle span{position:absolute;top:-11px;left:8px;background:var(--seal);color:#fff;
  font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px}
.slipcode{position:absolute;left:0;right:0;bottom:13px;text-align:center;color:#fff;
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.1em;text-shadow:0 1px 4px #000}
.bar{padding:15px;background:rgba(11,15,20,.95);display:flex;flex-direction:column;align-items:center;gap:9px}
.shutter{width:66px;height:66px;border-radius:50%;background:#fff;border:5px solid var(--seal);cursor:pointer}
.shutter[disabled]{opacity:.4}
.msg{color:#C6CDD4;font-size:12px;text-align:center;max-width:290px}
.blocked{padding:24px 20px;color:#E7EBE8}
.blocked h3{font-family:'Bricolage Grotesque',sans-serif;font-size:18px;margin:0 0 8px}
.blocked p{font-size:13.5px;color:#AEB7BF}
