/* =====================================================
   base.css — リセット・変数・ボタン・ユーティリティ
===================================================== */
:root {
  --navy:     #0d1b2e;
  --navy2:    #142236;
  --navy3:    #1c2f48;
  --primary:  #22c55e;
  --primary2: #16a34a;
  --gold:     #f59e0b;
  --gold2:    #d97706;
  --purple:   #818cf8;
  --red:      #ef4444;
  --text:     #e2e8f0;
  --text2:    #94a3b8;
  --muted:    #64748b;
  --border:   rgba(255,255,255,0.07);
  --border2:  rgba(255,255,255,0.12);
  --surface:  rgba(255,255,255,0.04);
  --surface2: rgba(255,255,255,0.06);
  --radius-sm: 8px;
  --radius:   12px;
  --radius-lg: 20px;
  --shadow:   0 4px 24px rgba(0,0,0,0.4);
  --shadow-lg: 0 12px 48px rgba(0,0,0,0.5);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Hiragino Kaku Gothic ProN','Noto Sans JP','Meiryo',sans-serif;background:var(--navy);color:var(--text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--primary);text-decoration:none;transition:color .2s}
a:hover{color:var(--primary2)}
h1,h2,h3,h4{line-height:1.2;font-weight:800}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:700;border:none;border-radius:50px;cursor:pointer;transition:all .25s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;letter-spacing:.02em}
.btn-lg{font-size:1rem;padding:16px 40px}
.btn-md{font-size:.9rem;padding:12px 28px}
.btn-sm{font-size:.82rem;padding:9px 20px}
.btn-green{background:linear-gradient(135deg,var(--primary2),var(--primary));color:#000;box-shadow:0 4px 20px rgba(34,197,94,.35)}
.btn-green:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(34,197,94,.5)}
.btn-gold{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#000;box-shadow:0 4px 20px rgba(245,158,11,.35)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(245,158,11,.5)}
.btn-outline{background:transparent;color:var(--text2);border:1.5px solid var(--border2)}
.btn-outline:hover{border-color:var(--primary);color:var(--primary);transform:translateY(-1px)}
.btn-ghost{background:var(--surface2);color:var(--text2);border:1px solid var(--border);border-radius:var(--radius-sm)}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}
.btn-primary{background:linear-gradient(135deg,var(--primary2),var(--primary));color:#000;font-weight:700;font-size:1rem;padding:14px 36px;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}
.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px)}
.btn-secondary{background:var(--surface2);color:var(--text2);font-weight:600;font-size:.9rem;padding:12px 24px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s}
.btn-secondary:hover{border-color:var(--primary);color:var(--primary)}

/* Forms */
input[type="text"],input[type="number"],select,textarea{background:rgba(255,255,255,.04);border:1px solid var(--border2);color:var(--text);padding:10px 14px;border-radius:var(--radius-sm);font-size:.9rem;width:100%;transition:border-color .2s,box-shadow .2s;font-family:inherit;-webkit-appearance:none;appearance:none}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(34,197,94,.12)}
input::placeholder{color:#374151}
select option{background:#1c2f48;color:var(--text)}

/* Utilities */
.hidden{display:none!important}
.text-center{text-align:center}
.text-muted{color:var(--muted)}

/* Card */
.card{background:var(--navy2);border:1px solid var(--border);border-radius:var(--radius);padding:28px;margin-bottom:20px}
.card-title{font-size:1.1rem;font-weight:700;margin-bottom:20px;display:flex;align-items:center;gap:8px}
.card-title::before{content:'';width:4px;height:1.1em;background:var(--primary);border-radius:2px;flex-shrink:0}

/* Error */
.error-msg{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.25);color:#fca5a5;padding:10px 14px;border-radius:var(--radius-sm);font-size:.82rem;margin-top:8px}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:var(--navy2)}
::-webkit-scrollbar-thumb{background:var(--muted);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--primary)}

/* Animations */
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
.step-section{display:none}
.step-section.active{display:block;animation:fadeInUp .4s ease both}
