:root{--ink:rgba(0,0,0,0.95);--ink-secondary:rgba(0,0,0,0.64);--ink-faint:rgba(0,0,0,0.46);--canvas:#ffffff;--canvas-soft:#f6f5f4;--surface:#ffffff;--hairline:rgba(0,0,0,0.08);--primary:#a3e635;--primary-pressed:#94d629;--primary-soft:#ecfccb;--primary-deep:#3f6212;--on-primary:#1a2e05;--field-border:#dddddd;--shadow-soft:0 0.2px 1px rgba(0,0,0,0.01),0 0.8px 3px rgba(0,0,0,0.02),0 2px 8px rgba(0,0,0,0.027),0 4px 18px rgba(0,0,0,0.04);--font:"NotionInter","Inter","Pretendard Variable",Pretendard,-apple-system,system-ui,"Segoe UI","Apple SD Gothic Neo",Helvetica,Arial,sans-serif;color:var(--ink);background:var(--canvas);font-family:var(--font)}*{box-sizing:border-box}body{min-width:320px;margin:0;background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5;word-break:keep-all;overflow-wrap:break-word}a{color:inherit}::selection{background:var(--primary-soft);color:var(--primary-deep)}:focus-visible{outline:2px solid var(--primary-deep);outline-offset:2px}button,input,select{font:inherit}button{min-height:36px;border:0;border-radius:8px;padding:7px 15px;background:var(--primary);color:var(--on-primary);font-weight:500;cursor:pointer;transition:background .15s ease}button:active,button:hover{background:var(--primary-pressed)}button:disabled{cursor:not-allowed;opacity:.5}input,select{width:100%;min-height:36px;border:1px solid var(--field-border);border-radius:4px;padding:7px 10px;background:var(--surface);color:var(--ink);caret-color:var(--primary-deep);transition:border-color .15s ease,box-shadow .15s ease}input::placeholder{color:var(--ink-faint)}input:focus,select:focus{outline:none;border-color:var(--primary-deep);box-shadow:var(--shadow-soft)}label{display:grid;grid-gap:6px;gap:6px;font-size:14px;font-weight:600}label input,label select{font-size:15px;font-weight:400}h1{margin:0;font-size:32px;font-weight:700;line-height:1.15;letter-spacing:-.8px}@view-transition{navigation:auto}::view-transition-new(root),::view-transition-old(root){animation-duration:.3s;animation-timing-function:ease}@media (prefers-reduced-motion:reduce){::view-transition-new(root),::view-transition-old(root){animation:none}}.auth-page{display:grid;place-items:center;min-height:100vh;padding:48px 24px;background:var(--canvas-soft)}.auth-column{width:min(100%,400px)}.auth-brand{display:flex;justify-content:center;margin-bottom:28px}.auth-brand img{height:26px;width:auto}.auth-card{padding:32px 28px 28px;border:1px solid var(--hairline);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-soft)}.auth-card h1{margin:0 0 6px;font-size:26px;letter-spacing:-.625px}.auth-card>header p{margin:0 0 24px;color:var(--ink-secondary);font-size:15px}.auth-form{display:grid;grid-gap:16px;gap:16px}.auth-form button{width:100%;min-height:44px;margin-top:4px;padding:10px 15px;font-size:16px;font-weight:600}.auth-form .auth-consent{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;grid-gap:9px;gap:9px;color:var(--ink-secondary);font-size:13px;font-weight:400;line-height:1.5}.auth-consent input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--primary-deep)}.auth-consent a{color:var(--primary-deep);font-weight:600;text-decoration:underline;text-underline-offset:3px}.auth-form-row{display:flex;align-items:center;justify-content:space-between;margin-top:-7px}.auth-remember{display:inline-flex;align-items:center;gap:7px;color:var(--ink-secondary);font-size:13px;font-weight:400;cursor:pointer}.auth-remember input{width:16px;height:16px;margin:0;accent-color:var(--primary-deep)}.auth-password-help{color:var(--ink-secondary);font-size:13px;text-decoration:underline;text-underline-offset:3px}.auth-divider{display:flex;align-items:center;gap:12px;margin:22px 0 14px;color:var(--ink-faint);font-size:13px}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;border-top:1px solid var(--hairline)}.oauth-buttons{display:grid;grid-gap:8px;gap:8px}.oauth-buttons button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:42px;padding:9px 15px;border:1px solid var(--field-border);border-radius:8px;background:var(--surface);color:var(--ink);font-weight:500;transition:background .15s ease,border-color .15s ease}.oauth-buttons button:hover{border-color:rgba(0,0,0,.22);background:var(--canvas-soft)}.oauth-buttons button:disabled{cursor:wait;opacity:.62}.oauth-buttons button:disabled:hover{border-color:var(--field-border);background:var(--surface)}.oauth-buttons svg{width:17px;height:17px;flex:none}.auth-alert{border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#b91c1c}.auth-alert,.auth-notice{margin:16px 0 0;padding:10px 14px;font-size:14px;line-height:1.45}.auth-notice{border:1px solid var(--hairline);border-radius:8px;background:var(--canvas-soft)}.auth-footer,.auth-notice{color:var(--ink-secondary)}.auth-footer{margin:20px 0 0;font-size:14px;text-align:center}.auth-footer a{color:var(--primary-deep);font-weight:600;text-decoration:none}.auth-footer a:hover{text-decoration:underline;text-underline-offset:3px}.auth-legal{margin:14px 0 0;color:var(--ink-faint);font-size:12px;line-height:1.55;text-align:center}.auth-legal a{color:var(--ink-secondary);text-decoration:underline;text-underline-offset:3px}@media (max-width:760px){.auth-page{padding:32px 20px;align-items:start}.auth-card{padding:26px 20px 22px}}.fallback-card{text-align:center}.fallback-card h1{margin:0 0 8px;font-size:24px;letter-spacing:-.5px}.fallback-card p{margin:0 0 20px;color:var(--ink-secondary)}.fallback-actions{display:grid;grid-gap:8px;gap:8px}.fallback-primary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border-radius:8px;background:var(--primary);color:var(--on-primary);font-size:16px;font-weight:600;text-decoration:none;transition:background .15s ease}.fallback-primary:hover{background:var(--primary-pressed)}.fallback-home{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 16px;border:1px solid var(--field-border);border-radius:8px;color:var(--ink);font-weight:500;text-decoration:none}.fallback-home:hover{background:var(--canvas-soft)}