.qr-page{min-height:100vh;background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(var(--nav-h) + 2rem) 1.5rem 3rem;gap:2rem}.qr-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:2rem;width:100%;max-width:460px;text-align:center}.qr-card h1{font-family:var(--font-display);font-size:1.6rem;color:#fff;margin-bottom:.5rem}.qr-card .qr-sub{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem}.qr-viewport{position:relative;width:100%;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:#000;margin-bottom:1rem}#qrVideo{width:100%;height:100%;object-fit:cover;display:block}#qrCanvas{display:none}.qr-aim{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.qr-aim__box{width:60%;aspect-ratio:1/1;border:2px solid rgba(212,160,23,.7);border-radius:8px;box-shadow:0 0 0 9999px #00000073;position:relative}.qr-aim__box:before,.qr-aim__box:after,.qr-aim__tl,.qr-aim__tr,.qr-aim__bl,.qr-aim__br{content:"";position:absolute;width:18px;height:18px;border-color:var(--gold);border-style:solid}.qr-aim__box:before{top:-2px;left:-2px;border-width:3px 0 0 3px;border-radius:6px 0 0}.qr-aim__box:after{top:-2px;right:-2px;border-width:3px 3px 0 0;border-radius:0 6px 0 0}.qr-aim__tl{bottom:-2px;left:-2px;border-width:0 0 3px 3px;border-radius:0 0 0 6px}.qr-aim__tr{bottom:-2px;right:-2px;border-width:0 3px 3px 0;border-radius:0 0 6px}.qr-status{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:#ffffff73;margin-bottom:1.2rem;min-height:1.4em;transition:color .3s}.qr-status.found{color:#6fcf97}.qr-status.error{color:#eb5757}#qrStartBtn{width:100%;padding:13px;background:linear-gradient(135deg,#b8872ae6,#d4a017e6);border:none;border-radius:10px;color:#000;font-family:var(--font-mono);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:opacity .2s,transform .15s}#qrStartBtn:hover{opacity:.88;transform:translateY(-1px)}#qrStartBtn:active{transform:translateY(0)}#qrStartBtn:disabled{opacity:.4;cursor:default;transform:none}#qrResult{display:none;background:#6fcf9712;border:1px solid rgba(111,207,151,.3);border-radius:12px;padding:1.25rem;margin-top:.75rem;text-align:left}#qrResult .qr-result__label{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:#6fcf97;margin-bottom:.5rem}#qrResult .qr-result__url{font-size:.82rem;color:#fffc;word-break:break-all;margin-bottom:1rem}#qrResult .qr-result__goto{display:inline-flex;align-items:center;gap:.5rem;background:#6fcf97;color:#0a0905;padding:9px 20px;border-radius:8px;font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;transition:opacity .2s;width:100%;justify-content:center}#qrResult .qr-result__goto:hover{opacity:.82}#qrResult .qr-result__rescan{display:block;margin-top:.6rem;text-align:center;font-family:var(--font-mono);font-size:.65rem;color:#ffffff4d;cursor:pointer;letter-spacing:.1em;text-transform:uppercase;background:none;border:none;width:100%}#qrResult .qr-result__rescan:hover{color:#fff9}.qr-tips{font-size:.78rem;color:#ffffff4d;line-height:1.6;text-align:center;max-width:340px}.qr-gen-card{background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:1.5rem;width:100%;max-width:460px}.qr-gen-card h2{font-family:var(--font-display);font-size:1.1rem;color:#fff;margin-bottom:.35rem}.qr-gen-card p{font-size:.8rem;color:#fff6;margin-bottom:1rem}.qr-gen-input-row{display:flex;gap:.5rem}.qr-gen-input-row input{flex:1;padding:9px 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-family:var(--font-mono);font-size:.78rem;outline:none}.qr-gen-input-row input:focus{border-color:#d4a01780}.qr-gen-input-row button{padding:9px 16px;background:#d4a01726;border:1px solid rgba(212,160,23,.35);border-radius:8px;color:var(--gold);font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:background .2s}.qr-gen-input-row button:hover{background:#d4a01740}#genQrPreview{display:none;flex-direction:column;align-items:center;gap:.75rem;margin-top:1rem}#genQrCanvas{border-radius:8px;background:#fff;padding:10px}#genQrDownload{font-family:var(--font-mono);font-size:.7rem;color:#ffffff80;text-decoration:underline;cursor:pointer;background:none;border:none;letter-spacing:.08em}#genQrDownload:hover{color:var(--gold)}
