:root{
  --pink:#ec7280;
  --pink-dark:#d95768;
  --pink-soft:#fff1f2;
  --mint:#8bd5ca;
  --mint-soft:#e8f8f6;
  --gold:#c8a158;
  --brown:#4e3327;
  --brown-soft:#7a5a4c;
  --ink:#2f2724;
  --muted:#7e706b;
  --line:#eaded8;
  --bg:#fffaf8;
  --white:#fff;
  --shadow:0 24px 70px rgba(109,72,60,.13);
  --shadow-soft:0 16px 44px rgba(109,72,60,.10);
  --radius:28px;
  --serif:"Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --sans:"Noto Sans JP", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{
  min-height:100vh;margin:0;font-family:var(--sans);color:var(--ink);
  background:
    radial-gradient(circle at 12% 18%, rgba(236,114,128,.14) 0 130px, transparent 132px),
    radial-gradient(circle at 88% 12%, rgba(139,213,202,.16) 0 160px, transparent 162px),
    radial-gradient(circle at 75% 82%, rgba(200,161,88,.13) 0 180px, transparent 182px),
    linear-gradient(135deg,#fffaf8 0%,#fff4f4 48%,#f7eee8 100%);
  line-height:1.8;letter-spacing:.05em;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
.auth-page{position:relative;min-height:100vh;padding:28px;display:grid;place-items:center;overflow:hidden}
.confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.confetti span{position:absolute;display:block;border-radius:3px;opacity:.8;transform:rotate(var(--r));animation:float 8s ease-in-out infinite}
.confetti span:nth-child(1){left:9%;top:18%;width:10px;height:18px;background:#ec7280;--r:22deg;animation-delay:-1s}
.confetti span:nth-child(2){left:20%;top:78%;width:9px;height:9px;background:#8bd5ca;border-radius:50%;--r:0deg;animation-delay:-5s}
.confetti span:nth-child(3){left:82%;top:20%;width:12px;height:12px;background:#c8a158;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);--r:0deg;animation-delay:-2s}
.confetti span:nth-child(4){left:91%;top:68%;width:8px;height:18px;background:#b9a7dc;--r:-24deg;animation-delay:-6s}
.confetti span:nth-child(5){left:45%;top:10%;width:7px;height:7px;background:#8bd5ca;border-radius:50%;--r:0deg;animation-delay:-3s}
.confetti span:nth-child(6){left:58%;top:90%;width:13px;height:13px;background:#f0b36c;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);--r:0deg;animation-delay:-4s}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -18px}}
.auth-shell{
  position:relative;z-index:1;width:min(1120px,100%);min-height:690px;
  display:grid;grid-template-columns:.95fr 1.05fr;background:rgba(255,255,255,.78);
  border:1px solid rgba(234,222,216,.85);border-radius:38px;box-shadow:var(--shadow);
  overflow:hidden;backdrop-filter:blur(18px);
}
.visual-panel{position:relative;padding:40px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:linear-gradient(145deg,rgba(255,241,242,.82),rgba(255,255,255,.56));}
.visual-panel:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 28%,rgba(255,255,255,.9),transparent 31%),radial-gradient(circle at 12% 82%,rgba(236,114,128,.13),transparent 38%);pointer-events:none}
.logo-link{position:relative;z-index:2;display:inline-flex;width:210px;align-items:center}.logo-link img{width:100%;height:auto;display:block}
.visual-copy{position:relative;z-index:2;max-width:430px;margin-top:56px}.eyebrow{display:inline-flex;gap:10px;align-items:center;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.16em;margin-bottom:18px}.eyebrow:before{content:"";width:28px;height:1px;background:var(--gold)}
.visual-copy h1{font-family:var(--serif);font-size:clamp(36px,4.3vw,58px);line-height:1.35;letter-spacing:.12em;font-weight:500;margin:0 0 20px;color:#30231f}.visual-copy h1 em{font-style:normal;color:var(--pink)}.visual-copy p{margin:0;color:#62534e;font-size:15px}
.invite-preview{position:relative;z-index:2;margin-top:44px;width:min(365px,100%);padding:18px;background:rgba(255,255,255,.68);border:1px solid rgba(234,222,216,.9);border-radius:28px;box-shadow:var(--shadow-soft)}
.invite-card{position:relative;min-height:285px;border-radius:22px;background:linear-gradient(180deg,#fff 0%,#fff8f4 100%);border:1px solid rgba(200,161,88,.26);padding:28px 26px;text-align:center;overflow:hidden}.invite-card:before,.invite-card:after{content:"";position:absolute;border-radius:50%;background:rgba(236,114,128,.08)}.invite-card:before{width:110px;height:110px;left:-38px;top:-42px}.invite-card:after{width:150px;height:150px;right:-70px;bottom:-72px}.invite-card .small{position:relative;color:var(--gold);font-family:var(--serif);font-size:16px}.invite-card .title{position:relative;margin:8px 0 14px;font-family:var(--serif);font-size:40px;line-height:1;color:var(--gold);font-style:italic}.invite-card .text{position:relative;font-size:12px;color:#73625b}.invite-card .date{position:relative;margin:20px auto 14px;padding:10px 14px;width:80%;border-block:1px solid rgba(200,161,88,.28);font-size:12px;color:#4e3327}.invite-card .chip{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:8px 20px;border-radius:999px;background:var(--pink);color:#fff;font-size:12px;font-weight:700}
.form-panel{position:relative;padding:56px min(6vw,72px);display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.86)}.form-inner{width:min(430px,100%)}.back-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:28px;color:var(--muted);font-size:13px;font-weight:700}.back-link:hover{color:var(--pink)}.form-head{text-align:left;margin-bottom:28px}.form-head .badge{display:inline-flex;align-items:center;gap:8px;padding:7px 13px;border-radius:999px;background:var(--pink-soft);color:var(--pink-dark);font-size:12px;font-weight:700;margin-bottom:16px}.form-head h2{margin:0 0 10px;font-family:var(--serif);font-size:38px;letter-spacing:.08em;font-weight:500;color:var(--brown)}.form-head p{margin:0;color:var(--muted);font-size:14px}.auth-form{display:grid;gap:16px}.field{display:grid;gap:8px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.label-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.field label{font-size:13px;font-weight:700;color:var(--brown-soft)}.field a{font-size:12px;font-weight:700;color:var(--pink-dark)}.input{width:100%;height:54px;border:1px solid var(--line);border-radius:16px;background:#fff;padding:0 17px;color:var(--ink);outline:none;transition:.2s;box-shadow:0 6px 20px rgba(109,72,60,.04)}.input::placeholder{color:#b7aaa5}.input:focus{border-color:rgba(236,114,128,.72);box-shadow:0 0 0 4px rgba(236,114,128,.12),0 6px 20px rgba(109,72,60,.04)}.check-line{display:flex;align-items:flex-start;gap:10px;margin:2px 0;color:var(--muted);font-size:13px}.check-line input{width:18px;height:18px;margin-top:5px;accent-color:var(--pink)}.check-line a{color:var(--pink-dark);font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;padding:0 26px;border-radius:999px;font-weight:700;letter-spacing:.08em;border:1px solid transparent;cursor:pointer;transition:.24s}.btn-primary{background:linear-gradient(135deg,#f17b86,#e86175);color:white;box-shadow:0 16px 34px rgba(232,97,117,.28)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 20px 40px rgba(232,97,117,.34)}.btn-ghost{background:#fff;border-color:var(--line);color:var(--brown)}.btn-ghost:hover{border-color:var(--pink);color:var(--pink)}.divider{display:flex;align-items:center;gap:14px;margin:10px 0;color:#b4a7a1;font-size:12px}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.switch-text{text-align:center;margin:20px 0 0;color:var(--muted);font-size:14px}.switch-text a{color:var(--pink-dark);font-weight:800}.mini-note{margin-top:18px;padding:14px 16px;border-radius:18px;background:rgba(232,248,246,.7);color:#5c746f;font-size:12px}.steps-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.step-mini{padding:13px 10px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(234,222,216,.78);text-align:center;color:var(--brown-soft);font-size:11px;font-weight:700}.step-mini span{display:block;margin:0 auto 4px;width:24px;height:24px;border-radius:50%;background:var(--pink-soft);color:var(--pink-dark);line-height:24px;font-size:11px}.terms-small{font-size:12px;color:var(--muted);text-align:center;margin:14px 0 0}.terms-small a{color:var(--pink-dark);font-weight:700}.only-mobile-logo{display:none}
.social-buttons{display:grid;gap:12px}.btn-social{position:relative;background:#fff;border-color:var(--line);color:var(--brown);letter-spacing:.04em;box-shadow:0 8px 22px rgba(109,72,60,.05)}.btn-social:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(109,72,60,.08)}.social-icon{position:absolute;left:18px;display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 7px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:0;color:#fff}.btn-line{border-color:rgba(6,199,85,.24)}.btn-line:hover{border-color:#06c755;color:#05a647}.btn-line .social-icon{background:#06c755;font-size:9px}.btn-facebook{border-color:rgba(24,119,242,.22)}.btn-facebook:hover{border-color:#1877f2;color:#1877f2}.btn-facebook .social-icon{background:#1877f2;font-family:Arial,sans-serif;font-size:20px;line-height:1}.btn-google:hover{border-color:#d6a85f;color:#b68536}.btn-google .social-icon{background:#fff;color:#444;border:1px solid #e5ddd8;font-family:Arial,sans-serif;font-size:15px}

@media (max-width: 920px){.auth-page{padding:18px}.auth-shell{grid-template-columns:1fr;min-height:unset;border-radius:30px}.visual-panel{display:none}.form-panel{padding:34px 22px 38px}.only-mobile-logo{display:flex;width:190px;margin:0 auto 28px}.form-head{text-align:center}.field-row{grid-template-columns:1fr}.back-link{margin-bottom:16px}.form-head h2{font-size:34px}.steps-mini{grid-template-columns:1fr 1fr}}
@media (max-width: 520px){body{letter-spacing:.03em}.auth-page{padding:0;background:#fffaf8}.auth-shell{border-radius:0;min-height:100vh;border:0}.form-panel{align-items:flex-start;padding:28px 18px 34px}.form-head h2{font-size:31px}.input{height:52px;border-radius:14px}.btn{min-height:54px}.steps-mini{grid-template-columns:1fr}.check-line{font-size:12px}.field label{font-size:12px}}

/* --- Laravel 側の追加パーツ（バリデーションエラー・フラッシュ表示） --- */
.alert-box{margin:0 0 18px;padding:14px 16px;border-radius:16px;background:#fdecec;border:1px solid #f3c9c9;color:#b3453f;font-size:13px;line-height:1.7}
.alert-box ul{margin:0;padding-left:1.1em}
.alert-box li+li{margin-top:4px}
.notice-box{margin:0 0 18px;padding:14px 16px;border-radius:16px;background:#eef7f0;border:1px solid #c9e3ce;color:#3e7a4d;font-size:13px}
/* ソーシャルボタンは <a> で実装するため、button 前提の指定を補う */
a.btn-social{text-decoration:none}

/* --- 結果表示ページ（仮登録完了・本登録完了・リンク無効・退会完了）用 --- */
.result-mark{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;margin:0 0 22px;font-size:34px;line-height:1;background:var(--pink-soft);color:var(--pink-dark)}
.result-mark.is-ok{background:#e9f7ef;color:#3e8f5c}
.result-mark.is-warn{background:#fdf1e3;color:#c78a3a}
.result-body{margin:0 0 24px;color:var(--muted);font-size:14px;line-height:1.9}
.result-body strong{color:var(--brown)}
.result-actions{display:grid;gap:12px;margin-top:24px}
.result-actions.is-row{grid-template-columns:1fr 1fr}
@media (max-width:520px){.result-actions.is-row{grid-template-columns:1fr}}
