@font-face{font-family:DenimINK;font-style:normal;font-weight:400;src:url(/fonts/DenimINK-Regular.otf)format("opentype")}@font-face{font-family:DenimINK;font-style:normal;font-weight:600;src:url(/fonts/DenimINK-SemiBold.otf)format("opentype")}:root{--carbon-black:#101820;--on-carbon-black:#fff;--copper-rust:#faaf3b;--pale-graphite:#98a2a0;--platinum:#dce6e4;--ember:#d8692d;--rustwood-red:#973b26;--bg:var(--carbon-black);--card:#1c2630;--fg:var(--on-carbon-black);--muted:var(--pale-graphite);--accent:var(--copper-rust);--on-accent:var(--carbon-black);--danger:var(--ember)}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--fg);min-height:100vh;margin:0;font-family:DenimINK,system-ui,-apple-system,Segoe UI,sans-serif}#app{max-width:28rem;min-height:100dvh;padding:1.5rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));margin:0 auto}#app-view{flex-direction:column;min-height:calc(100dvh - 3rem);display:flex}#card-view{flex-direction:column;flex:1;justify-content:center;display:flex}h1{letter-spacing:-.02em;font-size:1.75rem;font-weight:600}.topbar{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.icon-btn{width:2.5rem;height:2.5rem;color:var(--pale-graphite);background:0 0;border-radius:.75rem;justify-content:center;align-items:center;padding:0;transition:color .15s;display:inline-flex}.icon-btn svg{width:1.35rem;height:1.35rem;display:block}.icon-btn:hover{color:var(--on-carbon-black)}.lockup{width:225px;height:auto;margin:3.125rem auto 3.75rem;display:block}.signin{flex-direction:column;justify-content:center;align-items:center;gap:2rem;min-height:calc(100dvh - 3rem);display:flex}.signin-lockup{width:240px;margin:0}.signin .primary{width:auto;min-width:12rem}.qr-wrap{aspect-ratio:1;width:min(100%,75vw,35vh);margin:0 auto}#qr{width:100%;height:100%;display:block}.hint{color:var(--muted);text-align:center;font-size:.85rem}.preview{text-align:center;margin:2.19rem 0 1.25rem}.preview .name{letter-spacing:-.01em;font-size:1.5rem;font-weight:400}.preview .title{color:var(--fg);margin-top:.35rem;font-size:.95rem}.preview .detail{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-top:.85rem;font-size:.8rem}.preview .contact{color:var(--muted);margin-top:.85rem;font-size:.85rem}.preview .contact+.contact{margin-top:.25rem}.scan-line{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;justify-content:center;align-items:center;gap:.55rem;margin:2.5rem 0 1.875rem;font-size:.8rem;display:flex}.scan-dot{background:var(--accent);border-radius:50%;width:.55rem;height:.55rem;animation:1.8s ease-in-out infinite scan-pulse}@keyframes scan-pulse{0%,to{opacity:.4;transform:scale(.85);box-shadow:0 0 #faaf3b80}50%{opacity:1;transform:scale(1);box-shadow:0 0 0 .4rem #faaf3b00}}@media (prefers-reduced-motion:reduce){.scan-dot{opacity:1;animation:none}}.card-actions{flex-direction:column;align-items:center;gap:.25rem;display:flex}.form{flex-direction:column;gap:.75rem;margin:1rem 0;display:flex}.field{flex-direction:column;gap:.25rem;display:flex}.field span{color:var(--muted);font-size:.8rem}input[type=text],input[type=tel],input[type=email],input[type=url],input:not([type]){background:var(--card);color:var(--fg);border:1px solid #94a3b840;border-radius:.5rem;padding:.6rem .75rem;font-size:1rem}input:focus{outline:2px solid var(--accent);border-color:#0000}.toggles{border:1px solid #94a3b840;border-radius:.5rem;flex-direction:column;gap:.6rem;margin-top:.5rem;padding:.75rem 1rem 1rem;display:flex}.toggles legend{color:var(--muted);padding:0 .4rem;font-size:.8rem}.toggle{cursor:pointer;align-items:center;gap:.6rem;font-size:.95rem;display:flex}.toggle input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--accent);cursor:pointer}button{font:inherit;cursor:pointer;border:none;border-radius:.5rem}.primary{background:var(--accent);color:var(--on-accent);width:100%;padding:.75rem 1.25rem;font-weight:600}.ghost{color:var(--fg);background:0 0;border:1px solid #dce6e440;padding:.5rem 1.25rem;font-size:.85rem;transition:border-color .15s,background .15s}.ghost:hover{border-color:var(--accent);background:#faaf3b14}.link{color:var(--muted);background:0 0;padding:.5rem;font-size:.8rem}.link.danger{color:var(--danger)}.actions{flex-direction:column;align-items:center;gap:.5rem;display:flex}.status{text-align:center;color:var(--muted);min-height:1.2em}
