@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:General Sans;src:url(/fonts/GeneralSans-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-ExtraBold.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}:root{--paper: #f7f6f1;--roll: #fbfaf3;--bg: #ece9df;--ink: #0a0a0a;--ink2: #404038;--ink3: #9b9990;--hair: #d6d4ca;--acc: #1ab8c8;--pass: #22a355;--fail: #b83a3a;--sans: "General Sans", -apple-system, system-ui, "Segoe UI", sans-serif;--mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .1s}a:hover{border-bottom-color:currentColor}button{font:inherit;border:none;background:none;cursor:pointer;color:inherit}.v-nav{position:sticky;top:0;z-index:20;background:#f7f6f1ed;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.v-nav-in{display:flex;align-items:center;justify-content:space-between;height:52px;max-width:1280px;margin:0 auto;padding:0 60px;border-bottom:1px solid var(--hair)}.v-nav-brand{font-size:20px;font-weight:400;letter-spacing:-.02em;color:var(--ink)}.v-nav-eyebrow{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3)}.v-wrap{max-width:680px;margin:0 auto;padding:48px 24px 80px}.v-head-borders-top>.b1{height:3px;background:var(--ink)}.v-head-borders-top>.b2{height:1px;background:var(--ink);margin-top:3px}.v-head-borders-top>.b3{height:1px;background:var(--hair);margin-top:3px}.v-head-title-block{text-align:center;padding:40px 24px 0}.v-head-eyebrow{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);margin-bottom:10px}.v-head-title{font-size:38px;font-weight:500;letter-spacing:-.03em;line-height:1.05;color:var(--ink)}.v-head-borders-bot{margin-top:36px}.v-head-borders-bot>.b1{height:1px;background:var(--hair)}.v-head-borders-bot>.b2{height:1px;background:var(--ink);margin-top:3px}.v-seal-row{display:flex;justify-content:center;margin:32px 0}.v-seal{width:80px;height:80px;border-radius:50%;border:2px solid var(--seal-color, var(--pass));position:relative;display:flex;align-items:center;justify-content:center}.v-seal:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;border:1.5px dashed var(--seal-color, var(--pass))}.v-seal:after{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:50%;border:1px solid var(--seal-color, var(--pass))}.v-seal-mark{font-family:var(--mono);font-size:32px;font-weight:700;color:var(--seal-color, var(--pass))}.v-seal.fail{--seal-color: var(--fail)}.v-status{text-align:center;max-width:520px;margin:0 auto}.v-status-title{font-size:20px;font-weight:600;letter-spacing:-.015em;color:var(--ink);margin-bottom:6px}.v-status-msg{font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--ink3);margin-bottom:20px}.v-status-explainer{font-size:14px;line-height:1.72;color:var(--ink2)}.v-empty-spacer{height:32px}.v-empty-explainer{text-align:center;max-width:520px;margin:0 auto;font-size:14px;line-height:1.72;color:var(--ink2)}.v-dropzone{margin-top:32px;padding:52px 24px;text-align:center;border:1px dashed var(--hair);cursor:pointer;transition:border-color .15s,background .15s;position:relative}.v-dropzone:hover,.v-dropzone.over{border-color:var(--ink);background:var(--roll)}.v-drop-icon{font-size:28px;color:var(--ink3);margin-bottom:14px;line-height:1}.v-drop-label{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:6px}.v-drop-sub{font-size:12px;color:var(--ink3)}.v-drop-code{font-family:var(--mono);font-size:11px;background:var(--bg);border:1px solid var(--hair);padding:1px 6px}.v-file-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.v-sec{margin-bottom:36px}.v-sec-label{font-family:var(--sans);font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--ink);padding-bottom:12px;border-bottom:1.5px solid var(--ink);margin-bottom:14px}.v-sec.centered .v-sec-label{text-align:center;text-transform:uppercase;letter-spacing:.06em;border-bottom:none;padding-bottom:0;margin-bottom:18px}.v-sec.centered .v-checks-group{max-width:540px;width:100%;margin-left:auto;margin-right:auto}.v-sec.centered .v-checks{display:flex;flex-direction:column;align-items:stretch;gap:6px}.v-sec.centered .v-check{margin-bottom:0;width:100%;min-width:0}.v-explain-row{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid var(--hair);align-items:baseline}.v-explain-row:last-child{border-bottom:none}.v-explain-k{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--ink);text-transform:uppercase}.v-explain-v{font-size:13px;color:var(--ink2);line-height:1.55}.v-check{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid;margin-bottom:4px}.v-check:last-child{margin-bottom:0}.v-check.ok{background:color-mix(in srgb,var(--pass) 4%,transparent);border-color:color-mix(in srgb,var(--pass) 20%,transparent)}.v-check.fail{background:color-mix(in srgb,var(--fail) 4%,transparent);border-color:color-mix(in srgb,var(--fail) 20%,transparent)}.v-check.none{background:color-mix(in srgb,var(--ink3) 5%,transparent);border-color:var(--hair)}.v-check-mark{width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--paper);flex-shrink:0}.v-check.ok .v-check-mark{background:var(--pass)}.v-check.fail .v-check-mark{background:var(--fail)}.v-check.none .v-check-mark{background:var(--ink3)}.v-check-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.v-check-label{font-size:13px;font-weight:500;color:var(--ink);line-height:1.45}.v-check-detail{font-family:var(--mono);font-size:10px;color:var(--ink3);letter-spacing:.02em;word-break:break-all;line-height:1.4}.v-checks-group{width:100%;margin-bottom:14px}.v-checks-group:last-child{margin-bottom:0}.v-checks-grouplabel{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);text-align:center;margin-bottom:8px}.v-hash{padding:9px 0;border-bottom:1px solid var(--hair)}.v-hash:last-child{border-bottom:none}.v-hash-k{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.1em;color:var(--ink3);margin-bottom:4px;text-transform:uppercase}.v-hash-v{font-family:var(--mono);font-size:11px;letter-spacing:.02em;word-break:break-all;line-height:1.5;color:var(--acc)}.v-hash-v.fail{color:var(--fail);font-weight:600}.v-hash-v.plain{color:var(--ink)}.v-meta{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:7px 0;border-bottom:1px solid var(--hair);align-items:baseline}.v-meta:last-child{border-bottom:none}.v-meta-k{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--ink3);text-transform:uppercase}.v-meta-v{font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--ink)}.v-prompt{border-bottom:1px solid var(--hair)}.v-prompt-summary{display:grid;grid-template-columns:14px 18px 32px 1fr auto;gap:8px;align-items:center;padding:11px 0;cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.v-prompt-summary::-webkit-details-marker{display:none}.v-prompt-chevron{font-family:var(--mono);font-size:9px;color:var(--ink3);text-align:center;display:inline-block;transition:transform .15s ease}.v-prompt[open] .v-prompt-chevron{transform:rotate(90deg)}.v-prompt-mark{font-family:var(--mono);font-size:13px;font-weight:700;text-align:center;color:var(--acc)}.v-prompt-mark.fail{color:var(--fail)}.v-prompt-mark.none{color:var(--ink3)}.v-prompt-num{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink)}.v-prompt-time{font-family:var(--mono);font-size:10px;color:var(--ink3);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-prompt-id{font-family:var(--mono);font-size:10px;color:var(--ink3);flex-shrink:0}.v-prompt-body{margin-left:42px;border-left:2px solid var(--hair);padding:2px 0 16px 16px}.v-prompt-block{margin-bottom:14px}.v-prompt-block:last-of-type{margin-bottom:10px}.v-prompt-block-label{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin-bottom:5px}.v-prompt-block-content{font-size:13px;line-height:1.6;color:var(--ink2);white-space:pre-wrap;word-break:break-word}.v-prompt-block-content.output{color:var(--ink)}.v-prompt-time-full{font-family:var(--mono);font-size:9px;color:var(--ink3);letter-spacing:.04em;margin-top:10px}.v-foot-borders{margin-top:40px}.v-foot-borders>.b1{height:1px;background:var(--ink)}.v-foot-borders>.b2{height:3px;background:var(--ink);margin-top:3px}.v-foot-row{display:flex;justify-content:space-between;align-items:center;margin-top:20px;gap:14px;flex-wrap:wrap}.v-foot-promise,.v-foot-url{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}.v-foot-url .acc{color:var(--acc)}.v-foot-url .sep{margin:0 8px;color:var(--hair)}.v-build-id{margin-top:14px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.v-build-id .mono{color:var(--ink2)}.v-build-id .sep{color:var(--hair)}.v-foot-buttons{display:flex;gap:10px}.v-foot-btn{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.06em;padding:10px 16px;background:transparent;border:1px solid var(--hair);color:var(--ink2);cursor:pointer;transition:border-color .12s,color .12s}.v-foot-btn:hover{border-color:var(--ink);color:var(--ink)}.v-loading{text-align:center;padding:64px 24px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3)}.v-error-box{margin-top:32px;padding:20px;border:1px solid var(--fail);background:color-mix(in srgb,var(--fail) 4%,transparent);font-family:var(--mono);font-size:12px;color:var(--fail);word-break:break-word}@media (max-width: 700px){.v-nav-in{padding:0 24px;height:48px}.v-nav-eyebrow{font-size:8px;letter-spacing:.14em}.v-wrap{padding:32px 16px 56px}.v-head-title-block{padding:28px 12px 0}.v-head-title{font-size:28px}.v-status{padding:0 8px}.v-status-title{font-size:17px}.v-sec-label{font-size:18px}.v-sec.centered .v-check{min-width:0;width:100%}.v-meta{grid-template-columns:110px 1fr;gap:8px}.v-explain-row{grid-template-columns:100px 1fr;gap:10px}.v-prompt-summary{grid-template-columns:12px 16px 28px 1fr auto;gap:6px}.v-prompt-time{display:none}.v-prompt-body{margin-left:30px;padding-left:12px}.v-foot-row{flex-direction:column;align-items:flex-start;gap:12px}.v-foot-buttons{width:100%}.v-foot-btn{flex:1}}@media print{.v-nav,.v-foot-buttons,.v-dropzone{display:none}.v-prompt[open] .v-prompt-body,.v-prompt:not([open]) .v-prompt-body{display:block!important}.v-prompt-chevron{display:none}body{background:#fff}}
