@import url("https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400&family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}.psf{--bg:#eaf1fb;--surface:#fff;--ink:#0b1b33;--ink-soft:#5b6b82;--line:#dce4f0;--line-soft:#edf1f8;--accent:#007aff;--accent-deep:#0a5fd0;--accent-tint:#eaf3ff;--ok:#0b8a5a;position:relative;min-height:100vh;padding:48px 20px;display:flex;justify-content:center;align-items:flex-start;background:radial-gradient(130% 110% at 100% -10%,#dcebff 0,var(--bg) 55%);font-family:Hanken Grotesk,system-ui,sans-serif;color:var(--ink)}.psf__grain{position:absolute;inset:0;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.card{position:relative;width:100%;max-width:660px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:44px 44px 40px;box-shadow:inset 0 1px 0 #fff,0 24px 60px -34px rgba(11,27,51,.32);animation:rise .7s cubic-bezier(.2,.8,.2,1) both;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent),#4fa4ff)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.head{margin-bottom:36px}.head__kicker{display:inline-flex;align-items:center;gap:7px;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.head__kicker:before{content:"";width:9px;height:9px;border-radius:2px;background:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.head__title{font-family:Newsreader,serif;font-weight:500;font-size:42px;line-height:1.04;margin:14px 0 0;letter-spacing:-.01em}.head__title em{font-style:italic;font-weight:400;color:var(--accent)}.head__sub{margin:16px 0 0;max-width:46ch;color:var(--ink-soft);font-size:15px;line-height:1.55}.form{gap:24px}.field,.form{display:flex;flex-direction:column}.field{gap:9px;animation:rise .6s cubic-bezier(.2,.8,.2,1) both}.field:first-of-type{animation-delay:.06s}.field:nth-of-type(2){animation-delay:.12s}.field:nth-of-type(3){animation-delay:.18s}.field:nth-of-type(4){animation-delay:.24s}.field__head{display:flex;align-items:baseline;gap:10px}.field__idx{color:var(--accent);letter-spacing:.1em}.field__idx,.field__label{font-family:JetBrains Mono,monospace;font-size:11px}.field__label{letter-spacing:.13em;text-transform:uppercase;color:var(--ink)}.field__foot{min-height:14px}.field__hint{font-size:12.5px;color:var(--ink-soft)}.field__err{font-size:12.5px;color:#c5341f;font-weight:500}.control{width:100%;font-family:Hanken Grotesk,sans-serif;font-size:15.5px;color:var(--ink);background:#fbfcfe;border:1px solid var(--line);border-radius:10px;padding:13px 14px;transition:border-color .18s,box-shadow .18s,background .18s}.control::placeholder{color:#9aa7bc}.control:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px var(--accent-tint)}.control--area{resize:vertical;line-height:1.5;min-height:88px}.field[data-error=true] .control{border-color:#e0573f}.source{display:flex;flex-direction:column;gap:12px}.source__tabs{display:inline-flex;gap:4px;padding:4px;background:var(--line-soft);border:1px solid var(--line);border-radius:11px;width:-moz-fit-content;width:fit-content}.source__tab{font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border:0;background:transparent;color:var(--ink-soft);padding:9px 15px;border-radius:8px;transition:all .18s}.source__tab[data-active=true]{background:var(--accent);color:#fff;box-shadow:0 4px 12px -4px rgba(0,122,255,.5)}.drop{position:relative}.drop__input{position:absolute;inset:0;opacity:0;cursor:pointer}.drop__label{display:flex;align-items:center;justify-content:center;min-height:84px;border:1.5px dashed var(--line);border-radius:10px;background:#fbfcfe;cursor:pointer;transition:border-color .18s,background .18s;text-align:center}.drop:hover .drop__label{border-color:var(--accent);background:var(--accent-tint)}.drop__cta{color:var(--ink-soft);font-size:14px}.drop__cta strong{color:var(--accent)}.drop__file{display:flex;flex-direction:column;gap:3px}.drop__file strong{font-size:15px}.drop__file em{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-soft);font-style:normal}.source[data-error=true] .drop__label{border-color:#e0573f}.alert{margin:0;font-size:13.5px;color:#c5341f;background:#fcedea;border:1px solid #f2cbc2;padding:11px 14px;border-radius:10px}.submit{margin-top:4px;align-self:stretch;justify-content:center;display:inline-flex;align-items:center;gap:12px;font-family:Hanken Grotesk,sans-serif;font-weight:600;font-size:16px;color:#fff;cursor:pointer;background:var(--accent);border:0;border-radius:11px;padding:16px 26px;box-shadow:0 8px 20px -8px rgba(0,122,255,.6);transition:transform .15s,background .18s,box-shadow .18s}.submit:hover:not(:disabled){background:var(--accent-deep);transform:translateY(-1px);box-shadow:0 12px 26px -10px rgba(0,122,255,.65)}.submit:disabled{opacity:.6;cursor:wait}.submit__arrow{transition:transform .2s}.submit:hover:not(:disabled) .submit__arrow{transform:translateX(4px)}.done{text-align:center;padding:24px 8px 12px;animation:rise .6s cubic-bezier(.2,.8,.2,1) both}.done__mark{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;font-size:27px;margin-bottom:18px;box-shadow:0 10px 24px -8px rgba(0,122,255,.6)}.done__title{font-family:Newsreader,serif;font-weight:500;font-size:32px;margin:0}.done__sub{color:var(--ink-soft);max-width:42ch;margin:12px auto 0;line-height:1.55}.done__receipt{display:inline-flex;flex-direction:column;gap:4px;margin-top:24px;padding:14px 22px;border:1px solid var(--line);background:var(--accent-tint);border-radius:10px}.done__receipt span{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-deep)}.done__receipt code{font-family:JetBrains Mono,monospace;font-size:13px;color:var(--ink)}@media (max-width:560px){.card{padding:30px 22px 28px;border-radius:14px}.head__title{font-size:32px}}