*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f5f7;--surface:#fff;--surface-hover:#fafafa;--border:#00000014;--accent:#0071e3;--accent-hover:#0077ed;--accent-active:#006edb;--purple:#5e5ce6;--text:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#86868b;--error:#ff3b30;--radius:18px;--radius-sm:12px;--radius-pill:980px;--shadow-card:0 2px 12px #00000014, 0 0 1px #0000001a;--shadow-elevated:0 8px 40px #0000001f, 0 0 1px #00000014;--transition:.25s cubic-bezier(.25, .1, .25, 1)}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;justify-content:center;align-items:center;min-height:100vh;padding:24px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Arial,sans-serif;display:flex}.backdrop{pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 50% -10%,#5e5ce60f,#0000),radial-gradient(60% 50% at 80% 110%,#0071e30a,#0000);position:fixed;inset:0}.container{z-index:1;width:100%;max-width:420px;position:relative}header{text-align:center;margin-bottom:40px}.icon{margin-bottom:16px;display:inline-block}h1{letter-spacing:-.04em;color:var(--text);font-size:2rem;font-weight:700;line-height:1.1}.subtitle{color:var(--text-secondary);letter-spacing:-.01em;margin-top:6px;font-size:1.0625rem;font-weight:400}.input-pill{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);box-shadow:var(--shadow-card);transition:box-shadow var(--transition), border-color var(--transition);align-items:center;padding:6px 6px 6px 22px;display:flex}.input-pill:focus-within{box-shadow:var(--shadow-card), 0 0 0 4px #0071e31a;border-color:#0071e34d}.input-pill input{color:var(--text);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:10px 0;font-family:inherit;font-size:1.0625rem}.input-pill input::placeholder{color:var(--text-tertiary)}.input-pill button{background:var(--accent);color:#fff;cursor:pointer;width:44px;height:44px;transition:background var(--transition), transform .15s ease;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.input-pill button:hover{background:var(--accent-hover)}.input-pill button:active{background:var(--accent-active);transform:scale(.94)}.output{flex-direction:column;align-items:center;gap:20px;margin-top:32px;animation:.4s appear;display:flex}@keyframes appear{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.qr-card{background:var(--surface);box-shadow:var(--shadow-elevated);border:1px solid var(--border);border-radius:22px;padding:28px;position:relative;overflow:hidden}.qr-card:before{content:"";-webkit-backdrop-filter:blur(20px);z-index:0;background:linear-gradient(#fffc,#fff6);position:absolute;inset:0}.qr-card canvas{z-index:1;width:240px;height:240px;image-rendering:pixelated;border-radius:8px;display:block;position:relative}.actions{gap:10px;width:100%;display:flex}.actions button{border-radius:var(--radius-pill);cursor:pointer;transition:background var(--transition), transform .15s ease, box-shadow var(--transition);letter-spacing:-.01em;flex:1;justify-content:center;align-items:center;gap:7px;padding:14px 20px;font-family:inherit;font-size:.9375rem;font-weight:500;display:flex}.actions button:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff;border:none;box-shadow:0 1px 3px #0071e34d}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 2px 8px #0071e359}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-card)}.btn-secondary:hover{background:var(--surface-hover)}.btn-secondary.copied{color:#34c759;border-color:#34c7594d}.error{border-radius:var(--radius-sm);color:var(--error);text-align:center;background:#ff3b300f;border:1px solid #ff3b3026;margin-top:16px;padding:12px 18px;font-size:.875rem;font-weight:400}.hidden{display:none!important}@media (width<=480px){h1{font-size:1.625rem}.qr-card{padding:20px}.qr-card canvas{width:200px;height:200px}.actions{flex-direction:column}}
