:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#19183a;background:#f5f2eb;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}.page-shell{min-height:100vh;background:radial-gradient(circle at 10% 0%,rgba(244,202,77,.16),transparent 26rem),radial-gradient(circle at 90% 18%,rgba(56,48,135,.1),transparent 30rem),#f7f4ed}.site-header{max-width:1180px;margin:0 auto;padding:24px 28px;display:flex;align-items:center;justify-content:space-between}.brand-logo{width:min(330px,58vw);height:72px;object-fit:contain;object-position:left}.test-badge{padding:8px 13px;color:#5a4a12;background:#f4d76d;border-radius:999px;font-size:13px;font-weight:700}.hero-grid{max-width:1180px;margin:20px auto 0;padding:48px 28px 72px;display:grid;grid-template-columns:1.08fr .92fr;gap:72px;align-items:center}.eyebrow{color:#7c681c;font-size:12px;font-weight:800;letter-spacing:.16em}h1{margin:12px 0 20px;color:#15114a;font-family:Georgia,"Noto Serif SC",serif;font-size:clamp(38px,5.2vw,68px);line-height:1.09}.hero-intro{max-width:640px;color:#58576a;font-size:18px;line-height:1.8}.feature-pills{display:flex;flex-wrap:wrap;gap:9px;margin:28px 0}.feature-pills span{padding:8px 13px;border:1px solid rgba(21,17,74,.16);border-radius:999px;background:#ffffff85;font-size:14px}.notice-card{padding:20px 22px;border-left:3px solid #e8bd36;background:#ffffff9e;border-radius:0 14px 14px 0}.notice-card ul{margin:10px 0 0;padding-left:20px;color:#626071;line-height:1.8}.upload-card{padding:28px;border:1px solid rgba(21,17,74,.1);border-radius:24px;background:#ffffffd1;box-shadow:0 24px 70px #1e194a1f;backdrop-filter:blur(12px)}.step-label,.hand-selector legend{margin-bottom:12px;color:#36324f;font-size:14px;font-weight:800}.upload-zone{height:300px;display:grid;place-items:center;overflow:hidden;border:1.5px dashed #aaa3c7;border-radius:18px;background:#f5f3fa;cursor:pointer}.upload-zone:hover{border-color:#6c62a2;background:#f1eff8}.upload-zone input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.upload-zone img{width:100%;height:100%;object-fit:contain;background:#ebe8df}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:10px;color:#6c6880;text-align:center}.upload-placeholder strong{color:#26224d}.palm-glyph{display:grid;place-items:center;width:64px;height:64px;color:#f0c843;background:#17124d;border-radius:50%;font-size:30px}.hand-selector{margin:22px 0 16px;padding:0;border:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.hand-selector legend{grid-column:1 / -1}.hand-selector label{padding:12px;border:1px solid #d9d5e4;border-radius:12px;text-align:center;cursor:pointer}.hand-selector label.active{color:#fff;border-color:#201b5f;background:#201b5f}.hand-selector input{position:absolute;opacity:0}.consent-row{display:flex;gap:10px;color:#646174;font-size:13px;line-height:1.55}.consent-row input{margin-top:3px;accent-color:#241d65}.primary-button,.secondary-button{width:100%;margin-top:20px;padding:14px 20px;border:0;border-radius:13px;font-weight:800}.primary-button{color:#1b1744;background:linear-gradient(135deg,#f5dc75,#e9bc35);box-shadow:0 10px 25px #c1910e33}.primary-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.secondary-button{color:#fff;background:#211b60}.error-message{color:#a12b3c;font-size:14px}.status-panel{max-width:680px;min-height:66vh;margin:30px auto;padding:70px 28px;text-align:center}.status-panel h1{font-size:clamp(34px,6vw,55px)}.status-panel>p{color:#656176;line-height:1.7}.scanner{position:relative;width:170px;height:210px;margin:0 auto 30px;border:3px solid #211b60;border-radius:55px 55px 70px 70px;overflow:hidden;opacity:.9}.scanner:before{content:"";position:absolute;inset:20px 38px 25px;border:3px solid #e9bd34;border-top-color:transparent;border-radius:50%}.scanner span{position:absolute;left:0;right:0;height:2px;background:#f2c83d;box-shadow:0 0 16px #e7b918;animation:scan 2s ease-in-out infinite alternate}@keyframes scan{0%{top:15%}to{top:85%}}.progress-track{height:7px;margin:30px auto;overflow:hidden;border-radius:99px;background:#ddd8e6}.progress-track span{display:block;width:38%;height:100%;background:#231c65;animation:progress 1.5s ease-in-out infinite alternate}@keyframes progress{0%{transform:translate(-30%)}to{transform:translate(190%)}}.status-error{margin-top:30px;padding:22px;border:1px solid #e3c8cc;border-radius:16px;background:#fff7f8}.results-page{max-width:1020px;margin:0 auto;padding:35px 28px 80px}.result-hero{max-width:760px;margin:0 auto 42px;text-align:center}.result-hero h1{font-size:clamp(36px,6vw,58px)}.result-hero>p:last-child{color:#626073;line-height:1.8}.result-grid{display:grid;gap:16px}.result-card{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:26px;border:1px solid rgba(30,26,75,.1);border-radius:18px;background:#fffc}.result-icon{display:grid;place-items:center;width:48px;height:48px;color:#f3cf58;background:#18134f;border-radius:14px;font-size:24px}.result-card h2{margin:0 0 10px;color:#1d1854;font-family:Georgia,"Noto Serif SC",serif}.result-card p,.result-card li{color:#5d5a6b;line-height:1.75}.result-card ul{padding-left:20px}.result-card small{display:inline-block;color:#8b6f16}.disclaimer-card{margin-top:24px;padding:24px;border:1px solid #ead78e;border-radius:16px;background:#fffaf0}.disclaimer-card p{margin-bottom:0;color:#68616a;line-height:1.7}.result-action{max-width:440px;display:block;margin:26px auto 0}footer{padding:24px;color:#777383;text-align:center;font-size:12px}@media(max-width:820px){.site-header{padding:16px 18px}.brand-logo{height:56px}.test-badge{font-size:11px}.hero-grid{margin-top:0;padding:24px 18px 54px;grid-template-columns:1fr;gap:32px}.hero-copy h1{font-size:42px}.hero-intro{font-size:16px}.upload-card{padding:20px}.upload-zone{height:270px}.results-page{padding-inline:16px}.result-card{grid-template-columns:42px 1fr;padding:20px 16px;gap:12px}.result-icon{width:40px;height:40px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}
