/* WebMDE PoC — ランディング・認証・プラン画面の共通スタイル */
:root{
  --bg:#0b0e14; --panel:#131826; --fg:#e8ecf4; --muted:#8a93a6; --line:#242b3d;
  --accent:#1f6bff; --accent2:#00c8ff; --danger:#ff5c6c; --ok:#2ecc71;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:radial-gradient(1200px 600px at 50% -10%, #17203a 0%, var(--bg) 60%);
  color:var(--fg); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Yu Gothic UI","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent2)}
.wrap{min-height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:32px 20px}
.card{
  width:100%; max-width:440px; background:var(--panel); border:1px solid var(--line); border-radius:16px;
  padding:28px 28px 24px; box-shadow:0 20px 60px rgba(0,0,0,.45);
}
.card h1{margin:0 0 6px; font-size:22px; letter-spacing:.02em}
.card p.lead{margin:0 0 18px; color:var(--muted); font-size:13.5px; line-height:1.6}
label{display:block; font-size:12.5px; color:var(--muted); margin:12px 0 6px}
input[type=text],input[type=email],input[type=password],textarea,select{
  width:100%; padding:11px 12px; border-radius:9px; border:1px solid var(--line); background:#0e1220; color:var(--fg);
  font-size:14px; font-family:inherit; outline:none;
}
input:focus,textarea:focus,select:focus{border-color:var(--accent); box-shadow:0 0 0 3px rgba(31,107,255,.25)}
textarea{min-height:120px; resize:vertical}
.btn{
  display:flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:12px 14px; border-radius:10px;
  border:1px solid var(--line); background:#182035; color:var(--fg); font-size:14.5px; font-family:inherit; cursor:pointer;
  text-decoration:none; transition:transform .06s ease, background .15s ease;
}
.btn:hover{background:#1e2842}
.btn:active{transform:translateY(1px)}
.btn.primary{background:linear-gradient(135deg,var(--accent),#3b8cff); border-color:transparent; font-weight:600}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent}
.btn[disabled]{opacity:.5; cursor:not-allowed}
.btn .ic{width:18px; height:18px; flex:0 0 18px}
.stack{display:flex; flex-direction:column; gap:10px; margin-top:14px}
.divider{display:flex; align-items:center; gap:10px; color:var(--muted); font-size:12px; margin:18px 0 6px}
.divider::before,.divider::after{content:""; flex:1; height:1px; background:var(--line)}
.msg{margin-top:12px; font-size:13px; line-height:1.6; min-height:1.2em}
.msg.err{color:var(--danger)} .msg.ok{color:var(--ok)}
.foot{margin-top:18px; font-size:13px; color:var(--muted); text-align:center}
.brand{display:flex; align-items:center; gap:10px; margin-bottom:18px}
.brand img{width:32px; height:32px; border-radius:8px}
.brand b{font-size:15px; letter-spacing:.06em}
.small{font-size:12px; color:var(--muted)}
.badge{display:inline-block; padding:2px 8px; border-radius:999px; font-size:11px; background:#1e2842; color:var(--accent2); vertical-align:middle}
.topbar{position:fixed; top:0; left:0; right:0; display:flex; align-items:center; gap:12px; padding:10px 16px; font-size:13px; color:var(--muted)}
.topbar .spacer{flex:1}
.topbar a{color:var(--fg); text-decoration:none}

/* ---- ランディング: 文字が落ちる ---- */
.landing{min-height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:24px}
.logo-drop{display:flex; gap:.04em; font-size:clamp(56px, 12vw, 128px); font-weight:800; letter-spacing:.02em; line-height:1; margin-bottom:28px; height:1.2em}
.logo-drop span{
  display:inline-block; opacity:0; transform:translateY(-60vh);
  background:linear-gradient(180deg,#5ee1ff 0%,#1f6bff 55%,#7a3bff 100%); -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:drop 1.1s cubic-bezier(.2,.9,.3,1.15) forwards;
  filter:drop-shadow(0 8px 30px rgba(31,107,255,.35));
}
@keyframes drop{ 0%{opacity:0; transform:translateY(-60vh)} 55%{opacity:1; transform:translateY(0)} 75%{transform:translateY(-10px)} 100%{opacity:1; transform:translateY(0)} }
.tagline{opacity:0; color:var(--muted); font-size:clamp(14px,2.2vw,18px); margin:0 0 30px; animation:fadein .8s ease forwards; animation-delay:3s}
.cta{opacity:0; display:flex; gap:12px; flex-wrap:wrap; justify-content:center; animation:fadein .8s ease forwards; animation-delay:3.2s}
.cta .btn{width:auto; min-width:200px}
.cta-note{opacity:0; margin-top:26px; font-size:12.5px; color:var(--muted); animation:fadein .8s ease forwards; animation-delay:3.6s}
@keyframes fadein{to{opacity:1}}
@media (prefers-reduced-motion: reduce){
  .logo-drop span{animation:none; opacity:1; transform:none}
  .tagline,.cta,.cta-note{animation:none; opacity:1}
}

/* ---- プラン ---- */
.plans{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; width:100%; max-width:920px}
.plan{
  background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:22px 20px; display:flex; flex-direction:column; gap:10px;
  position:relative;
}
.plan.hot{border-color:var(--accent); box-shadow:0 0 0 3px rgba(31,107,255,.18)}
.plan .ribbon{position:absolute; top:-11px; left:18px; background:var(--accent); color:#fff; font-size:11px; padding:3px 9px; border-radius:999px; font-weight:600}
.plan h2{margin:4px 0 0; font-size:20px}
.plan .price{font-size:30px; font-weight:800; margin:2px 0 4px}
.plan .price small{font-size:13px; color:var(--muted); font-weight:400; margin-left:4px}
.plan ul{margin:6px 0 10px; padding-left:18px; color:var(--muted); font-size:13.5px; line-height:1.7}
.plan ul li b{color:var(--fg)}
.plan .btn{margin-top:auto}
.plan .note{font-size:12px; color:var(--muted)}
.mock-banner{background:#3b2f10; border:1px solid #7a5d16; color:#ffd36a; padding:10px 12px; border-radius:10px; font-size:12.5px; line-height:1.6; margin-bottom:14px}
