

.card-body{background:var(--concrete);min-height:100dvh}
.card{
  max-width:30rem;margin:0 auto;
  padding:max(1rem,env(safe-area-inset-top)) 1rem max(1.5rem,env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:1rem;
  background:transparent;border:0;
}

.card-face{
  position:relative;overflow:hidden;
  background:var(--paper);border:2px solid var(--iron);
  padding:1.4rem 1.25rem 1.25rem;
}
.card-stripe{position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--hazard)}
.card-kicker{
  margin:0 0 .6rem;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.6875rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--hazard);
}
.card-name{
  margin:0;font-size:clamp(2.2rem,11vw,3rem);line-height:.95;letter-spacing:-.02em;
  font-variation-settings:"wdth" 120,"wght" 800;font-weight:normal;
}
.card-title{margin:.55rem 0 0;font-variation-settings:"wdth" 104,"wght" 650;font-size:1.0625rem;line-height:1.3}
.card-line{margin:.6rem 0 0;color:var(--steel);font-size:.9375rem;line-height:1.5}
.card-where{margin:.75rem 0 0;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.75rem;color:var(--mono-dim)}

.card-qr{display:flex;flex-direction:column;align-items:center;gap:.7rem}
.qr-switch{display:flex;border:2px solid var(--iron);width:100%}
.qr-switch button{
  flex:1;font:inherit;font-size:.875rem;white-space:nowrap;font-variation-settings:"wdth" 104,"wght" 650;
  padding:.6rem .5rem;border:0;background:transparent;color:var(--iron);cursor:pointer;min-height:44px;
}
.qr-switch button + button{border-left:2px solid var(--iron)}
.qr-switch button[aria-selected="true"]{background:var(--iron);color:var(--on-iron)}
.qr-plate{
  display:block;width:min(100%,17rem);aspect-ratio:1;padding:.75rem;border:0;cursor:zoom-in;
  background:#fff;box-shadow:0 0 0 2px var(--iron);
}
.qr-plate img{display:block;width:100%;height:100%;image-rendering:pixelated}
.qr-cap{margin:0;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.75rem;color:var(--steel)}

.card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;background:var(--line);border:2px solid var(--iron)}
.ca{
  display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.25rem;
  font:inherit;font-size:1rem;font-variation-settings:"wdth" 104,"wght" 650;
  background:var(--paper);color:var(--iron);text-decoration:none;border:0;cursor:pointer;
}
.ca svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ca-main{grid-column:1 / -1;background:var(--hazard);color:var(--on-iron)}
.ca:active{filter:brightness(1.15)}

.card-links{display:flex;flex-direction:column;border-top:2px solid var(--iron)}
.card-links a{
  display:flex;flex-direction:column;gap:.1rem;padding:.75rem .1rem;
  border-bottom:1px solid var(--line);text-decoration:none;color:var(--iron);
}
.card-links b{font-variation-settings:"wdth" 104,"wght" 700;font-weight:normal}
.card-links b::after{content:" →";color:var(--hazard)}
.card-links span{font-size:.8125rem;color:var(--steel)}

.card-contact{
  margin:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.8125rem;
}
.card-contact a{color:var(--steel);text-decoration:none}

.qr-full{
  position:fixed;inset:0;z-index:100;background:#fff;color:#111;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;
  padding:max(1rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));
}
.qr-full[hidden]{display:none}
.qr-full img{width:min(92vw,80dvh);height:auto;image-rendering:pixelated}
.qr-full p{margin:0;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.875rem;color:#444}
.qr-full-x{
  position:absolute;top:max(.75rem,env(safe-area-inset-top));right:.75rem;
  font:inherit;font-variation-settings:"wdth" 104,"wght" 700;font-size:1rem;
  padding:.6rem 1rem;min-height:44px;border:2px solid #111;background:#fff;color:#111;cursor:pointer;
}
