.intro-overlay{z-index:100;background:#000000d1;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.intro-box{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;width:100%;max-width:420px;padding:1.8rem}.intro-box h2{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:1rem;font-size:1rem;font-weight:600}.intro-box p{color:#bbb;margin-bottom:.8rem;font-size:.9rem;line-height:1.6}.intro-box p:last-of-type{margin-bottom:1.4rem}.intro-box details{border:1px solid var(--color-border);border-radius:8px;margin-bottom:1.4rem;overflow:hidden}.intro-box summary{color:var(--color-text-muted);cursor:pointer;background:#0e0e1a;align-items:center;gap:.5rem;padding:.6rem .8rem;font-size:.85rem;font-weight:600;list-style:none;display:flex}.intro-box summary:after{content:"›";margin-left:auto;transition:transform .2s}.intro-box details[open] summary:after{transform:rotate(90deg)}.install-steps{background:#0a0a14;padding:.7rem .9rem}.install-steps ol{flex-direction:column;gap:.35rem;margin:0;padding-left:1.2rem;display:flex}.install-steps li{color:#bbb;font-size:.82rem;line-height:1.5}.app-shell{background:var(--color-canvas);min-height:100dvh;color:var(--color-text);flex-direction:column;align-items:center;display:flex}.app-header h1{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);padding:1rem;font-size:1.1rem;font-weight:600}.app-main{flex-direction:column;align-items:center;width:100%;max-width:480px;padding:0 0 2rem;display:flex}.camera-container{width:100%;max-width:480px;position:relative}.camera-canvas{cursor:pointer;background:#111;border-radius:8px;width:100%;display:block}.tap-hint{color:#ccc;pointer-events:none;white-space:nowrap;background:#00000080;border-radius:12px;padding:3px 8px;font-size:.7rem;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.flash-overlay{opacity:.75;pointer-events:none;background:#fff;border-radius:8px;animation:.1s ease-out forwards flash-fade;position:absolute;inset:0}@keyframes flash-fade{0%{opacity:.75}to{opacity:0}}.timer-ring{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.timer-text{color:var(--color-accent);text-shadow:0 0 20px #ffe066b3;font-variant-numeric:tabular-nums;font-size:3.5rem;font-weight:700}.status{text-align:center;min-height:2rem;color:var(--color-text);margin:1.2rem 1rem 0;font-size:1.3rem;font-weight:500}.status.flash{color:var(--color-accent)}.status.thunder{color:var(--color-thunder,#60b8ff)}.status.result{color:var(--color-success)}.bright-warning{color:var(--color-warning);text-align:center;padding:.3rem 1rem;font-size:.8rem}.result-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;width:calc(100% - 2rem);margin:1rem;padding:1rem 1.5rem}.result-main{color:var(--color-success);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.result-sub{color:#888;margin-top:.3rem;font-size:.9rem}.history-section{width:100%;padding:0 1rem}.history-heading{text-transform:uppercase;letter-spacing:.1em;color:#555;margin-bottom:.5rem;font-size:.7rem}.history-list{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.history-item{background:var(--color-surface-raised);color:#aaa;font-variant-numeric:tabular-nums;border:1px solid #333;border-radius:6px;padding:.3rem .6rem;font-size:.8rem}.lum-display{color:#444;font-variant-numeric:tabular-nums;text-align:center;margin-top:.4rem;font-size:.7rem}.controls{flex-direction:column;gap:.8rem;width:100%;padding:1rem;display:flex}.slider-row{align-items:center;gap:.8rem;display:flex}.slider-row label{color:#777;flex-shrink:0;width:7rem;font-size:.75rem}.slider-row input[type=range]{accent-color:var(--color-accent);flex:1}.slider-row span{color:#bbb;text-align:right;font-variant-numeric:tabular-nums;width:3.5rem;font-size:.75rem}.btn-primary,.btn-start,.btn-flash,.btn-reset{cursor:pointer;border-radius:8px;width:calc(100% - 2rem);margin:0 auto .5rem;font-size:1rem;transition:background .15s,border-color .15s,color .15s;display:block}.btn-primary{background:var(--color-primary);color:var(--color-on-primary);border:1px solid #444;padding:.75rem}.btn-primary:hover{background:#3a3a58}.btn-start{background:var(--color-primary);color:var(--color-on-primary);border:1px solid #444;padding:.9rem}.btn-start:hover{background:#3a3a58}.btn-start.running{color:#f88;background:#3a0808;border-color:#a22;font-weight:600}.btn-start.running:hover{background:#4a1010}.btn-flash{border:2px solid var(--color-accent);color:var(--color-accent);background:#2a200a;padding:1.1rem;font-weight:600}.btn-flash:active{background:#3a300a}.btn-reset{color:#666;background:0 0;border:1px solid #333;padding:.6rem;font-size:.85rem}.btn-reset:hover{color:#aaa;border-color:#555}.permission-hint{color:#888;text-align:center;padding:.4rem 1rem 0;font-size:.78rem;line-height:1.5}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-canvas:#0a0a0f;--color-surface:#12121e;--color-surface-raised:#1a1a2e;--color-text:#e0e0e0;--color-text-muted:#a0a0c0;--color-border:#2a2a50;--color-primary:#2a2a40;--color-on-primary:#e0e0e0;--color-accent:#ffe066;--color-focus:#ffe066;--color-success:#7fff7f;--color-warning:#ff8c42;--color-danger:#f88;--color-thunder:#60b8ff;--font-ui:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:clamp(1.35rem, 3vw, 1.75rem);--text-display:clamp(2.35rem, 8vw, 5.5rem);--leading-tight:1.05;--leading-normal:1.55;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.5rem;--radius-md:.85rem;--radius-lg:1.35rem;--radius-pill:999px;--shadow-raised:0 18px 50px #2b261d1a;--control-height:2.75rem;--content-width:74rem;--motion-fast:.14s;--motion-normal:.22s;--ease-standard:cubic-bezier(.2, 0, 0, 1)}*{box-sizing:border-box}html{background:var(--color-canvas);min-height:100%;font-family:var(--font-ui);color:var(--color-text);text-rendering:optimizelegibility}body{background:radial-gradient(circle at 90% 5%, color-mix(in srgb, var(--color-accent) 12%, transparent), transparent 24rem), var(--color-canvas);min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.app-header,main,footer{width:min(100% - 2rem, var(--content-width));margin-inline:auto}.app-header{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:5rem;padding-top:env(safe-area-inset-top);display:flex}.brand{align-items:center;gap:var(--space-3);color:inherit;font-weight:720;text-decoration:none;display:inline-flex}.brand-mark{width:2.25rem;height:2.25rem;color:var(--color-on-primary);background:var(--color-primary);border-radius:35% 65% 62% 38%/43% 38% 62% 57%;place-items:center;display:grid}main{padding-block:clamp(3rem, 9vw, 8rem) var(--space-16)}.hero{max-width:58rem}.eyebrow,.card-number{color:var(--color-primary);font-size:var(--text-xs);letter-spacing:.13em;text-transform:uppercase;font-weight:800}h1,h2,h3,p{margin-top:0}h1{max-width:12ch;margin-bottom:var(--space-6);font-size:var(--text-display);letter-spacing:-.055em;font-weight:650;line-height:var(--leading-tight)}h2{margin-bottom:var(--space-3);font-size:var(--text-xl);letter-spacing:-.025em}h3{margin-top:var(--space-8);margin-bottom:var(--space-2)}p,li{line-height:var(--leading-normal)}.hero-copy{max-width:62ch;margin-bottom:var(--space-8);color:var(--color-text-muted);font-size:var(--text-lg)}.button,.icon-button,.text-button{cursor:pointer;border:0}.button{min-height:var(--control-height);justify-content:center;align-items:center;gap:var(--space-2);padding:0 var(--space-5);border-radius:var(--radius-pill);transition:transform var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);font-weight:700;display:inline-flex}.button:active{transform:translateY(1px)}.button-primary{color:var(--color-on-primary);background:var(--color-primary)}.button-primary:hover{background:var(--color-primary-hover)}.button-secondary{border:1px solid var(--color-border);color:var(--color-text);background:color-mix(in srgb, var(--color-surface) 78%, transparent)}.button-small{min-height:2.25rem;padding-inline:var(--space-4);font-size:var(--text-sm)}.text-button{align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-2);color:var(--color-primary);background:0 0;font-weight:700;display:inline-flex}.icon-button{width:2.75rem;height:2.75rem;color:var(--color-text);background:0 0;border-radius:50%;place-items:center;display:grid}.feature-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);margin-top:clamp(4rem,10vw,8rem);display:grid}.card{min-height:15rem;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--color-surface) 88%, transparent)}.card p:last-child,.muted{color:var(--color-text-muted)}footer{padding-block:var(--space-8) calc(var(--space-8) + env(safe-area-inset-bottom));border-top:1px solid var(--color-border)}.dialog-backdrop{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1618148c;position:fixed;inset:0}.dialog-popup{z-index:21;width:min(100% - 2rem,34rem);max-height:min(80vh,45rem);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);background:var(--color-surface-raised);box-shadow:var(--shadow-raised);position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.dialog-heading{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-2);font-size:var(--text-xl);font-weight:700;display:flex}.dialog-popup>.button{width:100%;margin-top:var(--space-3)}.diagnostics{margin-block:var(--space-6);gap:0;display:grid}.diagnostics>div{gap:var(--space-4);padding-block:var(--space-3);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(7rem,1fr) 2fr;display:grid}.diagnostics dt{color:var(--color-text-muted)}.diagnostics dd{overflow-wrap:anywhere;margin:0}.signature{margin:var(--space-8) 0 0;color:var(--color-text-muted);font-size:var(--text-sm);text-align:center}.notice-stack{z-index:30;right:max(var(--space-4), env(safe-area-inset-right));bottom:max(var(--space-4), env(safe-area-inset-bottom));left:max(var(--space-4), env(safe-area-inset-left));justify-items:end;gap:var(--space-3);pointer-events:none;display:grid;position:fixed}.notice{width:min(100%,38rem);min-height:var(--control-height);justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-raised);pointer-events:auto;display:flex}.notice-update{border-color:color-mix(in srgb, var(--color-primary) 60%, var(--color-border))}.notice-actions{align-items:center;gap:var(--space-2);display:flex}@media (width<=48rem){.feature-grid{grid-template-columns:1fr}.card{min-height:auto}.app-header .button{padding-inline:var(--space-3)}.notice{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
