@font-face{font-family:Geist;src:url('/fonts/geist-sans.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{color-scheme:light;
--surface:oklch(0.9943 0.0013 286.4);--soft:oklch(0.9789 0.0029 264.5);--soft-2:oklch(0.9605 0.0046 258.3);--line:oklch(0.9336 0.0058 264.5);
--line-strong:oklch(0.6387 0.0179 262.7);--line-control:oklch(0.9051 0.0081 253.9);--ink:oklch(0.2561 0.0139 267.0);--muted:oklch(0.5160 0.0189 262.7);
--nav:oklch(0.2033 0.0051 248.1);--nav-ink:oklch(0.9579 0.0029 264.5);
--accent:oklch(0.5014 0.1829 267.0);--accent-hover:oklch(0.4648 0.1743 267.0);--accent-press:oklch(0.4290 0.1626 267.1);--on-accent:oklch(0.9909 0.0029 264.5);
--accent-soft:oklch(0.9616 0.0166 271.2);--focus:var(--accent);
--danger:oklch(0.5033 0.1793 21.8);--danger-soft:oklch(0.9634 0.0152 12.4);--danger-line:oklch(0.8616 0.0527 12.4);
--success:oklch(0.4907 0.1192 151.5);--success-soft:oklch(0.9662 0.0189 157.9);--success-line:oklch(0.8672 0.0559 157.2);
--shadow:0.30 0.03 265;--elev-1:0 1px 1px oklch(var(--shadow) / 0.05),0 1px 3px oklch(var(--shadow) / 0.06);
--fs-title:24px;--lh-title:30px;--fs-section:16px;--fs-body:14px;--lh-body:21px;--fs-dense:13px;--lh-dense:18px;--fs-meta:12px;--lh-meta:16px;
--fw-medium:550;--fw-bold:600;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;
--radius-m:6px;--radius-l:10px;--radius-full:999px;--control-md:36px;--dur-press:80ms;--dur-micro:140ms;--ease-out:cubic-bezier(0.16,1,0.3,1)}
@media (pointer:coarse){:root{--control-md:40px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0.01ms!important}}
*{box-sizing:border-box;margin:0}
html{font-family:Geist,Arial,sans-serif;font-synthesis:none;color:var(--ink);background:var(--soft);-webkit-text-size-adjust:100%}
html.embed{background:transparent}
body{font-size:var(--fs-body);line-height:var(--lh-body)}
.shell{max-width:720px;margin:0 auto;padding:var(--sp-8) var(--sp-4) var(--sp-8)}
.embed .shell{max-width:none;padding:0}
.brand{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-dense);font-weight:var(--fw-medium);color:var(--muted);margin-bottom:var(--sp-5)}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-m);background:var(--nav);color:var(--nav-ink);font-size:var(--fs-meta);font-weight:var(--fw-bold)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--elev-1);padding:var(--sp-8)}
.embed .card{box-shadow:none}
h1{font-size:var(--fs-title);line-height:var(--lh-title);font-weight:var(--fw-bold);letter-spacing:-.01em}
.lead{color:var(--muted);margin-top:var(--sp-2)}
form{margin-top:var(--sp-6)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4) var(--sp-5)}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field.wide{grid-column:1/-1}
.label{font-size:var(--fs-dense);line-height:var(--lh-dense);font-weight:var(--fw-medium)}
.req{color:var(--danger)}
.help,.fine{font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--muted)}
.fine{margin-top:var(--sp-3);text-align:center}
input[type=email],input[type=text],select,textarea{font:inherit;font-size:var(--fs-body);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-m);min-height:var(--control-md);padding:7px 10px;width:100%;transition:border-color var(--dur-micro) var(--ease-out),box-shadow var(--dur-micro) var(--ease-out)}
textarea{resize:vertical;min-height:140px;line-height:var(--lh-body)}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:30px}
input:hover,select:hover,textarea:hover{border-color:var(--ink)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--accent)}
input:disabled,select:disabled,textarea:disabled{background:var(--soft-2);color:var(--muted);cursor:not-allowed}
[aria-invalid=true]{border-color:var(--danger)}
.error{font-size:var(--fs-meta);line-height:var(--lh-meta);color:var(--danger)}
.error:empty{display:none}
.alert{margin-top:var(--sp-4);padding:var(--sp-3) var(--sp-4);border:1px solid var(--danger-line);background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-m);font-size:var(--fs-dense)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font:inherit;font-size:var(--fs-dense);font-weight:var(--fw-medium);min-height:var(--control-md);padding:0 var(--sp-4);border-radius:var(--radius-m);border:1px solid transparent;cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out),transform var(--dur-press) var(--ease-out)}
.btn:focus-visible,.file-pick:focus-within{outline:2px solid var(--focus);outline-offset:2px}
.btn:active{transform:translateY(1px)}
.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;transform:none}
.btn-primary{background:var(--accent);color:var(--on-accent)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-primary:active{background:var(--accent-press)}
.btn-primary:disabled{background:var(--soft-2);color:var(--muted);border-color:var(--line-control)}
.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-control)}
.btn-secondary:hover{background:var(--soft-2)}
.btn-secondary:active{background:var(--line)}
.submit{width:100%;margin-top:var(--sp-5)}
.submit[aria-busy=true]::before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.files{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}
.file-pick{position:relative}
.file-pick input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.file-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--sp-1)}
.file-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:6px 6px 6px 10px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--soft);font-size:var(--fs-dense)}
.file-list .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-list .size{color:var(--muted);font-size:var(--fs-meta);font-variant-numeric:tabular-nums;white-space:nowrap}
.file-remove{min-height:28px;padding:0 var(--sp-2);font-size:var(--fs-meta)}
.challenge{margin-top:var(--sp-5);min-height:65px}
.done{text-align:center}
.done:focus{outline:none}
.done-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-full);background:var(--success-soft);border:1px solid var(--success-line);color:var(--success);font-size:20px;margin-bottom:var(--sp-4)}
.reference{font-size:var(--fs-title);line-height:var(--lh-title);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;letter-spacing:.04em;margin:var(--sp-3) 0}
.done .help{max-width:440px;margin:0 auto var(--sp-5)}
@media (max-width:760px){.shell{padding:var(--sp-5) var(--sp-4)}.card{padding:var(--sp-5)}.grid{grid-template-columns:1fr}}
