@font-face{font-family:Inter;src:url('/assets/fonts/inter-400.ttf')}@font-face{font-family:Inter;src:url('/assets/fonts/inter-600.ttf');font-weight:600}@font-face{font-family:Space;src:url('/assets/fonts/space-grotesk-700.ttf');font-weight:700}@font-face{font-family:Mono;src:url('/assets/fonts/jetbrains-mono-500.ttf')}
:root{--portal-ink:#0a0a0b;--portal-bg:#f4f3ee;--portal-accent:#1fe6b5;--portal-muted:#646a66;--portal-line:#deded9}*{box-sizing:border-box}.login-body,.confirm-body{margin:0;background:var(--portal-bg);font:15px/1.6 Inter,sans-serif;color:var(--portal-ink)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit}.login-layout{min-height:100svh;display:grid;grid-template-columns:1.05fr 1fr}.login-story{background:#0a0f0d;color:#f4f3ee;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:54px 64px;min-height:750px}.portal-brand{display:flex;align-items:center;gap:13px;font:700 23px/1.15 Space,sans-serif;letter-spacing:.12em;text-decoration:none;position:relative;z-index:1;width:fit-content}.portal-brand small{display:block;font:9px/1 Mono,monospace;letter-spacing:.23em;margin-top:9px;color:#a7b2aa}.brand-mark{display:block;background:#f4f3ee;width:45px;height:45px;mask:url('/assets/obsidian-monogram.png') center/contain no-repeat;-webkit-mask:url('/assets/obsidian-monogram.png') center/contain no-repeat}.story-copy{position:relative;z-index:1;margin:80px 0}.portal-eyebrow{font:11px/1.8 Mono,monospace;letter-spacing:.12em;display:block;color:#547b6a}.login-story .portal-eyebrow{color:var(--portal-accent)}.story-copy h1{font:700 clamp(40px,4.4vw,72px)/1.08 Space,sans-serif;letter-spacing:-.045em;margin:24px 0}.story-copy>p{font-size:17px;max-width:410px;color:#b4beb7;line-height:1.75}.story-topics{display:flex;gap:9px;flex-wrap:wrap;max-width:410px;margin-top:37px}.story-topics span{font-size:11px;border:1px solid #35463c;padding:7px 10px;border-radius:3px;color:#c7d2ca}.login-story footer{font:11px Mono,monospace;color:#91a698;z-index:1}.contours{position:absolute;width:790px;height:790px;right:-420px;bottom:-370px;border-radius:50%;border:1px solid #1fe6b538;box-shadow:0 0 0 42px #1fe6b508,0 0 0 43px #1fe6b52a,0 0 0 91px #1fe6b506,0 0 0 92px #1fe6b521,0 0 0 151px #1fe6b503,0 0 0 152px #1fe6b51a,0 0 0 218px #1fe6b503,0 0 0 219px #1fe6b513}.login-panel{display:flex;align-items:center;justify-content:center;position:relative;padding:65px 55px 110px}.login-card{width:100%;max-width:430px}.access-symbol{width:45px;height:45px;background:#e6ebe3;border:1px solid #d7e1d5;display:grid;place-items:center;font-size:25px;margin-bottom:35px;border-radius:7px}.login-card h2{font:700 38px/1.2 Space,sans-serif;letter-spacing:-.04em;margin:13px 0}.login-card>p{color:var(--portal-muted);margin-bottom:31px}.login-card label{font-weight:600;font-size:12px;display:block;margin-bottom:8px}.login-card input{width:100%;padding:15px 14px;border:1px solid #cdd2cc;background:#fff;border-radius:5px;color:#17241b}.portal-primary{display:flex;align-items:center;justify-content:space-between;width:100%;padding:15px 17px;background:#0a0a0b;color:#fff;border:0;border-radius:5px;font-weight:600;font-size:13px;margin-top:15px}.portal-primary:hover{background:#153e30}.portal-primary span{color:var(--portal-accent);font-size:19px}.portal-status{font-size:12px;color:#51705e;min-height:38px;margin:16px 0}.portal-status.error{color:#a54831}.login-note{border-top:1px solid var(--portal-line);margin-top:25px;padding-top:23px}.login-note strong{font-size:12px}.login-note p{font-size:12px;color:var(--portal-muted);line-height:1.8;margin:7px 0}.login-footer{position:absolute;bottom:38px;font-size:11px;color:#8a8e88}.confirm-body{min-height:100svh;display:grid;place-items:center;padding:24px}.confirm-card{width:100%;max-width:510px;background:#fff;border:1px solid var(--portal-line);border-radius:12px;padding:45px}.dark-brand{color:#111;margin-bottom:55px}.dark-brand .brand-mark{background:#111}.dark-brand small{color:#657166}.confirm-card h1{font:700 34px/1.1 Space,sans-serif;letter-spacing:-.04em}.confirm-card p{color:var(--portal-muted)}.back-link{display:block;text-align:center;margin-top:24px;font-size:12px;color:#537760}input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #1ba984;outline-offset:3px}.portal-account{display:flex;align-items:center;gap:8px}.portal-account button{font-size:12px}.portal-account-email{font-size:11px;color:#777;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.invite-panel{padding:25px;max-width:650px}.invite-panel p{font-size:13px;color:#657166;margin:10px 0 18px}.invite-panel form{display:flex;gap:10px;align-items:end}.invite-panel label{flex:1;font-size:12px}.invite-panel input{width:100%;margin-top:7px}.member-list{list-style:none;padding:0;margin:22px 0 0}.member-list li{border-top:1px solid var(--portal-line);padding:11px 0;display:flex;gap:10px;justify-content:space-between;font-size:12px;overflow-wrap:anywhere}.member-list span{color:#7b847c;white-space:nowrap}
@media(max-width:850px){.login-layout{grid-template-columns:1fr}.login-story{min-height:300px;padding:30px}.story-copy{margin:45px 0 20px}.story-copy h1{font-size:42px}.login-story footer,.story-topics{display:none}.login-panel{padding:45px 30px 90px}.access-symbol{display:none}.login-card h2{font-size:32px}.portal-account-email{display:none}.invite-panel form{flex-direction:column;align-items:stretch}}

[hidden]{display:none!important}.code-recipient{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:24px;font-size:13px}.code-recipient>span{overflow-wrap:anywhere;min-width:0}.portal-text-button{padding:4px 0;color:#276c54;background:none;border:0;font-size:12px;text-decoration:underline;text-underline-offset:3px}.portal-text-button:disabled{cursor:default;text-decoration:none}.code-help{font-size:12px;color:var(--portal-muted);margin:10px 0 20px}.code-resend{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:20px;font-size:12px;color:var(--portal-muted)}#login-code{font:500 clamp(22px,4vw,30px)/1.4 Mono,monospace;letter-spacing:.22em;text-align:center}#login-code::placeholder{color:#adb8af}

#welcome-dialog{width:min(1000px,calc(100vw - 40px));max-height:calc(100svh - 40px);padding:0;border:1px solid #d8dfda;border-radius:16px;background:#f7f7f3;color:#121b16;box-shadow:0 28px 100px #0005}#welcome-dialog::backdrop{background:#09120ec7;backdrop-filter:blur(5px)}.welcome-top{display:flex;align-items:center;justify-content:space-between;padding:22px 30px;border-bottom:1px solid #dce3dc}.welcome-copy{padding:34px 34px 26px}.welcome-copy h2{font:700 clamp(27px,4vw,39px)/1.15 Space,sans-serif;letter-spacing:-.04em;margin:12px 0}.welcome-copy p{max-width:650px;line-height:1.65;color:#5c6c61;margin:0}.welcome-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:0 34px 34px}.welcome-option{position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:16px;min-height:244px;padding:24px;background:#fff;border:1px solid #d4ddd5;border-radius:10px;text-decoration:none;font:14px/1.5 Inter,sans-serif;color:#1b2921;transition:border-color .2s,transform .2s}.welcome-option:hover{border-color:#008c6a;transform:translateY(-2px)}.welcome-number{font:10px/1.5 Mono,monospace;letter-spacing:.07em;color:#50836c}.welcome-option strong{font:700 22px/1.25 Space,sans-serif;letter-spacing:-.025em}.welcome-option>span:not(.welcome-number){color:#65746a;font-size:12px}.welcome-option b{font-size:25px;margin-top:auto;color:#00a982}.welcome-dashboard{background:#101c16;color:#fff;border-color:#101c16}.welcome-dashboard .welcome-number,.welcome-dashboard b{color:#1fe6b5}.welcome-dashboard>span:not(.welcome-number){color:#bdcec2}.welcome-bottom{padding:18px 34px;border-top:1px solid #dce3dc;font-size:11px;color:#6c7c70}@media(max-width:700px){.welcome-options{grid-template-columns:1fr;padding:0 22px 22px}.welcome-option{min-height:150px;padding:20px;gap:10px}.welcome-copy{padding:25px 22px}.welcome-top{padding:15px 22px}.welcome-bottom{padding:16px 22px}}
