/* Custni · shared visual foundations. No external fonts or trackers. */
:root{
  --ink:#152238;--ink-2:#42526b;--muted:#68758a;--cream:#f7f8fa;
  --paper:#fff;--purple:#3563e9;--purple-dark:#244dca;--lav:#edf2ff;
  --mint:#e4f3ed;--peach:#fff0dc;--line:#e1e6ee;
  --shadow:0 16px 48px rgba(21,34,56,.08);--radius:16px;
  --font-ui:Inter,"Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;
  --focus:0 0 0 3px rgba(53,99,233,.2);
}
body{font-family:var(--font-ui);font-feature-settings:"palt";text-rendering:optimizeLegibility}
button,input,textarea,select{font-family:inherit}
button,a,input,textarea,select{transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s}
::selection{background:#dbe6ff;color:#152238}
button:disabled{cursor:wait;opacity:.62}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--purple);outline-offset:3px;box-shadow:var(--focus)}
input::placeholder,textarea::placeholder{color:#8190a3;opacity:1}
.btn{border-radius:10px;font-weight:650;letter-spacing:.01em;min-height:42px}
.btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #15223812}
.btn:active{transform:translateY(0)}
.btn.primary{background:var(--purple);border-color:var(--purple);box-shadow:0 3px 7px #3563e91c}
.btn.primary:hover{background:var(--purple-dark);border-color:var(--purple-dark)}
.btn.ghost{background:#fff;border-color:var(--line)}
.text-button,.text-link{color:#2957d3}
.brand{font-weight:800;letter-spacing:-.7px}
.brand-mark{font-family:var(--font-ui);background:#152238;color:white;border-radius:10px;box-shadow:inset 0 0 0 1px #ffffff24;font-weight:750}
.eyebrow{color:#3563e9;letter-spacing:.14em;font-weight:700}
.auth-view{background:#f7f8fa;padding:38px 5vw;overflow-y:auto;min-height:100dvh}
.auth-brand{position:relative;z-index:1;width:max-content}
.auth-shell{min-height:660px;height:calc(100% - 36px);grid-template-columns:1.05fr 1fr;gap:clamp(32px,6vw,88px);max-width:1160px}
.auth-copy{position:relative;background:#152238;border-radius:26px;padding:48px 40px;color:#fff;overflow:hidden;box-shadow:0 24px 60px #15223818}
.auth-copy::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,transparent,#000)}
.auth-copy>*{position:relative}
.auth-copy .eyebrow{color:#a7bfff;font-size:11px}
.auth-copy h1{font-family:var(--font-ui);font-size:clamp(28px,3vw,39px);line-height:1.55;font-weight:700;letter-spacing:-1px}
.auth-copy p{color:#c2ccdb;font-size:14px;line-height:2;max-width:340px;margin-top:20px}
.auth-art{height:150px;margin-top:32px}
.auth-art span{background:#ffffff0d;border:1px solid #ffffff24;color:#e4ecfb;box-shadow:none;padding:20px 23px;letter-spacing:.09em;border-radius:12px}
.auth-art b{color:#92afff}
.auth-card{box-shadow:none;border:0;background:transparent;padding:24px 12px;max-width:430px;width:100%;justify-self:center}
.auth-card h2{font-size:28px;letter-spacing:-.6px;font-weight:750;margin-bottom:12px}
.auth-card>p{font-size:13px;line-height:1.8}
.auth-card label{font-size:13px;font-weight:650;margin:24px 0;color:#35455e}
.auth-card input{min-height:49px;background:#fff;border:1px solid #d6dee9;border-radius:10px;padding:13px 14px;font-size:15px;margin-top:9px;box-shadow:0 1px 2px #15223804}
.auth-card input:focus{border-color:#3563e9;box-shadow:var(--focus)}
.auth-card .btn.full{min-height:49px;font-size:14px;margin-top:4px}
.auth-card .text-button{font-size:12px;line-height:1.7;min-height:44px;margin-top:12px}
.auth-card .auth-legal{font-size:11px!important;line-height:1.9;border-top:1px solid var(--line);padding-top:20px;margin-top:16px;text-align:left}
.auth-legal a{text-underline-offset:3px}
.form-error{color:#ae3535!important;font-size:12px;line-height:1.6}
.toast{font-size:13px;line-height:1.6;background:#152238;max-width:min(420px,calc(100vw - 32px));padding:14px 18px;border:1px solid #ffffff22;border-radius:12px}
.toast.error{background:#8f3338}
@media(max-width:760px){
  .auth-view{padding:24px;background:#fff}
  .auth-shell{min-height:0;height:auto;display:block}
  .auth-card{margin:52px auto 20px;padding:0;max-width:430px}
  .auth-card h2{font-size:26px}
  .auth-card input{font-size:16px}
  .auth-copy{display:none}
  .btn{min-height:44px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
