.page{max-width:1040px;margin:0 auto;padding:56px var(--gut) 60px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 64px;align-items:start}
.kick{grid-column:1/-1;display:flex;align-items:baseline;gap:14px;margin-bottom:26px}
.kick .ob-name{font-size:15px}
.kick .lbl{font-size:10px;color:var(--faint)}
h1{font-size:22px;font-weight:400;line-height:1.35;margin:0 0 22px;color:var(--ink);max-width:440px}
h1 b{font-weight:500}
.code{display:flex;align-items:baseline;gap:16px;margin:0 0 6px}
.code span{font:700 52px/1 var(--dot);letter-spacing:.14em;color:var(--wait);text-shadow:0 0 18px rgba(240,180,76,.25)}
.chk{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:12px 0 0}
.term{margin:0;padding:14px 16px;background:#000;box-shadow:inset 0 0 0 1px rgba(206,222,240,.12);font:12px/1.65 var(--mono);color:var(--body);white-space:pre-wrap;overflow-wrap:anywhere}
.term .pr{color:var(--faint)}
.term .c{color:var(--wait)}
.term .ok{color:var(--ink)}
.mach{display:flex;align-items:center;gap:12px;color:var(--dim)}
.mach b{font-weight:400;font-size:22px;color:var(--ink)}
.meta{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin:8px 0 26px 30px}
.cans{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cans > div{display:flex;flex-direction:column;gap:10px}
.cans span{display:flex;align-items:center;gap:10px;font-size:12.5px;cursor:help}
.cans .y span{color:var(--ink)}
.cans .no span{color:var(--faint)}
.cans .no svg{color:var(--flag)}
.done p{margin:0 0 10px}
.page{align-items:center;min-height:70vh}
.may{display:grid;grid-template-columns:1fr;gap:12px;font-size:12px;color:var(--body)}
.may h3{margin:0 0 4px;font-weight:400;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.may ul{margin:0;padding:0;list-style:none}
.may li{position:relative;padding-left:16px;margin:4px 0;line-height:1.45}
.may .y li::before{content:'';position:absolute;left:1px;top:.5em;width:6px;height:6px;background:rgba(206,222,240,.7)}
.may .no li::before{content:'';position:absolute;left:0;top:.82em;width:8px;height:1px;background:var(--faint)}
.may .no li{color:var(--dim)}
.acts{display:grid;grid-template-columns:1.6fr 1fr;gap:10px;margin-top:24px}
.acts .btn{height:46px;justify-content:center;font-size:13px}
.fine{font-size:11px;line-height:1.55;color:var(--faint);margin:12px 0 0}
.done{grid-column:2;padding:16px 18px;box-shadow:inset 0 0 0 1px rgba(206,222,240,.25)}
.done h2{font:700 24px/1.1 var(--dot);letter-spacing:.04em;margin:0 0 10px;color:var(--ink)}
.done p{margin:0 0 6px;color:var(--dim);font-size:12.5px;line-height:1.55}
.done a{color:var(--ink)}
@media (max-width:760px){
  .page{grid-template-columns:minmax(0,1fr);padding:28px var(--gut) 140px}
  .kick{margin-bottom:18px}
  h1{font-size:19px}
  .code span{font-size:40px}
  .right{margin-top:6px}
  .acts .btn{background:#020308}
  .acts{position:fixed;left:0;right:0;bottom:0;margin:0;padding:12px var(--gut) calc(14px + env(safe-area-inset-bottom));background:linear-gradient(rgba(2,3,8,0),#020308 16px);z-index:4}
  .done{grid-column:1;margin-top:18px}
}
/* the fingerprint words, computed here from the machine's key: what the owner compares with the terminal */
.words{display:flex;flex-wrap:wrap;gap:6px 16px;margin:16px 0 0}
.words b{font:700 22px/1.1 var(--dot);letter-spacing:.06em;color:var(--ink);text-shadow:0 0 12px rgba(120,180,255,.2)}
.page .err{color:var(--flag)}
