:root,[data-theme=dark]{--bg-base:#060810;--bg-surface:#0b0f18;--bg-card:#0f1420;--bg-card-hover:#141a28;--bg-elevated:#181f30;--bg-input:#0d1119;--text-primary:#e1e7f0;--text-secondary:#7a86a0;--text-muted:#4a5370;--accent:#06b6d4;--accent-bright:#22d3ee;--accent-dim:#0891b2;--accent-subtle:rgba(6,182,212,0.06);--accent-glow:rgba(6,182,212,0.12);--accent-border:rgba(6,182,212,0.18);--danger:#f43f5e;--danger-subtle:rgba(244,63,94,0.08);--danger-glow:rgba(244,63,94,0.12);--success:#10b981;--success-subtle:rgba(16,185,129,0.08);--success-glow:rgba(16,185,129,0.12);--warning:#f59e0b;--warning-subtle:rgba(245,158,11,0.08);--border:rgba(255,255,255,0.05);--border-subtle:rgba(255,255,255,0.03);--border-hover:rgba(255,255,255,0.09);--radius:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 4px 20px rgba(0,0,0,0.4);--shadow-lg:0 8px 40px rgba(0,0,0,0.5);--shadow-glow:0 0 30px var(--accent-glow);--grid-color:rgba(255,255,255,0.018);--glow-top:rgba(6,182,212,0.04);color-scheme:dark}[data-theme=light]{--bg-base:#f4f6f9;--bg-surface:#ffffff;--bg-card:#ffffff;--bg-card-hover:#f8f9fb;--bg-elevated:#ffffff;--bg-input:#f0f2f5;--text-primary:#0c1222;--text-secondary:#4b5563;--text-muted:#9ca3af;--accent:#0891b2;--accent-bright:#06b6d4;--accent-dim:#0e7490;--accent-subtle:rgba(8,145,178,0.04);--accent-glow:rgba(8,145,178,0.06);--accent-border:rgba(8,145,178,0.15);--danger:#e11d48;--danger-subtle:rgba(225,29,72,0.05);--danger-glow:rgba(225,29,72,0.06);--success:#059669;--success-subtle:rgba(5,150,105,0.05);--success-glow:rgba(5,150,105,0.06);--warning:#d97706;--warning-subtle:rgba(217,119,6,0.05);--border:rgba(0,0,0,0.06);--border-subtle:rgba(0,0,0,0.03);--border-hover:rgba(0,0,0,0.1);--shadow-sm:0 1px 3px rgba(0,0,0,0.04);--shadow-md:0 4px 20px rgba(0,0,0,0.06);--shadow-lg:0 8px 40px rgba(0,0,0,0.08);--shadow-glow:0 0 30px var(--accent-glow);--grid-color:rgba(0,0,0,0.02);--glow-top:rgba(8,145,178,0.03);color-scheme:light}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font-body),"DM Sans",-apple-system,sans-serif;background-color:var(--bg-base);color:var(--text-primary);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease;position:relative;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display),"Outfit",sans-serif;letter-spacing:-.025em;line-height:1.2}.mono,code{font-family:var(--font-mono),"JetBrains Mono",monospace}a{color:var(--accent);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent-bright)}.bg-grid{background-image:linear-gradient(var(--grid-color) 1px,transparent 1px),linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at 50% 30%,black 20%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 50% 30%,black 20%,transparent 70%)}.bg-glow,.bg-grid{position:fixed;inset:0;pointer-events:none;z-index:0}.bg-glow{background:radial-gradient(ellipse 80% 50% at 50% -10%,var(--glow-top) 0,transparent 100%);transition:background .3s ease}.page-wrapper{display:flex;flex-direction:column;min-height:100vh;position:relative;z-index:1}.page-wrapper>main{flex:1 1}.site-header{justify-content:flex-end;gap:.6rem;padding:1rem 1.25rem 0;position:relative;z-index:50}.auth-controls,.site-header{display:flex;align-items:center}.auth-controls{gap:.45rem}.auth-btn{display:inline-flex;align-items:center;gap:.4rem;height:36px;padding:0 .95rem;border-radius:999px;font-family:var(--font-display),"Outfit",sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.005em;cursor:pointer;border:1px solid transparent;transition:color .18s ease,background .18s ease,border-color .18s ease,box-shadow .25s ease,transform .15s ease;white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.auth-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg-base),0 0 0 4px var(--accent)}.auth-btn--ghost{background:var(--bg-card);color:var(--text-secondary);border-color:var(--border)}.auth-btn--ghost:hover{color:var(--text-primary);border-color:var(--accent-border);background:var(--bg-card-hover)}.auth-btn--solid{position:relative;background:var(--accent);color:#04121a;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-border),0 6px 18px -8px var(--accent-glow)}[data-theme=light] .auth-btn--solid{color:#ffffff}.auth-btn--solid:before{content:"";position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,0) 45%);pointer-events:none}.auth-btn--solid:hover{background:var(--accent-bright);border-color:var(--accent-bright);box-shadow:0 0 26px var(--accent-glow),0 6px 16px rgba(0,0,0,.25);transform:translateY(-1px)}.auth-btn--solid:active{transform:translateY(0)}.auth-btn--solid svg{opacity:.85;transform:translate(0);transition:transform .2s ease,opacity .2s ease}.auth-btn--solid:hover svg{opacity:1;transform:translate(2px,-2px)}@media (max-width:480px){.auth-btn{height:34px;padding:0 .8rem;font-size:.78rem}.auth-btn--solid svg{display:none}}.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:50%;background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:all .2s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.theme-toggle:hover{color:var(--accent);border-color:var(--accent-border);box-shadow:var(--shadow-glow);background:var(--bg-elevated)}.logo-container{display:flex;align-items:center;justify-content:center;gap:.35rem;padding:1.25rem 0 .5rem}.logo-container img{width:42px;height:42px;filter:drop-shadow(0 0 8px var(--accent-glow))}[data-theme=dark] .logo-container img{filter:drop-shadow(0 0 8px var(--accent-glow)) invert(1)}.logo-text{color:var(--text-primary)}.logo-text,.logo-text-safe{font-family:var(--font-display),"Outfit",sans-serif;font-size:1.4rem;font-weight:700;letter-spacing:-.03em}.logo-text-safe{color:var(--accent)}.container{max-width:800px;margin:0 auto;padding:2rem 1.5rem}.home-scanner{display:flex;flex-direction:column;align-items:center;max-width:500px;margin:0 auto;padding:0 1.25rem 3rem;gap:1.25rem}.home-scanner h1{font-size:2rem;font-weight:700;text-align:center;background:linear-gradient(135deg,var(--text-primary) 60%,var(--accent) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.home-subtitle{color:var(--text-secondary);text-align:center;font-size:.95rem;max-width:420px;line-height:1.65}.home-divider{display:flex;align-items:center;width:100%;gap:1rem;color:var(--text-muted);font-family:var(--font-mono),monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.15em}.home-divider:after,.home-divider:before{content:"";flex:1 1;height:1px;background:linear-gradient(90deg,transparent,var(--border-hover),transparent)}.home-submitting{color:var(--accent);font-size:.9rem;font-weight:500;animation:pulse-text 1.5s ease-in-out infinite}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.5}}.home-error{color:var(--danger);font-size:.9rem;text-align:center;padding:.5rem 1rem;background:var(--danger-subtle);border-radius:var(--radius);border:1px solid rgba(244,63,94,.1)}.qr-scanner{width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem}.qr-scanner-viewport{width:100%;max-width:360px;aspect-ratio:1;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;position:relative;box-shadow:var(--shadow-md)}.qr-scanner-viewport:after,.qr-scanner-viewport:before{content:"";position:absolute;z-index:5;pointer-events:none}.qr-scanner-viewport:before{top:12px;left:12px;width:28px;height:28px;border-top:2px solid var(--accent);border-left:2px solid var(--accent);border-top-left-radius:4px;box-shadow:calc(100% - 52px) 0 0 0 transparent}.qr-scanner-viewport:after{bottom:12px;right:12px;width:28px;height:28px;border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);border-bottom-right-radius:4px}.qr-scanner-video{width:100%;height:100%;object-fit:cover}.qr-scanner-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted);gap:.75rem;position:absolute;inset:0;background:var(--bg-surface);z-index:2}.qr-scanner-placeholder:after{content:"";position:absolute;left:20px;right:20px;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);animation:scan-line 3s ease-in-out infinite;opacity:.4}@keyframes scan-line{0%,to{top:20%}50%{top:80%}}.qr-scanner-placeholder p{font-size:.82rem;font-family:var(--font-mono),monospace;letter-spacing:.02em}.qr-scanner-warning{color:var(--warning);font-size:.82rem;text-align:center}.qr-scanner-toggle{padding:.7rem 2.25rem;background:var(--accent);color:#000;border:none;border-radius:var(--radius);font-family:var(--font-display),sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.01em;position:relative}.qr-scanner-toggle:hover{background:var(--accent-bright);box-shadow:0 0 24px var(--accent-glow),0 4px 12px rgba(0,0,0,.2);transform:translateY(-1px)}.qr-scanner-toggle:active{transform:translateY(0)}.file-upload{width:100%}.file-upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:1.75rem 1rem;border:1.5px dashed var(--border-hover);border-radius:var(--radius-lg);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:all .25s ease}.file-upload-dropzone--active,.file-upload-dropzone:hover{border-color:var(--accent);background:var(--accent-subtle);box-shadow:var(--shadow-glow);color:var(--text-primary)}.file-upload-dropzone p{font-size:.85rem;text-align:center}.file-upload-error{color:var(--danger);font-size:.82rem;text-align:center;margin-top:.5rem}.info-page{max-width:680px;margin:0 auto;padding:1rem 1.5rem 3rem}.info-page h1{font-size:1.75rem;font-weight:700;margin-bottom:1rem;color:var(--text-primary)}.info-page h2{font-size:1.15rem;font-weight:600;margin-top:2rem;margin-bottom:.5rem;color:var(--accent)}.info-page p{margin-bottom:1rem;line-height:1.75}.info-page p,.info-page ul{color:var(--text-secondary)}.info-page ul{margin:.5rem 0 1rem 1.5rem}.info-page li{margin-bottom:.4rem;line-height:1.65}.safety-alert{background:var(--bg-card);border-left:3px solid var(--warning);padding:1.25rem 1.5rem;border-radius:var(--radius);margin:1.5rem 0;box-shadow:var(--shadow-sm)}.safety-alert .highlight-text{font-size:1.05rem;font-weight:600;color:var(--text-primary);margin:0}.safety-tips,.solution-box,.warning-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;margin:1.5rem 0;box-shadow:var(--shadow-sm);transition:border-color .2s}.warning-box{border-left:3px solid var(--danger)}.solution-box{border-left:3px solid var(--success)}.safety-tips{border-left:3px solid var(--accent)}.safety-tips:hover,.solution-box:hover,.warning-box:hover{border-color:var(--border-hover)}.app-download{text-align:center;margin:2rem 0}.store-badges{display:flex;justify-content:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}.store-badges img{height:46px;transition:all .2s;border-radius:8px}.store-badges img:hover{opacity:.85;transform:translateY(-1px)}footer{text-align:center;padding:1.75rem 1rem;border-top:1px solid var(--border);color:var(--text-muted);font-size:.78rem;background:var(--bg-surface);letter-spacing:.01em}footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem .5rem;margin-bottom:.75rem}footer a{color:var(--text-secondary);transition:color .15s;padding:.15rem .3rem;border-radius:4px}footer a:hover{color:var(--accent);text-decoration:none}footer .footer-sep{color:var(--text-muted);opacity:.4;-webkit-user-select:none;-moz-user-select:none;user-select:none}footer .footer-copy{font-family:var(--font-mono),monospace;font-size:.7rem;color:var(--text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fade-up .5s ease-out both}@media (max-width:640px){.info-page{padding:1rem 1rem 2rem}.info-page h1{font-size:1.45rem}.home-scanner h1{font-size:1.6rem}.qr-scanner-viewport{max-width:280px}.logo-container img{width:34px;height:34px}.logo-text,.logo-text-safe{font-size:1.2rem}.site-header{padding:.75rem 1rem 0}}@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/98848575513c9742-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7b0b24f36b1a6d0b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Outfit Fallback;src:local("Arial");ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.00%;size-adjust:99.82%}.__className_ed3508{font-family:Outfit,Outfit Fallback;font-style:normal}.__variable_ed3508{--font-display:"Outfit","Outfit Fallback"}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans Fallback;src:local("Arial");ascent-override:94.90%;descent-override:29.66%;line-gap-override:0.00%;size-adjust:104.53%}.__className_0d7163{font-family:DM Sans,DM Sans Fallback;font-style:normal}.__variable_0d7163{--font-body:"DM Sans","DM Sans Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/886030b0b59bc5a7-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/0aa834ed78bf6d07-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/67957d42bae0796d-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/f911b923c6adde36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/939c4f875ee75fbb-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_3c557b{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_3c557b{--font-mono:"JetBrains Mono","JetBrains Mono Fallback"}