:where(.pub){--color-paper:oklch(16% 0.02 240);--color-paper-2:oklch(20% 0.025 240);--color-paper-3:oklch(24% 0.03 240);--color-ink:oklch(93% 0.015 80);--color-ink-dim:oklch(72% 0.015 80);--color-ink-faint:oklch(62% 0.015 80);--color-accent:oklch(78% 0.13 70);--color-accent-deep:oklch(66% 0.13 70);--color-focus:oklch(78% 0.13 70);--color-scrim:oklch(14% 0.02 240/0.6);--color-field:oklch(19% 0.025 240);--color-field-line:oklch(50% 0.025 240);--color-on-accent:oklch(18% 0.03 240);--color-error:oklch(72% 0.15 25);--color-success:oklch(78% 0.12 160);--color-rule:oklch(35% 0.02 240);--rule-hair:1px solid oklch(35% 0.02 240);--color-tile:oklch(99% 0 0);--shadow-toast:0 6px 24px oklch(10% 0.02 240/0.35);--font-display:var(--font-sora),system-ui,sans-serif;--font-body:var(--font-inter),system-ui,sans-serif;--font-mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--text-display:clamp(2.4rem,5vw + 1rem,3.4rem);--text-xl:clamp(1.6rem,2.4vw + 0.9rem,2.3rem);--text-lg:1.25rem;--text-md:1.0625rem;--text-sm:0.875rem;--text-xs:0.75rem;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4.5rem;--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-in:cubic-bezier(0.7,0,0.84,0);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--dur-fast:150ms;--dur-med:250ms;--radius-pill:999px;--radius-card:12px;--radius-field:8px}.pub,.pub *,.pub :after,.pub :before{box-sizing:border-box}.pub{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);line-height:1.55;-webkit-text-size-adjust:100%;overflow-x:clip}.pub h1,.pub h2,.pub h3{font-family:var(--font-display);font-style:normal;line-height:1.15;margin:0;overflow-wrap:anywhere;min-width:0}.pub p{margin:0}.pub a:not(.btn){color:var(--color-ink);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:3px}.pub a:not(.btn):hover{-webkit-text-decoration-color:var(--color-ink);text-decoration-color:var(--color-ink)}.pub :focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.pub .vh{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.pub .site-header{border-bottom:var(--rule-hair)}.pub .site-header-in{max-width:44rem;margin:0 auto;padding:var(--space-md);gap:var(--space-md)}.pub .brand,.pub .site-header-in{display:flex;align-items:center;min-width:0}.pub .brand{gap:var(--space-sm) var(--space-md);text-decoration:none!important;color:var(--color-ink)!important}.pub .brand img{display:block;height:32px;width:auto;max-width:8rem;object-fit:contain;flex:0 0 auto}.pub .brand-name{font-family:var(--font-display);font-weight:700;letter-spacing:.02em;overflow-wrap:anywhere}.pub .brand-tag{color:var(--color-ink-dim);font-size:var(--text-sm)}.pub .brand-text{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-sm);min-width:0}.pub .site-footer{margin-top:var(--space-2xl);border-top:var(--rule-hair)}.pub .site-footer-in{max-width:44rem;margin:0 auto;padding:var(--space-sm) var(--space-md);color:var(--color-ink-dim);font-size:var(--text-sm);--ft-sep:1.25rem}.pub .site-footer-line{-webkit-clip-path:inset(-1rem -1rem -1rem -6px);clip-path:inset(-1rem -1rem -1rem -6px)}.pub .site-footer-row{display:flex;flex-wrap:wrap;align-items:center;-webkit-margin-start:calc(-1 * var(--ft-sep));margin-inline-start:calc(-1 * var(--ft-sep))}.pub .site-footer-row>span{display:inline-flex;align-items:center;white-space:nowrap;min-height:44px}.pub .site-footer-row>span:first-child{-webkit-margin-start:var(--ft-sep);margin-inline-start:var(--ft-sep);white-space:normal;overflow-wrap:anywhere;min-width:0}.pub .ft-sep{display:inline-block;width:var(--ft-sep);flex:0 0 auto;text-align:center}.pub .site-footer a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}.pub main{flex:1 0 auto;width:100%}.pub .page{max-width:44rem;margin:0 auto;padding:var(--space-lg) var(--space-md) 0}.pub .page.narrow,.pub.pub-narrow .site-footer-in,.pub.pub-narrow .site-header-in{max-width:32rem}.pub .lede{margin:var(--space-lg) 0 var(--space-xl)}.pub .lede h1{font-size:var(--text-xl);font-weight:700;max-width:24ch}.pub .lede p{color:var(--color-ink-dim);max-width:56ch;margin-top:var(--space-md)}.pub .banner{border:1px solid var(--color-accent);background:var(--color-paper-3);border-radius:var(--radius-field);padding:var(--space-md);margin:var(--space-lg) 0 0}.pub .banner strong{font-weight:600}.pub .banner p{color:var(--color-ink-dim);font-size:var(--text-sm);margin-top:var(--space-xs)}.pub .pill{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);font-weight:600;padding:.25rem .8rem;border-radius:var(--radius-pill);background:var(--color-paper-3);color:var(--color-ink);border:1px solid var(--color-rule)}.pub .pill:before{content:"";width:.55rem;height:.55rem;border-radius:var(--radius-pill);background:var(--color-ink-dim);flex:0 0 auto}.pub .pill[data-tone=good]:before{background:var(--color-success)}.pub .pill[data-tone=bad]:before{background:var(--color-error)}.pub .pill[data-tone=info]:before{background:var(--color-accent)}.pub .section{border:0;padding:0;margin:0 0 var(--space-xl);min-width:0}.pub .section>legend{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);padding:0;margin-bottom:var(--space-md);width:100%}.pub .field{margin-bottom:var(--space-lg);min-width:0}.pub .label{display:block;font-weight:600;margin-bottom:var(--space-sm)}.pub .req{color:var(--color-ink-dim);margin-left:3px;font-weight:400}.pub .help{color:var(--color-ink-dim);margin-top:var(--space-xs)}.pub .error,.pub .help{display:block;font-size:var(--text-sm)}.pub .error{color:var(--color-error);margin-top:var(--space-sm)}.pub .error:before{content:"Error: ";font-weight:600}.pub .input{width:100%;font:inherit;font-size:1rem;color:var(--color-ink);background:var(--color-field);border:1px solid var(--color-field-line);border-radius:var(--radius-field);padding:.8rem .9rem;min-height:3rem;transition:border-color var(--dur-fast) var(--ease-out)}.pub .input::placeholder{color:var(--color-ink-faint)}.pub .input:hover{border-color:var(--color-ink-faint)}.pub .input:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px;border-color:var(--color-accent)}.pub .input[aria-invalid=true]{border-color:var(--color-error)}.pub .input:disabled{opacity:.55}.pub textarea.input{min-height:6rem;resize:vertical}.pub .chips{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.pub .chip{position:relative;max-width:100%}.pub .chip input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.pub .chip span{display:inline-block;max-width:100%;padding:.6rem 1rem;border-radius:var(--radius-pill);border:1px solid var(--color-field-line);background:var(--color-field);transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.pub .chip:hover span{border-color:var(--color-ink-faint)}.pub .chip input:checked+span{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);font-weight:600}.pub .chip input:focus-visible+span{outline:2px solid var(--color-focus);outline-offset:2px}.pub .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));grid-gap:var(--space-sm);gap:var(--space-sm)}.pub .card{position:relative;display:block;padding:var(--space-md);padding-left:2.9rem;border-radius:var(--radius-card);border:1px solid var(--color-field-line);background:var(--color-field);cursor:pointer;min-width:0;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.pub .card:hover{border-color:var(--color-ink-faint)}.pub .card input{position:absolute;left:var(--space-md);top:1.15rem;width:1.1rem;height:1.1rem;margin:0;accent-color:var(--color-accent)}.pub .card strong{display:block;overflow-wrap:anywhere}.pub .card small{display:block;color:var(--color-ink-dim);font-size:var(--text-sm);margin-top:2px}.pub .card:has(input:checked){border-color:var(--color-accent);background:var(--color-paper-3)}.pub .card:has(input:focus-visible){outline:2px solid var(--color-focus);outline-offset:2px}.pub .card:has(input:disabled){opacity:.55;cursor:not-allowed}.pub .card.rank input{opacity:0}.pub .rank-badge{position:absolute;left:var(--space-md);top:.95rem;width:1.5rem;height:1.5rem;border-radius:var(--radius-pill);border:1px solid var(--color-field-line);display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:var(--text-sm)}.pub .card.rank:has(input:checked) .rank-badge{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.pub .steppers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-md);gap:var(--space-md)}.pub .stepper{display:flex;align-items:stretch;border:1px solid var(--color-field-line);border-radius:var(--radius-field);background:var(--color-field);overflow:hidden;min-height:3rem}.pub .stepper button{flex:0 0 3rem;font:inherit;font-size:1.3rem;color:var(--color-ink);background:transparent;border:0;cursor:pointer}.pub .stepper button:hover{background:var(--color-paper-3)}.pub .stepper button:active{background:var(--color-paper-2)}.pub .stepper button:disabled{opacity:.4;cursor:not-allowed}.pub .stepper input{flex:1 1 auto;min-width:0;text-align:center;font:inherit;font-size:1.1rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--color-ink);background:transparent;border:0;border-inline:1px solid var(--color-field-line);padding:.7rem 0;-moz-appearance:textfield}.pub .stepper input::-webkit-inner-spin-button{-webkit-appearance:none}.pub .total{color:var(--color-ink-dim);font-size:var(--text-sm);margin-top:var(--space-sm)}.pub .consents{list-style:none;margin:0;padding:0;border-top:var(--rule-hair)}.pub .consents li{border-bottom:var(--rule-hair)}.pub .tick{display:flex;gap:var(--space-md);align-items:flex-start;padding:.8rem 0;cursor:pointer}.pub .tick input{flex:0 0 auto;width:1.15rem;height:1.15rem;margin-top:.2rem;accent-color:var(--color-accent)}.pub .tick em{color:var(--color-ink-dim);font-style:normal;font-size:var(--text-sm)}.pub .linkbtn{font:inherit;font-size:var(--text-sm);font-weight:600;color:var(--color-ink);background:none;border:0;padding:var(--space-sm) 0;cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:3px}.pub .linkbtn:hover{-webkit-text-decoration-color:var(--color-ink);text-decoration-color:var(--color-ink)}.pub .total .linkbtn{margin:0 0 0 var(--space-sm);padding:0}.pub .allbtn{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:0 0 var(--space-sm);padding:.6rem var(--space-md);font:inherit;font-weight:600;color:var(--color-ink);white-space:nowrap;background:var(--color-field);border:1px solid var(--color-field-line);border-radius:var(--radius-field);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.pub .allbtn:hover{border-color:var(--color-ink-faint);background:var(--color-paper-3)}.pub .allbtn:active{transform:translateY(1px)}.pub .allbtn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.pub .summary{border:1px solid var(--color-error);border-radius:var(--radius-field);padding:var(--space-md);margin-bottom:var(--space-lg)}.pub .summary h2{font-size:var(--text-md);font-weight:600;margin-bottom:var(--space-sm)}.pub .summary ul{margin:0;padding-left:1.2rem}.pub .summary li+li{margin-top:var(--space-xs)}.pub .summary p{color:var(--color-ink)}.pub .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;min-height:3.1rem;font:inherit;font-weight:700;font-size:1.05rem;text-align:center;text-wrap:balance;color:var(--color-on-accent);background:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-field);padding:.85rem 1.3rem;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);text-decoration:none}.pub .btn:hover{background:var(--color-accent-deep);border-color:var(--color-accent-deep)}.pub .btn:active{transform:translateY(1px)}.pub .btn:disabled,.pub .btn[aria-busy=true]{opacity:.6;cursor:progress}.pub .btn.ghost{background:transparent;color:var(--color-ink);border-color:var(--color-field-line);font-weight:600}.pub .btn.ghost:hover{border-color:var(--color-ink-faint);background:var(--color-paper-2)}.pub .btn.auto{width:auto}.pub .btn .short{display:none}.pub .fine{color:var(--color-ink-dim);font-size:var(--text-sm);margin-top:var(--space-md);text-align:center}.pub .panel{border:1px solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper-2);padding:var(--space-lg) var(--space-md)}.pub .panel>h2{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-sm)}.pub .panel>h2:focus{outline:none}.pub .panel p{color:var(--color-ink-dim);margin-bottom:var(--space-md)}.pub .panel p:last-child{margin-bottom:0}.pub .panel .pill{margin-bottom:var(--space-md)}.pub .results{list-style:none;padding:0;margin:var(--space-md) 0;display:grid;grid-gap:var(--space-sm);gap:var(--space-sm)}.pub .results li{padding:var(--space-md);border-radius:var(--radius-field);background:var(--color-field);border:1px solid var(--color-rule);min-width:0}.pub .results h3{font-size:var(--text-md);font-weight:600}.pub .code{display:block;font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:.06em;color:var(--color-accent);margin:var(--space-xs) 0;overflow-wrap:anywhere}.pub .results p{margin:0;color:var(--color-ink)}.pub .facts{display:grid;grid-template-columns:minmax(0,6.5rem) minmax(0,1fr);grid-gap:var(--space-sm) var(--space-md);gap:var(--space-sm) var(--space-md);margin:var(--space-md) 0 var(--space-lg)}.pub .facts dt{color:var(--color-ink-dim)}.pub .facts dd{margin:0;font-weight:600;overflow-wrap:anywhere}.pub .nw{white-space:nowrap}.pub .facts dd.mono{font-family:var(--font-mono);letter-spacing:.04em}.pub .facts .fact-note{display:block;margin-top:var(--space-xs);font-weight:400;font-size:var(--text-sm);color:var(--color-ink-dim)}.pub .deadline,.pub .panel p.deadline{color:var(--color-ink);font-weight:600;margin:0 0 var(--space-md)}.pub .actions{display:grid;grid-gap:var(--space-sm);gap:var(--space-sm);margin-top:var(--space-lg)}.pub .answer-hint{margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--color-ink-dim)}.pub .notice{border:1px solid var(--color-rule);border-left:4px solid var(--color-accent);border-radius:var(--radius-field);background:var(--color-field);padding:var(--space-md);margin-bottom:var(--space-md);color:var(--color-ink)}.pub .notice.bad{border-left-color:var(--color-error)}.pub .notice.good{border-left-color:var(--color-success)}.pub .qr{background:var(--color-tile);border-radius:var(--radius-card);padding:var(--space-md);width:min(100%,18rem);margin:var(--space-md) auto var(--space-lg)}.pub .qr svg{display:block;width:100%;height:auto}.pub .center{text-align:center}.pub .cert{max-width:44rem;margin:0 auto;border:1px solid var(--color-rule);border-left:8px solid var(--color-accent);border-radius:var(--radius-card);background:var(--color-paper-2);padding:var(--space-lg) var(--space-md)}.pub .cert-org{display:flex;align-items:center;gap:var(--space-md);min-width:0}.pub .cert-org img{display:block;height:32px;width:auto;max-width:8rem;object-fit:contain}.pub .cert-org b{font-family:var(--font-display);font-weight:700;overflow-wrap:anywhere}.pub .cert-caption{margin-top:var(--space-xl);font-size:var(--text-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-dim)}.pub .cert h1{margin-top:var(--space-sm);font-size:clamp(1.9rem,5vw + .6rem,3rem);font-weight:700}.pub .cert-line{margin-top:var(--space-md);font-size:var(--text-lg);max-width:36ch}.pub .cert-facts{margin-top:var(--space-md);color:var(--color-ink-dim)}.pub .cert-extra{margin-top:var(--space-md);color:var(--color-ink);max-width:52ch}.pub .cert-foot{margin-top:var(--space-xl);padding-top:var(--space-md);border-top:var(--rule-hair);color:var(--color-ink-dim);font-size:var(--text-sm);overflow-wrap:anywhere}.pub .cert-actions{display:grid;grid-gap:var(--space-sm);gap:var(--space-sm);max-width:44rem;margin:var(--space-lg) auto 0}.pub .toast{position:fixed;left:50%;bottom:var(--space-lg);transform:translateX(-50%);max-width:calc(100% - 2 * var(--space-md));background:var(--color-paper-3);color:var(--color-ink);border:1px solid var(--color-rule);border-radius:var(--radius-field);padding:.7rem 1.1rem;box-shadow:var(--shadow-toast);z-index:20;animation:pub-toast var(--dur-med) var(--ease-out)}@keyframes pub-toast{0%{opacity:0}to{opacity:1}}.pub .prose h2{font-size:var(--text-lg);font-weight:600;margin:var(--space-xl) 0 var(--space-sm)}.pub .prose li,.pub .prose p{color:var(--color-ink-dim);max-width:62ch}.pub .prose p+p{margin-top:var(--space-sm)}.pub .prose ul{margin:var(--space-sm) 0 var(--space-md);padding-left:1.2rem}.pub .prose li+li{margin-top:var(--space-xs)}.pub .prose .stamp{margin-top:var(--space-xl);font-size:var(--text-sm)}@media (max-width:30rem){.pub .btn.long-label .long{display:none}.pub .btn.long-label .short{display:inline}.pub .site-header-in{padding-block:var(--space-sm)}}@media (pointer:coarse){.pub .chip span,.pub .linkbtn,.pub .tick{min-height:44px}}@media (min-width:40rem){.pub .page,.pub .site-footer-in,.pub .site-header-in{padding-inline:var(--space-lg)}.pub .panel{padding:var(--space-lg)}.pub .cert{padding:var(--space-xl)}.pub .actions.row,.pub .cert-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.pub *,.pub :after,.pub :before{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{.pub{background:Canvas;color:CanvasText}.pub .cert-actions,.pub .site-footer,.pub .site-header,.pub .toast{display:none}.pub .cert{border-color:CanvasText;background:Canvas}.pub .cert-caption,.pub .cert-facts,.pub .cert-foot{color:CanvasText}}