:root{--bg:#fbfdfb;--surface:#ffffff;--line:#e4ede6;--line-strong:#cfe0d3;--ink:#2a2f38;--ink-dim:#6c757d;--ink-faint:#9aa39e;--brand:#28ca40;--brand-deep:#159a2e;--charcoal:#212529;--radius:16px;--maxw:720px;--font:"Poppins","Liberation Sans",Arial,sans-serif}*,:after,:before{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{min-height:100dvh;color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;background:radial-gradient(120% 75% at 50% -10%,rgba(40,202,64,.07),transparent 58%),var(--bg);background-attachment:fixed}::selection{background:rgba(40,202,64,.22);color:var(--charcoal)}.page{width:100%;max-width:var(--maxw);margin:0 auto;padding:clamp(72px,13vh,150px) 24px 72px}.brand-logo{display:block;height:30px;width:auto}.minimal{justify-content:center;min-height:100dvh;text-align:center}.minimal,.minimal-inner{display:flex;align-items:center}.minimal-inner{flex-direction:column}.minimal-inner .brand-logo{height:48px;margin-bottom:22px}.minimal-sub{margin-top:.4rem;color:var(--ink-dim);font-size:1.15rem}.minimal-rule{width:34px;height:3px;margin-top:1.1rem;border-radius:2px;background:var(--brand)}.enter-link,.minimal-inner .lockout{margin-top:1.5rem}.enter-link{padding:9px 22px;border:1px solid var(--line-strong);border-radius:999px;color:var(--brand-deep);font-size:.85rem;font-weight:500;text-decoration:none;transition:border-color .16s ease,background .16s ease}.enter-link:hover{border-color:var(--brand);background:#f1fbf3}.enter-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.landing-foot{position:fixed;left:0;right:0;bottom:18px;text-align:center;color:var(--ink-faint);font-size:.75rem}.landing-foot a{color:var(--ink-dim);text-decoration:none}.landing-foot a:hover{text-decoration:underline}.nf{display:flex;align-items:center;justify-content:center;min-height:70dvh;text-align:center}.nf-code{font-size:3rem;font-weight:600;letter-spacing:-.03em;color:var(--brand-deep)}.nf-text{margin-top:.5rem;color:var(--ink-dim)}.nf-link{display:inline-block;margin-top:1.6rem;color:var(--brand-deep);text-decoration:none;font-size:.9rem}.nf-link:hover{text-decoration:underline}.gate-page{justify-content:center;min-height:100dvh}.gate,.gate-page{display:flex;align-items:center}.gate{width:100%;max-width:360px;flex-direction:column;text-align:center;padding:36px 28px 30px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius);box-shadow:0 10px 34px rgba(33,37,41,.06)}.gate .brand-logo{margin-bottom:18px}.gate-sub{margin-top:.1rem;margin-bottom:1.4rem;color:var(--ink-dim);font-size:.88rem;line-height:1.5}.gate-input{width:100%;padding:13px 15px;background:var(--surface);border:1px solid var(--line-strong);border-radius:11px;color:var(--ink);font:inherit;font-size:1rem;letter-spacing:.02em;text-align:center;outline:none;transition:border-color .16s ease,box-shadow .16s ease}.gate-input::placeholder{color:var(--ink-faint)}.gate-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(40,202,64,.16)}.gate-error{margin-top:.7rem;color:#c0392b;font-size:.82rem}.gate-btn{margin-top:.9rem;width:100%;padding:12px 15px;border:0;border-radius:11px;background:var(--brand-deep);color:#ffffff;font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;transition:background .16s ease,transform .08s ease}.gate-btn:hover{background:#117f26}.gate-btn:active{transform:translateY(1px)}.gate-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.lockout{display:inline;margin:0}.lockout-btn{padding:0;margin:0;border:0;background:none;color:var(--ink-faint);font:inherit;font-size:.78rem;letter-spacing:.02em;cursor:pointer;transition:color .16s ease}.lockout-btn:hover{color:var(--ink-dim)}.lockout-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}@media (max-width:480px){.page{padding-left:18px;padding-right:18px}.gate{padding:30px 20px 26px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}