:root{color:#171714;font-synthesis:none;text-rendering:optimizelegibility;--ink:#171714;--muted:#74736e;--surface:#fff;--canvas:#f6f5f2;--accent:#ff5c35;--line:#1717141f;--shadow:0 20px 50px #251e1924;background:#f6f5f2;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 0%, #ff5c3517, transparent 32%), var(--canvas);min-width:320px;min-height:100dvh;margin:0}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #4568dc59}.app-shell{width:min(100%,720px);min-height:100dvh;padding:max(28px, env(safe-area-inset-top)) 20px max(32px, env(safe-area-inset-bottom));margin:0 auto;position:relative}.app-header,.sheet-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.app-header h1,.sheet-header h2{letter-spacing:-.055em;margin:5px 0 0;font-size:clamp(2rem,9vw,3.5rem);line-height:.95}.eyebrow{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:750}.eyebrow--light{color:#ffffffad}.wallet-mark{background:var(--ink);border-radius:15px;flex:none;place-items:center;width:47px;height:47px;display:grid;box-shadow:0 10px 22px #1717142e}.wallet-mark span{border:2px solid #fff;border-radius:5px;width:23px;height:16px}.wallet-mark span:after{background:var(--accent);content:"";border-radius:50%;width:5px;height:5px;margin:3px 0 0 13px;display:block}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100dvh - 130px);padding:30px 18px 80px;display:flex}.empty-state h2{letter-spacing:-.055em;max-width:390px;margin:12px 0;font-size:clamp(2rem,10vw,3.1rem);line-height:.98}.empty-state p{max-width:350px;color:var(--muted);margin:0 0 28px;font-size:1rem;line-height:1.55}.empty-visual{width:220px;height:175px;margin-bottom:24px;position:relative}.empty-card{width:174px;height:108px;box-shadow:var(--shadow);border-radius:23px;display:block;position:absolute;left:50%}.empty-card--back{background:#ffbda8;top:5px;transform:translate(-50%)rotate(-9deg)}.empty-card--front{background:var(--accent);justify-content:flex-end;align-items:flex-end;padding:16px;display:flex;bottom:4px;transform:translate(-50%)rotate(5deg)}.empty-card--front .wallet-mark{transform-origin:100% 100%;transform:scale(.72)}.primary-button,.floating-button{color:#fff;background:var(--ink);cursor:pointer;border:0;font-weight:720}.primary-button{border-radius:18px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:56px;padding:0 24px;display:flex;box-shadow:0 12px 24px #17171429}.primary-button--compact{width:auto}.primary-button svg,.secondary-button svg,.floating-button svg,.icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2px;width:22px;height:22px}.primary-button:disabled{opacity:.42;cursor:not-allowed}.wallet-grid{gap:14px;padding:36px 0 96px;display:grid}.wallet-card{color:#fff;cursor:pointer;text-align:left;border:0;border-radius:26px;flex-direction:column;justify-content:flex-end;align-items:flex-start;min-height:186px;padding:22px;transition:transform .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden;box-shadow:0 13px 28px #1f1b1826}.wallet-card:after{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff29,#0000 42%,#0000001f);position:absolute;inset:0}.wallet-card:active{transform:scale(.985)}.wallet-card__monogram{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff3;border:1px solid #ffffff40;border-radius:15px;place-items:center;width:46px;height:46px;font-size:1.15rem;font-weight:780;display:grid;position:absolute;top:19px;left:20px}.wallet-card__type{color:#ffffffba;letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:760;position:absolute;top:25px;right:22px}.wallet-card strong{z-index:1;letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:1.55rem;position:relative;overflow:hidden}.wallet-card__number{z-index:1;color:#ffffffb3;letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;width:75%;margin-top:5px;font-size:.85rem;position:relative;overflow:hidden}.floating-button{right:max(22px,50vw - 338px);bottom:max(22px, env(safe-area-inset-bottom));z-index:4;border-radius:20px;place-items:center;width:58px;height:58px;display:grid;position:fixed;box-shadow:0 16px 30px #17171447}.loading-state{color:var(--muted);text-align:center;padding-top:45vh}.sheet-backdrop{z-index:10;padding-top:max(10px, env(safe-area-inset-top));-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#1717146b;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:min(100%,720px);max-height:calc(100dvh - max(10px, env(safe-area-inset-top)));padding:12px 16px max(12px, env(safe-area-inset-bottom));background:var(--canvas);border-radius:22px 22px 0 0;overflow-y:auto;box-shadow:0 -18px 60px #1412102e}.sheet-header{align-items:center;gap:12px}.sheet-header .eyebrow{line-height:1.1}.sheet-header h2{letter-spacing:-.04em;margin:1px 0 0;font-size:1.4rem;line-height:1.05}.icon-button{width:44px;height:44px;color:var(--ink);cursor:pointer;background:#17171412;border:0;border-radius:15px;flex:none;place-items:center;display:grid}.icon-button--glass{top:max(20px, env(safe-area-inset-top));z-index:2;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff2e;position:absolute;right:20px}.card-form{gap:10px;margin-top:12px;display:grid}.card-form label,.card-form fieldset{border:0;gap:8px;margin:0;padding:0;display:grid}.card-form label>span,.card-form legend{color:var(--muted);margin:0;padding:0;font-size:.75rem;font-weight:730;line-height:1.2}.card-form input{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);background:var(--surface);border-radius:14px;padding:0 14px;font-size:1rem;box-shadow:0 5px 14px #1b18150a}.card-form .primary-button{border-radius:16px;min-height:48px}.segmented-control{background:#17171412;border-radius:16px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.segmented-control button{min-height:43px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:13px;font-weight:700}.segmented-control .is-active{color:var(--ink);background:#fff;box-shadow:0 4px 11px #14121014}.color-picker{align-items:center;gap:8px;min-height:44px;display:flex}.color-picker button{border:3px solid var(--canvas);cursor:pointer;border-radius:50%;width:44px;height:44px;box-shadow:0 0 0 1px #1717141f}.color-picker button.is-selected{box-shadow:0 0 0 3px var(--ink)}.preview{gap:11px;display:grid}.barcode-frame{background:#fff;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-height:150px;padding:20px;display:flex;overflow:hidden}.barcode-frame canvas{width:auto;max-width:100%;height:auto;max-height:230px;display:block}.barcode-frame--qr canvas{width:min(100%,240px)}.barcode-digits{color:#171714;font-variant-numeric:tabular-nums;letter-spacing:.12em;overflow-wrap:anywhere;text-align:center;margin:14px 0 0;font-size:1.05rem;font-weight:720}.barcode-error{color:#a12d18;text-align:center;font-size:.9rem}.form-error{color:#a12d18;text-align:center;margin:-6px 0 0;font-size:.88rem}.detail{z-index:20;background:var(--canvas);position:fixed;inset:0;overflow-y:auto}.detail-top{color:#fff;align-items:flex-end;min-height:40dvh;padding:34px 24px;display:flex;position:relative;overflow:hidden}.detail-top:after{content:"";background:linear-gradient(155deg,#fff3,#0000 48%,#00000024);position:absolute;inset:0}.detail-identity{z-index:1;position:relative}.detail-identity h2{letter-spacing:-.055em;margin:6px 0 0;font-size:clamp(2.4rem,12vw,4rem);line-height:.95}.detail-monogram{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff2e;border:1px solid #ffffff40;border-radius:19px;place-items:center;width:62px;height:62px;margin-bottom:24px;font-size:1.6rem;font-weight:800;display:grid}.detail-code{text-align:center;width:min(100%,660px);margin:0 auto;padding:26px 20px 22px}.detail-code .barcode-frame{border:1px solid #17171414;min-height:210px;box-shadow:0 15px 35px #1b181514}.detail-code>span{color:var(--muted);margin-top:16px;font-size:.83rem;display:block}.delete-button{min-height:48px;margin:4px auto max(28px, env(safe-area-inset-bottom));color:#a12d18;cursor:pointer;background:0 0;border:0;padding:0 20px;font-weight:700;display:block}@media (width>=620px){.wallet-grid{grid-template-columns:repeat(2,1fr)}.sheet-backdrop{align-items:center;padding:30px}.sheet{border-radius:30px;max-width:560px}.detail{width:min(100%,720px);left:50%;transform:translate(-50%);box-shadow:0 0 70px #17171438}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.capture-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.capture-actions .secondary-button{white-space:nowrap;gap:6px;padding:0 8px;font-size:.8125rem;line-height:1.1}.capture-actions .secondary-button svg{flex:none;width:18px;height:18px}.secondary-button{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);background:var(--surface);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:8px;font-weight:720;display:flex;box-shadow:0 5px 14px #1b18150a}.secondary-button:disabled{opacity:.5;cursor:not-allowed}.capture-status{color:var(--ink);margin:0;font-size:.86rem;font-weight:650;line-height:1.3}.format-override{color:var(--muted)}.format-override summary{cursor:pointer;align-items:center;min-height:44px;padding:0;font-size:.86rem;font-weight:650;line-height:1.2;display:flex}.format-override summary:focus-visible{outline-offset:3px;outline:3px solid #4568dc59}.format-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.format-picker button{min-height:44px;color:var(--muted);cursor:pointer;background:#17171412;border:0;border-radius:13px;padding:8px 6px;font-size:.86rem;font-weight:720}.format-picker button.is-active{color:var(--ink);background:#fff;box-shadow:0 4px 11px #14121014}.scanner{z-index:40;color:#fff;background:#050505;position:fixed;inset:0}.scanner-video{z-index:0;object-fit:cover;background:#050505;width:100%;height:100%;position:absolute;inset:0}.scanner-video[data-active=false]{visibility:hidden}.scanner-frame{z-index:1;aspect-ratio:1.45;border:2px solid #fffffff0;border-radius:28px;width:min(84vw,420px);position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000085}.scanner-frame.is-found{border-color:#fff;box-shadow:0 0 0 100vmax #0000009e,inset 0 0 0 4px #b7f0c8}.scanner-check{color:#171714;background:#fff;border-radius:50%;place-items:center;width:76px;height:76px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scanner-check svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px;width:36px;height:36px}.scanner-line{background:var(--accent);height:2px;animation:2.2s ease-in-out infinite scanner-sweep;position:absolute;left:8%;right:8%}@keyframes scanner-sweep{0%{top:14%}to{top:86%}}.scanner-chrome{z-index:2;pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0}.scanner-chrome button{pointer-events:auto}.scanner-top{padding:max(12px, env(safe-area-inset-top)) 16px 0;justify-content:flex-end;display:flex}.scanner-bottom{padding:22px 16px max(18px, env(safe-area-inset-bottom));pointer-events:auto;background:linear-gradient(#0000,#000000d1 32%)}.scanner-bottom h2{letter-spacing:-.04em;margin:0 0 6px;font-size:1.7rem}.scanner-bottom p{color:#ffffffe0;min-height:3.3em;margin:0 0 14px;font-size:.98rem;line-height:1.4}.scanner-actions{gap:10px;display:grid}.scanner-actions button{min-height:52px;font:inherit;cursor:pointer;border-radius:16px;font-weight:720}.scanner-actions button:disabled{opacity:.55;cursor:not-allowed}.scanner-primary{color:#171714;background:#fff;border:0}.scanner-quiet{color:#fff;background:#00000047;border:1px solid #ffffff6b}@media (prefers-reduced-motion:reduce){.scanner-line{animation:none;top:50%}}
