:root{--bg-a:#f8fbff;--bg-b:#f6f8fc;--bg-c:#ecfdf5;--surface:#ffffff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--soft:#f1f5f9;--blue:#2563eb;--teal:#14b8a6;--green:#10b981;--amber:#f59e0b;--danger:#dc2626;--shadow-soft:0 8px 34px rgba(15,23,42,0.08);--shadow-card:0 18px 48px rgba(15,23,42,0.1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:linear-gradient(135deg,var(--bg-a) 0,var(--bg-b) 58%,var(--bg-c) 100%);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Noto Sans SC,Noto Sans JP,Inter,Arial,sans-serif;letter-spacing:0}.routeMessage{min-height:100vh;display:grid;place-content:center;grid-gap:16px;gap:16px;padding:24px;text-align:center}a,button{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit;text-decoration:none}main{min-height:100vh;padding:48px 80px 62px}.topbar{position:-webkit-sticky;position:sticky;top:18px;z-index:10;display:grid;grid-template-columns:1fr auto;width:min(1280px,100%);height:72px;margin:0 auto 58px;padding:0 24px 0 22px;background:var(--surface);border-radius:18px;box-shadow:var(--shadow-soft)}.brand,.topbar{align-items:center}.brand{display:inline-flex;gap:16px;width:max-content}.brand strong{font-size:22px;font-weight:740}.brandMark{position:relative;display:grid;width:36px;height:36px;place-items:center;overflow:hidden;background:var(--blue);border-radius:999px}.brandMark:before{display:block;width:25px;height:25px;content:"";background:var(--surface);border-radius:999px;transform:translate(8px,-1px)}.brandMark span{position:absolute;top:7px;right:7px;width:8px;height:8px;background:var(--teal);border-radius:2px}.account{display:flex;justify-self:end;align-items:center;gap:10px;min-width:0}.creditBadge,.loginButton{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 22px;color:var(--text);background:var(--soft);border-radius:999px;font-size:15px;font-weight:650}.userEmail{max-width:190px;overflow:hidden;color:var(--muted);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.hero{display:grid;grid-template-columns:minmax(430px,545px) minmax(520px,620px);grid-gap:55px;gap:55px;justify-content:center;align-items:flex-start}.intro h1{max-width:660px;margin:42px 0 54px;font-size:clamp(40px,4vw,48px);font-weight:760;line-height:1.08}.lead{margin:0 0 12px;font-size:16px}.lead,.note{color:var(--muted);line-height:1.6}.note{margin:0 0 36px;font-size:14px}.resultCard,.uploadCard{background:var(--surface);border-radius:24px;box-shadow:var(--shadow-card)}.uploadCard{width:100%;min-height:292px;padding:28px 30px}.dropZone{display:grid;min-height:152px;place-items:center;padding:24px;text-align:center;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:18px;outline:none;transition:border-color .16s ease,background .16s ease}.dropZone:focus-visible,.uploadCard.dragging .dropZone{background:#eff6ff;border-color:var(--blue)}.uploadIcon{display:grid;width:60px;height:60px;place-items:center;margin-bottom:16px;background:#dbeafe;border-radius:999px}.uploadIcon span{width:24px;height:34px;border-top:5px solid var(--blue);border-left:5px solid var(--blue);transform:rotate(45deg) translate(3px,5px)}.dropZone strong{max-width:100%;overflow-wrap:anywhere;font-size:22px;font-weight:720}.dropZone small{margin-top:8px;color:var(--muted);font-size:14px}.uploadActions{display:flex;align-items:center;gap:22px;margin-top:36px}.uploadActions span{color:var(--muted);font-size:14px}.uploadCard input{display:none}.hdButton,.primaryButton{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 34px;color:#ffffff;background:var(--blue);border-radius:14px;font-size:15px;font-weight:680;box-shadow:0 12px 24px rgba(37,99,235,.18)}.facts{display:flex;flex-wrap:wrap;gap:16px;margin-top:36px}.facts span{display:inline-flex;align-items:center;min-height:40px;gap:10px;padding:0 18px;background:#ecfdf5;border-radius:999px;font-size:15px;font-weight:650}.facts span:nth-child(2){background:#eff6ff}.facts span:nth-child(3){background:#fffbeb}.facts i{width:16px;height:16px;border-radius:999px}.green{background:var(--green)}.blue{background:var(--blue)}.amber{background:var(--amber)}.resultCard{min-height:564px;padding:38px 40px 28px;border-radius:28px}.resultHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.resultHeader h2{margin:0 0 16px;font-size:30px;font-weight:740}.resultHeader p{margin:0;color:var(--muted);font-size:14px}.statusPill{max-width:210px;padding:9px 12px;color:var(--muted);background:var(--soft);border-radius:999px;font-size:12px;font-weight:620;line-height:1.35;text-align:center}.statusPill.ready{color:#047857;background:#d1fae5}.statusPill.error{color:#b91c1c;background:#fee2e2}.comparison{display:grid;grid-template-columns:minmax(190px,240px) 54px minmax(190px,240px);align-items:center;grid-gap:22px;gap:22px;margin-top:44px}.imageFrame{display:grid;grid-template-rows:1fr auto;width:100%;height:316px;overflow:hidden;background:#e2e8f0;border-radius:20px}.imageFrame img{width:calc(100% - 40px);height:208px;align-self:center;justify-self:center;object-fit:contain;background:rgba(255,255,255,.38);border-radius:16px}.checker{background-color:#f8fafc;background-image:linear-gradient(45deg,#e2e8f0 25%,transparent 0),linear-gradient(-45deg,#e2e8f0 25%,transparent 0),linear-gradient(45deg,transparent 75%,#e2e8f0 0),linear-gradient(-45deg,transparent 75%,#e2e8f0 0);background-position:0 0,0 9px,9px -9px,-9px 0;background-size:18px 18px}.imageFrame strong{align-self:end;justify-self:center;margin-bottom:16px;font-size:15px;font-weight:650}.imageFallback{display:grid;align-self:center;justify-self:center;width:calc(100% - 40px);min-height:208px;place-items:center;padding:20px;color:var(--muted);text-align:center;background:rgba(255,255,255,.5);border-radius:16px}.imageFallback small{margin-top:-62px}.arrow{position:relative;width:54px;height:46px}.arrow:before{top:21px;left:0;width:42px;height:5px;background:var(--teal);border-radius:999px}.arrow:after,.arrow:before{position:absolute;content:""}.arrow:after{top:13px;right:0;width:18px;height:18px;border-top:5px solid var(--teal);border-right:5px solid var(--teal);border-radius:2px;transform:rotate(45deg)}.downloadActions{display:flex;align-items:center;gap:14px;margin-top:32px}.secondaryButton{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 35px;color:var(--muted);background:var(--soft);border-radius:14px;font-size:15px;font-weight:680}.downloadActions span{color:var(--muted);font-size:14px}.errorText{margin:18px 0 0;color:var(--danger);font-size:14px}.modalLayer{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:rgba(15,23,42,.38);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.loginModal{position:relative;width:min(420px,100%);padding:34px;background:#ffffff;border-radius:22px;box-shadow:0 30px 80px rgba(15,23,42,.22)}.loginModal h2{margin:0 0 12px;font-size:24px}.loginModal p{margin:0 0 24px;color:var(--muted);line-height:1.6}.iconButton{display:grid;width:34px;height:34px;place-items:center;color:var(--muted);background:var(--soft);border-radius:999px;font-size:18px;line-height:1}.closeButton{position:absolute;top:18px;right:18px}.googleButton{display:flex;align-items:center;justify-content:center;min-height:50px;gap:12px;color:#ffffff;background:var(--blue);border-radius:14px;font-weight:700}.googleMark{display:grid;width:24px;height:24px;place-items:center;color:var(--blue);background:#ffffff;border-radius:999px;font-weight:760}@media (max-width:1120px){main{padding:28px 24px 48px}.topbar{margin-bottom:36px}.hero{grid-template-columns:1fr;gap:34px}.intro h1{margin-top:20px;margin-bottom:26px}.resultCard{width:100%}.comparison{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr)}}@media (max-width:720px){main{padding:16px 14px 34px}.topbar{position:static;grid-template-columns:1fr auto;height:auto;min-height:68px;padding:14px}.brand strong{font-size:18px}.userEmail{display:none}.account{gap:6px}.creditBadge,.loginButton{min-height:36px;padding:0 14px;font-size:13px}.intro h1{font-size:38px}.resultCard,.uploadCard{padding:22px}.downloadActions,.resultHeader,.uploadActions{flex-direction:column;align-items:stretch}.hdButton,.primaryButton,.secondaryButton{width:100%;padding:0 18px}.comparison{grid-template-columns:1fr;gap:18px}.arrow{justify-self:center;transform:rotate(90deg)}.imageFrame{height:286px}}