:root{--bg:#0b0b0c;--bg-elev:#141518;--surface:#17181c;--surface-2:#1f2126;--border:#2a2c32;--border-strong:#3a3d45;--text:#f6f6f7;--text-muted:#9a9ca3;--text-faint:#6d6f76;--white:#ffffff;--on-white:#0b0b0c;--accent:#c8a96a;--accent-soft:rgba(200,169,106,0.16);--green:#4ba873;--yellow:#d6a94a;--red:#e0655f;--radius:16px;--radius-sm:12px;--radius-lg:22px;--touch:52px;--shadow:0 6px 24px rgba(0,0,0,0.4);--ease:cubic-bezier(0.4,0,0.2,1);--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,Roboto,Helvetica Neue,sans-serif;font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}body{min-height:100dvh}h1{font-size:1.7rem;letter-spacing:-.02em}h1,h2{font-weight:700;margin:0 0 .3em}h2{font-size:1.25rem;letter-spacing:-.01em}h3{font-size:1.02rem;font-weight:600;margin:0 0 .25em}p{margin:0 0 .8em}.app{min-height:100dvh;display:flex;flex-direction:column}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(var(--sat) + 12px) calc(var(--sar) + 18px) 12px calc(var(--sal) + 18px);background:rgba(11,11,12,.82);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--border)}.app-main{flex:1 1;width:100%;max-width:920px;margin:0 auto;padding:20px calc(var(--sar) + 18px) calc(var(--sab) + 28px) calc(var(--sal) + 18px)}.app-main.narrow{max-width:520px}.brand-logo{height:26px;width:auto;display:block;filter:invert(1)}.brand-logo.lg{height:42px}.brand-logo.xl{height:58px}.brand-tag{color:var(--text-faint);font-size:.78rem;letter-spacing:.02em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card.flush{padding:0;overflow:hidden}.grid-2{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px}@media (min-width:820px){.grid-2{grid-template-columns:1fr 1fr}}.row{flex-wrap:wrap;align-items:center}.col,.row{display:flex;gap:12px}.col{flex-direction:column}.spacer{flex:1 1}.muted{color:var(--text-muted)}.center{text-align:center}.btn,button{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:var(--touch);padding:0 22px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-size:1rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .08s var(--ease),background .15s var(--ease),border-color .15s var(--ease),opacity .15s var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active,button:active:not(:disabled){transform:scale(.97)}.btn.primary,button[data-variant=primary]{background:var(--white);border-color:var(--white);color:var(--on-white)}button[data-variant=ghost]{background:transparent;border-color:var(--border)}button[data-variant=danger]{background:transparent;border-color:var(--red);color:var(--red)}button:disabled{opacity:.4;cursor:not-allowed}.btn.block,button.block{width:100%}.btn-lg{min-height:60px;font-size:1.05rem;border-radius:var(--radius)}.choice-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}label{display:block;margin-bottom:16px}.field-label{display:block;margin-bottom:8px;font-size:.9rem;font-weight:600;color:var(--text)}label>.hint{color:var(--text-muted);font-size:.88rem}input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],select,textarea{width:100%;min-height:var(--touch);padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elev);color:var(--text);font-size:1.02rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input[type=range]{min-height:var(--touch);accent-color:var(--accent);padding:0}.toggle-tile{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elev);cursor:pointer;margin-bottom:12px;transition:border-color .15s var(--ease),background .15s var(--ease)}.toggle-tile[data-checked=true]{border-color:var(--accent);background:var(--accent-soft)}.toggle-tile input[type=checkbox]{width:28px;height:28px;flex-shrink:0;margin-top:2px;accent-color:var(--accent)}.steps{display:flex;gap:6px;list-style:none;margin:0 0 20px;padding:0}.steps li{flex:1 1;height:4px;border-radius:999px;background:var(--border)}.steps li[data-state=active]{background:var(--accent)}.steps li[data-state=done]{background:var(--white)}.step-label{color:var(--text-muted);font-size:.86rem;margin-bottom:14px;letter-spacing:.02em}.notice{border-left:4px solid var(--border-strong);background:var(--bg-elev);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:14px 16px;margin-bottom:12px;font-size:.96rem}.notice[data-level=GREEN]{border-left-color:var(--green)}.notice[data-level=YELLOW]{border-left-color:var(--yellow)}.notice[data-level=RED]{border-left-color:var(--red)}.notice .alternative{margin-top:8px;color:var(--text-muted);font-size:.9rem}.camera{position:relative;width:100%;aspect-ratio:3/4;max-height:70dvh;margin:0 auto;background:#000;border-radius:var(--radius);overflow:hidden;touch-action:manipulation}.camera video{width:100%;height:100%;object-fit:cover;display:block}.camera video[data-mirror=true]{transform:scaleX(-1)}.camera-guide{position:absolute;inset:0;pointer-events:none}.camera-tools{position:absolute;top:12px;left:12px;right:12px;display:flex;justify-content:space-between;z-index:3}.cam-btn{min-height:46px;width:46px;padding:0;border-radius:999px;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.25);color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:1.2rem}.cam-btn[data-active=true]{background:var(--accent);border-color:var(--accent);color:var(--on-white)}.camera-bar{display:flex;align-items:center;justify-content:center;gap:28px;padding:18px 0 6px}.shutter{width:74px;height:74px;min-height:74px;padding:0;border-radius:999px;background:var(--white);border:4px solid rgba(255,255,255,.35);box-shadow:0 0 0 2px var(--bg)}.shutter:disabled{opacity:.5}.camera-side{width:52px;height:52px;min-height:52px;padding:0;border-radius:var(--radius-sm);font-size:1.3rem}.cam-hint{position:absolute;left:12px;right:12px;bottom:12px;z-index:3;padding:9px 14px;border-radius:999px;font-size:.9rem;font-weight:600;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.cam-hint[data-ok=true]{background:rgba(75,168,115,.85);color:#04160c}.cam-hint[data-ok=false]{background:rgba(0,0,0,.6);color:#fff}.compare{position:relative;overflow:hidden;border-radius:var(--radius);background:#000;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.compare img{display:block;width:100%;height:auto}.compare .after{position:absolute;inset:0;overflow:hidden}.compare .after img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.compare .handle{top:0;bottom:0;width:3px;pointer-events:none}.compare .handle,.compare .handle:after{position:absolute;background:var(--white)}.compare .handle:after{content:"";top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%);border-radius:50%;box-shadow:0 2px 10px rgba(0,0,0,.5)}.compare .label{position:absolute;top:12px;padding:5px 11px;border-radius:999px;background:rgba(0,0,0,.6);font-size:.72rem;font-weight:700;letter-spacing:.08em;color:#fff}.variant-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:12px;gap:12px}.variant{padding:0;min-height:0;border:2.5px solid transparent;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2)}.variant[data-selected=true]{border-color:var(--accent)}.variant img{display:block;width:100%;height:auto}.fade-in{animation:fadeIn .25s var(--ease)}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.hidden-input{display:none}