@font-face{font-family:Nunito;src:url('./fonts/Nunito-variable.woff2') format('woff2');font-style:normal;font-weight:200 900;font-display:swap}
:root{color-scheme:light;--ink:#303946;--muted:#586474;--green:#357a00;--green-dark:#286000;--surface:#fff;--border:#737d87;--error:#b42318}
*{box-sizing:border-box}
body{margin:0;min-height:100dvh;display:flex;flex-direction:column;background:#f7f8fa;color:var(--ink);font-family:Nunito,system-ui,sans-serif;font-size:1rem;line-height:1.5}
.brand{display:flex;align-items:center;justify-content:center;gap:.85rem;padding:1.75rem 1rem;font-size:1.15rem;font-weight:900;letter-spacing:-.015em}
.brand img{object-fit:contain;flex-shrink:0}
.topbar{width:100%;min-width:0;flex-wrap:wrap}
.topbar nav{min-width:0;max-width:100%;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}
.topbar .brand{min-width:0;max-width:100%}
main{flex:1;display:grid;place-items:center;padding:1.5rem 1rem 3rem}
.access-card{width:100%;max-width:440px;padding:2.5rem 2rem;background:var(--surface);border:1px solid #dce4da;border-radius:24px;box-shadow:0 5px 0 #e3e9df}
.eyebrow{margin:0 0 .75rem;color:var(--green-dark);font-size:.85rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
h1{font-size:clamp(1.65rem,5vw,2rem);line-height:1.2;letter-spacing:-.035em;margin:0 0 1rem;font-weight:900}
.intro{margin:0 0 1.75rem;color:var(--muted)}
label{display:block;margin-bottom:.5rem;font-weight:800}
input{display:block;width:100%;min-height:52px;padding:.8rem .95rem;border:2px solid var(--border);border-radius:12px;color:var(--ink);background:#fff;font:inherit;outline-offset:3px}
input[aria-invalid=true]{border-color:var(--error)}
.checkbox-row{display:flex;align-items:flex-start;gap:.75rem;margin:1rem 0 0;font-weight:700;cursor:pointer}
.checkbox-row input[type=checkbox]{width:1.35rem;min-width:1.35rem;min-height:1.35rem;margin:.2rem 0 0;padding:0;accent-color:var(--green);cursor:pointer}
.invitation-detail{margin:.75rem 0 0;font-weight:800}
.hint{font-size:.85rem;margin:.5rem 0 0;color:var(--muted)}
.field-error{font-weight:800;font-size:.9rem;color:var(--error);margin:.45rem 0 0}
button{font:inherit;cursor:pointer;touch-action:manipulation}
.primary{width:100%;min-height:52px;margin-top:1.5rem;padding:.8rem 1rem;color:#fff;background:var(--green);border:2px solid var(--green-dark);border-bottom-width:5px;border-radius:14px;font-weight:900;line-height:1.35;transition:background .15s ease}
.primary:hover{background:var(--green-dark)}
.primary:active{border-bottom-width:2px;transform:translateY(3px);margin-bottom:3px}
.primary:disabled{cursor:wait;opacity:.7}
:focus-visible{outline:3px solid #195db5;outline-offset:4px}
.feedback{margin-top:1.5rem;padding:1rem;background:#eef7e9;border:1px solid #87a67a;border-radius:12px;overflow-wrap:anywhere;font-weight:700}
.feedback.error{background:#fff2f0;border-color:#b3594e;color:#8c201b}
.invitation-note{font-size:.9rem;color:var(--muted);margin:1.5rem 0 0;text-align:center}
footer{text-align:center;color:var(--muted);font-size:.9rem;padding:0 1rem 1.5rem}
.skip-link{position:absolute;top:-100px;left:1rem;padding:.8rem;background:#fff;color:#164c92;font-weight:800;z-index:2}
.skip-link:focus{top:.5rem}
[hidden]{display:none!important}
@media(max-width:374px){.brand{font-size:1rem;gap:.6rem;padding:1.25rem 1rem}.brand img{width:48px;height:41px}.access-card{padding:2rem 1.25rem}main{padding-top:.5rem}.eyebrow{font-size:.75rem}}
@media(max-width:640px){.topbar{align-items:flex-start}.topbar nav{flex:1 1 100%;justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.pin-form{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}#pin{letter-spacing:.35em;font-variant-numeric:tabular-nums;max-width:12rem}
