:root{
  --color-ink:        #000000;
  --color-bg:         #FFFFFF;
  --color-cream:      #F7F8F8;
  --color-gold:       #CBC1AF;
  --color-gold-line:  rgba(203,193,175,.5);
  --color-text:       #1A1A1A;
  --color-text-weak:  #8A8A8A;
  --font-serif: "Hiragino Mincho ProN","Hiragino Mincho W3","YuMincho","Yu Mincho",serif;
  --font-en:    "Plantagenet Cherokee","Big Caslon","Palatino Linotype","Book Antiqua",Georgia,serif;
  --maxw: 430px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{
  font-family:var(--font-serif);font-weight:400;color:var(--color-text);
  background:var(--color-cream);font-size:15px;line-height:1.9;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input{font-family:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;background:var(--color-bg);
  min-height:100svh;display:flex;flex-direction:column;overflow:hidden;position:relative;}
@media (min-width:520px){.wrap{box-shadow:0 0 80px rgba(0,0,0,.12);}}
.site-header{background:var(--color-ink);padding:16px 0;text-align:center;flex:none;}
.site-header .logo{height:24px;margin:0 auto;filter:brightness(0) invert(1);}
.invite-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:40px 28px;}
.en-label{font-family:var(--font-en);color:var(--color-gold);font-size:11.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;}
.invite-head{font-family:var(--font-serif);font-weight:600;font-size:22px;letter-spacing:.12em;
  color:var(--color-ink);margin-top:12px;}
.invite-lead{font-size:12.5px;line-height:1.9;color:var(--color-text-weak);letter-spacing:.03em;
  margin-top:16px;max-width:280px;}
.invite-form{width:100%;max-width:300px;margin-top:28px;}
.invite-input{width:100%;height:48px;border:1px solid var(--color-ink);border-radius:3px;
  text-align:center;font-size:14px;letter-spacing:.14em;color:var(--color-ink);
  background:var(--color-bg);text-transform:uppercase;}
.invite-input::placeholder{color:var(--color-text-weak);letter-spacing:.08em;text-transform:none;}
.invite-input:focus{outline:none;border-color:var(--color-gold);
  box-shadow:0 0 0 3px rgba(203,193,175,.3);}
.invite-input.shake{animation:shake .4s ease;}
@keyframes shake{
  10%,90%{transform:translateX(-1px);} 20%,80%{transform:translateX(2px);}
  30%,50%,70%{transform:translateX(-4px);} 40%,60%{transform:translateX(4px);}
}
.invite-submit{width:100%;height:52px;margin-top:12px;background:var(--color-ink);color:#fff;
  font-size:13px;letter-spacing:.14em;border-radius:3px;transition:filter .2s ease,transform .2s ease;}
.invite-submit:active{transform:translateY(1px);filter:brightness(1.15);}
.invite-error{font-size:11.5px;color:var(--color-ink);line-height:1.8;margin-top:14px;
  padding-top:12px;border-top:1px solid var(--color-gold-line);display:none;}
.invite-error.is-shown{display:block;}
.invite-note{font-size:10.5px;color:var(--color-text-weak);letter-spacing:.03em;margin-top:16px;}
.site-footer{flex:none;text-align:center;padding:20px 26px calc(22px + env(safe-area-inset-bottom));
  border-top:1px solid var(--color-gold-line);}
.site-footer .logo{height:16px;margin:0 auto 10px;}
.foot-copy{font-family:var(--font-en);font-size:9.5px;letter-spacing:.14em;color:var(--color-text-weak);}