/* Doorman — the drawn device.

   Loaded only by the pages that show a phone: index, how-it-works, about.
   Kept out of shell.css because the FAQ, support, contact, legal and 404
   pages have no device on them and should not pay for one.
 */
/* ---------- the phone (drawn, not filmed) ----------
   Built from real elements so the accent, the tabular numerals and the grain
   are all live. A screenshot in a stock frame is the tell we are avoiding. */
.stage,.scene-stage{display:flex;flex-direction:column;align-items:center;gap:18px}
.phone{
  position:relative;
  width:300px;height:566px;border-radius:44px;padding:9px;
  background:linear-gradient(160deg,#FFFFFF,#E7E9E4 58%);
  box-shadow:
    0 0 0 1px rgba(20,35,28,.10),
    var(--lift-3);
}
/* The lamp is above and to the left, so that is the edge that catches. */
.phone::before{
  content:"";position:absolute;inset:0;border-radius:44px;pointer-events:none;
  background:linear-gradient(150deg,rgba(255,255,255,.95),rgba(255,255,255,0) 38%);
  -webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);
  -webkit-mask-composite:xor;mask-composite:exclude;padding:1px;
}
.screen{
  width:100%;height:100%;border-radius:36px;
  background:
    linear-gradient(160deg,rgba(255,255,255,.9),rgba(255,255,255,.55)),
    linear-gradient(180deg,var(--wash-a),var(--wash-b));
  backdrop-filter:var(--glass-filter);
  box-shadow:0 0 0 1px rgba(20,35,28,.07) inset;
  padding:16px 15px;overflow:hidden;position:relative;
  display:flex;flex-direction:column;gap:12px;
}
.status{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--dim);padding:2px 4px 0;font-family:var(--mono)}
.sig{width:24px;height:7px;border-radius:2px;background:linear-gradient(90deg,var(--dim) 62%,transparent 62%)}

/* hero phone: deliberately uneventful */
.quiet{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;text-align:center;padding:22px 14px 14px}
.quiet-mark{width:34px;height:43px}
.quiet-k{font-family:'Clash Display',sans-serif;font-size:17px;color:var(--accent-deep);margin:2px 0 0;letter-spacing:-.01em}
.quiet-v{font-size:12px;color:var(--muted);line-height:1.6;margin:0}
.peek{
  margin-top:auto;display:flex;flex-direction:column;gap:8px;opacity:1;
  -webkit-mask-image:linear-gradient(#000 62%,rgba(0,0,0,.35) 88%,transparent);
  mask-image:linear-gradient(#000 62%,rgba(0,0,0,.35) 88%,transparent);
}
.peek-row{
  border:1px solid var(--hairline);border-left:2px solid var(--accent);
  border-radius:12px;padding:10px 12px;background:var(--paper);
  box-shadow:var(--lift-1);
}
.peek-k{font-size:11.5px;color:var(--ink)}
.peek-v{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-top:3px;display:block}
.quiet-foot{
  display:flex;align-items:center;gap:7px;justify-content:center;
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);
  border-top:1px solid var(--hairline);padding-top:12px;
}
.dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}
.stage-caption,.scene-caption{
  font-size:13px;color:var(--muted);margin:0;text-align:center;min-height:22px;
  padding:7px 18px;border-radius:100px;
  border:1px solid var(--hairline);background:var(--glass-strong);
  backdrop-filter:var(--glass-filter);box-shadow:var(--lift-1);
  font-family:var(--mono);letter-spacing:.03em;
}

.knocks{position:relative;height:62px;flex:0 0 auto;z-index:3;pointer-events:none}
.knock{
  position:absolute;inset:0 0 auto 0;
  border:1px solid var(--hairline);border-radius:15px;padding:11px 13px;
  background:var(--glass-strong);backdrop-filter:var(--glass-filter);
  box-shadow:var(--lift-2);
  display:flex;flex-direction:column;gap:2px;
  opacity:0;
}
.knock-k{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.knock-v{font-size:13px;color:var(--ink);letter-spacing:.005em}

.log-label{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);padding-left:3px}
.log{display:flex;flex-direction:column;gap:9px;padding-bottom:2px}
.rec{
  border:1px solid var(--hairline);border-left:2px solid var(--accent);
  border-radius:13px;padding:12px 13px;background:var(--glass-strong);backdrop-filter:var(--glass-filter);
  box-shadow:var(--lift-1);
  opacity:0;
}
.rec-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.num{font-size:12.5px;font-weight:500;letter-spacing:.01em}
.chip{
  font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent-deep);background:var(--accent-soft);
  border:1px solid rgba(47,107,79,.28);padding:3px 8px;border-radius:100px;white-space:nowrap;
}
.reason{font-size:11.5px;color:var(--muted);line-height:1.5;margin:7px 0 0}
.rec-act{display:flex;gap:12px;margin:10px 0 0;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.rec-act span{border-bottom:1px solid var(--hairline);padding-bottom:2px}

/* ---------- responsive: device only ---------- */
@media (max-width:980px){
  /* the centred layout must not reach inside the device: the app is left-aligned */
  .phone,.phone *{text-align:left}
}
@media (max-width:420px){
  .phone{width:270px;height:510px}
}
@media (prefers-reduced-motion:reduce){
  .knock{opacity:0}
  .rec{opacity:1}
}
