/* =====================================================================
   SOÈ BRIDE — Coming Soon (사용자 제공 디자인 · 1화면 압축 버전)
   목표: 스크롤 없이 한 화면에 · self-contained
   ===================================================================== */
:root{
  --ivory:#F7F5F0; --paper:#FCFBF8;
  --ink:#1C1917;   --ink-soft:#57534E;
  --terra:#D28048; --terra-deep:#B4622F; --terra-tint:#F4E6DA;
  --line:#E6DFD4;
  --dur:.9s; --ease:cubic-bezier(.22,.6,.2,1);
}
*{margin:0;padding:0;box-sizing:border-box}
::selection{background:var(--terra-tint);color:var(--ink)}
html,body{height:100%}
body{
  background:var(--ivory); color:var(--ink);
  font-family:'Noto Sans KR',sans-serif; font-weight:300;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  display:flex; flex-direction:column; min-height:100vh;
}

/* ── 상단·하단 얇은 프레임 라인 ── */
.frame-top,.frame-bottom{position:fixed;left:22px;right:22px;height:1px;background:var(--line);z-index:5}
.frame-top{top:22px}
.frame-bottom{bottom:22px}

main{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:30px 28px 56px;
}

/* ── 순차 페이드 인 ── */
.rise{opacity:0; transform:translateY(16px); animation:rise var(--dur) var(--ease) forwards}
@keyframes rise{to{opacity:1; transform:none}}
.d1{animation-delay:.12s}.d2{animation-delay:.28s}.d3{animation-delay:.44s}
.d4{animation-delay:.60s}.d5{animation-delay:.76s}.d6{animation-delay:.92s}
@media (prefers-reduced-motion: reduce){ .rise{animation:none; opacity:1; transform:none} }

.logo{width:min(150px,34vw); height:auto; display:block; margin:0 auto 6px}

.eyebrow{
  font-size:10px; letter-spacing:.4em; color:var(--ink-soft);
  text-transform:uppercase; margin-bottom:20px; padding-left:.4em;
}

h1{
  font-family:'Noto Serif KR',serif; font-weight:400;
  font-size:clamp(19px,2.8vw,28px); line-height:1.52; letter-spacing:-.01em;
}
h1 .accent{color:var(--terra-deep)}
h1 .thin{font-weight:300}

.divider{width:30px; height:1px; background:var(--terra); margin:18px auto}

.sub{
  font-family:'Noto Serif KR',serif; font-weight:400;
  font-size:clamp(14.5px,1.9vw,17px); color:var(--ink); margin-bottom:6px; line-height:1.5;
}
.desc{
  font-size:clamp(12.5px,1.5vw,14.5px); line-height:1.55; color:var(--ink-soft); max-width:600px;
}

/* ── LAUNCHING SOON + OPEN WEEK 통합 박스 ── */
.ow-box{
  display:inline-flex; flex-direction:column; align-items:center; gap:7px;
  background:#413A34; padding:15px 48px; margin:40px 0 16px;
  outline:1px solid #413A34; outline-offset:5px;
}
.ow-label{font-size:9px; letter-spacing:.42em; padding-left:.42em; color:var(--terra)}
.ow-title{
  font-family:'Cormorant Garamond',serif; font-weight:500;
  font-size:20px; letter-spacing:.3em; padding-left:.3em; color:#F1ECE4;
}
@media(max-width:560px){ .ow-box{padding:14px 40px} .ow-title{font-size:18px} }

/* ── CTA ── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--terra); color:#fff;
  font-family:'Noto Sans KR',sans-serif; font-weight:400;
  font-size:12px; letter-spacing:.26em; padding:15px 40px; padding-left:calc(40px + .26em);
  border:none; cursor:pointer; text-decoration:none;
  transition:background .35s var(--ease); min-height:44px;
}
.btn:hover{background:var(--terra-deep)}
.btn:disabled{background:var(--terra-tint); color:#B9A28F; cursor:not-allowed}
.btn .bell{width:14px; height:14px; flex:none; animation:ring 3.4s ease-in-out infinite; transform-origin:50% 2px}
@keyframes ring{
  0%,24%,100%{transform:rotate(0)} 4%{transform:rotate(13deg)} 8%{transform:rotate(-11deg)}
  12%{transform:rotate(7deg)} 16%{transform:rotate(-4deg)} 20%{transform:rotate(2deg)}
}
@media (prefers-reduced-motion: reduce){ .btn .bell{animation:none} }

/* ── 알림 신청 모달 ── */
.modal-overlay{
  position:fixed; inset:0; z-index:50; background:rgba(28,25,23,.5);
  display:none; align-items:center; justify-content:center; padding:24px;
}
.modal-overlay.open{display:flex}
body.modal-open{overflow:hidden}
.modal{
  background:var(--paper); border:1px solid var(--line);
  width:100%; max-width:380px; padding:40px 32px 32px; position:relative;
  max-height:88vh; overflow-y:auto; text-align:left;
  animation:modalIn .4s var(--ease) both;
}
@keyframes modalIn{from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none}}
.modal-close{
  position:absolute; top:12px; right:14px; background:none; border:none;
  font-size:26px; line-height:1; color:var(--ink-soft); cursor:pointer; padding:6px;
}
.modal-close:hover{color:var(--terra-deep)}
.modal-eyebrow{
  font-size:10px; letter-spacing:.34em; color:var(--terra-deep);
  text-transform:uppercase; text-align:center; margin-bottom:8px;
}
.modal-title{
  font-family:'Cormorant Garamond',serif; font-weight:500;
  font-size:28px; letter-spacing:.04em; text-align:center; margin-bottom:14px;
}
.modal-lead{font-size:12.5px; color:var(--ink-soft); line-height:1.8; text-align:center; margin-bottom:24px}
.modal .flash{margin:0 0 18px; max-width:none}
.page-flash{margin-top:22px; width:100%; display:flex; justify-content:center}

.nf{margin-bottom:14px}
.nf-label{display:block; font-size:10.5px; letter-spacing:.18em; color:var(--ink-soft); margin-bottom:6px}
.nf input{
  width:100%; background:none; border:none; border-bottom:1px solid var(--ink);
  padding:8px 2px; font-size:15px; font-family:'Noto Sans KR',sans-serif;
  color:var(--ink); letter-spacing:.04em; border-radius:0; min-height:40px;
}
.nf input::placeholder{color:#B5AC9E}
.nf input:focus{outline:none; border-bottom-color:var(--terra)}

/* 허니팟 (사람에게 숨김) */
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

/* 로봇이 아닙니다 */
.human{
  display:flex; align-items:center; gap:11px;
  padding:12px 15px; border:1px solid var(--line); background:var(--paper);
  cursor:pointer; margin:4px 0 16px; min-height:44px;
}
.human input{position:absolute; opacity:0; width:0; height:0}
.human-box{
  width:21px; height:21px; border:1.5px solid var(--ink-soft); background:#fff;
  flex:0 0 auto; position:relative;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.human input:focus-visible + .human-box{outline:2px solid var(--terra); outline-offset:2px}
.human input:checked + .human-box{border-color:var(--terra); background:var(--terra)}
.human input:checked + .human-box::after{
  content:""; position:absolute; left:6.5px; top:3px; width:5px; height:9px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);
}
.human-txt{font-size:13.5px; color:var(--ink)}

/* reCAPTCHA 위젯 */
.g-recaptcha{margin:6px 0 18px; display:flex; justify-content:center; min-height:78px}
@media(max-width:400px){
  .g-recaptcha{transform:scale(.86); transform-origin:center top; margin-bottom:6px}
}

.btn-full{width:100%; background:var(--ink); letter-spacing:.22em; padding:14px; padding-left:calc(14px + .22em); min-height:48px}
.btn-full:hover{background:var(--terra-deep)}

/* ── Flash ── */
.flash{
  max-width:360px; width:100%; margin:20px auto 0; padding:13px 16px;
  border:1px solid var(--line); background:var(--paper); font-size:13px;
  line-height:1.7; text-align:center;
}
.flash-error{border-color:var(--terra-deep); color:var(--terra-deep)}
.flash-info{color:var(--ink-soft)}
.flash-success{border-color:var(--terra); color:var(--terra-deep); font-family:'Noto Serif KR',serif}

/* ── Footer ── */
footer{
  position:fixed; left:0; right:0; bottom:0; padding:0 44px 22px;
  display:flex; justify-content:space-between; align-items:baseline;
  font-size:10px; letter-spacing:.24em; color:var(--ink-soft);
}
footer .fr{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:12px; letter-spacing:.06em}

@media(max-width:560px){
  .frame-top,.frame-bottom{left:12px; right:12px}
  .frame-top{top:12px} .frame-bottom{bottom:12px}
  main{padding:40px 24px 64px}
  footer{padding:0 22px 18px}
  footer .fr{display:none}
}
/* 세로로 짧은 화면 — 여백 추가 압축 */
@media(max-height:740px){
  main{padding:22px 28px 52px}
  .logo{width:188px}
  .eyebrow{margin-bottom:14px}
  .divider{margin:14px auto}
  .ow-box{margin:42px 0 32px; padding:13px 46px}
  h1{font-size:clamp(19px,2.9vw,27px); line-height:1.5}
}
