@charset "UTF-8";
:root{color-scheme:light;--paper:#f5f1eb;--ink:#433e39;--muted:#716a63;--wine:#743b43;--line:#dfd8cf;--serif:Georgia,"Noto Serif KR","Batang",serif;--sans:"Pretendard","Malgun Gothic",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #867855;outline-offset:4px}button,input{touch-action:manipulation}p,h1,h2{margin:0}.login-header,.login-footer{max-width:1180px;margin:auto;padding-inline:44px;display:flex;align-items:center;justify-content:space-between}.login-header{height:98px;border-bottom:1px solid var(--line);gap:20px}.login-header a{font:600 27px var(--serif);letter-spacing:-.8px;white-space:nowrap}.login-header a>span:first-child{color:var(--wine);margin-right:8px;font-size:31px;vertical-align:-2px}.brand-dot{color:var(--wine)}.header-caption{font-size:11px;color:var(--muted);letter-spacing:.4px}.login-layout{max-width:1080px;margin:70px auto 63px;padding:0 48px;display:grid;grid-template-columns:1.15fr 1fr;gap:88px;align-items:center}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2.2px;color:var(--wine);line-height:1.7}.invitation .eyebrow span{font-size:15px;margin-right:7px}h1{font-family:var(--serif);font-weight:500;font-size:49px;line-height:1.48;letter-spacing:-2px;margin-top:20px}h1 em{font-style:normal;color:var(--wine)}.invitation-copy{margin-top:21px;font-size:12px;line-height:2.05;color:var(--muted)}.letter-art{height:230px;width:300px;margin:32px 0 16px 25px;position:relative;transform:rotate(-5deg)}.letter-paper{width:242px;height:192px;background:#fbf8f3;border:1px solid #e5ddd3;box-shadow:0 4px 16px #5e53351a;position:absolute;top:0;left:28px;padding:24px;text-align:center;transform:rotate(7deg)}.letter-to{display:block;font-size:6px;letter-spacing:1.6px;color:#6d7361}.letter-names{display:block;font-family:var(--serif);font-size:24px;letter-spacing:2px;margin-top:22px}.letter-names i{font-size:19px;color:var(--wine);margin:0 10px}.letter-line{display:block;height:1px;width:135px;background:#e8e3d6;margin:17px auto 0}.letter-line.short{width:100px;margin-top:9px}.letter-sign{display:block;font:italic 12px var(--serif);color:#716a63;margin-top:14px}.envelope{position:absolute;bottom:0;left:0;width:296px;height:128px;background:#d9dfcc;border:1px solid #cbd3bd;box-shadow:0 8px 19px #49513312;overflow:hidden}.envelope:before,.envelope:after{content:"";position:absolute;bottom:0;width:0;height:0;border-style:solid}.envelope:before{left:0;border-width:64px 0 64px 149px;border-color:transparent transparent transparent #e3e6d7}.envelope:after{right:0;border-width:64px 149px 64px 0;border-color:transparent #e9eadf transparent transparent}.envelope-fold{position:absolute;left:45px;bottom:-76px;width:205px;height:170px;background:#e6e9da;transform:rotate(45deg);border:1px solid #d9decb;z-index:1}.wax-seal{position:absolute;z-index:2;top:34px;left:126px;width:47px;height:47px;border-radius:50%;background:var(--wine);color:#eee0cb;display:grid;place-items:center;font:26px var(--serif);border:1px solid #8f525a;outline:3px solid #743b438c;box-shadow:2px 3px 4px #0002;transform:rotate(12deg)}.art-spark{position:absolute;color:#b5a17a}.spark-one{font-size:31px;right:-16px;top:3px}.spark-two{font-size:13px;left:-20px;bottom:42px}.invitation-footnote{font-size:7px;letter-spacing:2px;color:#6d7361;margin:25px 0 0 50px}.login-card{background:#fbf8f3;border:1px solid #e2d9ce;padding:39px 36px 27px;box-shadow:0 14px 45px #4c422811;position:relative;border-radius:3px}.paper-tape{position:absolute;top:-12px;left:calc(50% - 37px);width:74px;height:26px;background:#dbdec9bd;transform:rotate(-5deg)}.login-card h2{font-family:var(--serif);font-size:26px;line-height:1.5;letter-spacing:-1px;font-weight:500;margin-top:9px}.card-description{font-size:11px;color:var(--muted);line-height:1.8;margin-top:10px}form{margin-top:29px}.form-field{margin-top:21px}.form-field label{display:block;font-size:11px;font-weight:600;margin-bottom:9px;color:#645d56}.form-field input{width:100%;border:1px solid #d8d1c8;border-radius:4px;padding:14px;background:#f5f0e9;color:var(--ink);font-size:13px;height:48px;min-width:0}.form-field input::placeholder{color:var(--muted);font-size:11px}.form-field input:focus{border-color:#8e9c7f}.password-field{position:relative}.password-field input{padding-right:59px}.password-field button{position:absolute;right:4px;top:4px;height:40px;min-width:47px;padding:0 10px;background:transparent;border:0;color:var(--muted);font-size:10px;border-radius:3px}.password-field button:hover{background:#ece7df}.form-error{color:#933c43;font-size:11px;line-height:1.8;margin-top:14px}.form-error:empty{display:none}.submit-button{border:0;border-radius:4px;background:var(--wine);color:#fffaef;min-height:49px;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:12px;font-weight:600;margin-top:25px;transition:background .2s}.submit-button:hover{background:#5c2b33}.submit-button:disabled{opacity:.65;cursor:wait}.submit-button>span:last-child{font-size:16px;font-weight:400}.card-footer{border-top:1px solid #e8e1d8;margin-top:27px;padding-top:23px;display:flex;align-items:center;justify-content:center;gap:12px}.card-footer>span{color:#a7957a;font:27px var(--serif)}.card-footer p{font-size:10px;color:var(--muted);line-height:1.8}.login-footer{min-height:73px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.login-footer>span:last-child{font:italic 13px var(--serif)}
@media(min-width:1500px){.login-layout{margin-top:90px;margin-bottom:90px}.login-header{height:110px}}
@media(max-width:900px){.login-layout{gap:42px;padding-inline:32px}.login-card{padding-inline:27px}h1{font-size:42px}.letter-art{margin-left:6px;transform:scale(.9) rotate(-5deg);transform-origin:left center}.invitation-footnote{margin-left:10px}.login-header,.login-footer{padding-inline:30px}}
@media(max-width:660px){.login-header{height:74px;padding-inline:22px}.login-header a{font-size:24px}.header-caption{font-size:9px}.login-layout{grid-template-columns:1fr;margin:35px auto 38px;max-width:460px;padding-inline:26px;gap:29px}.invitation{text-align:center}.invitation .eyebrow{font-size:8px;letter-spacing:1.6px}h1{font-size:35px;line-height:1.45;margin-top:14px;letter-spacing:-1.5px}.invitation-copy{font-size:11px;margin-top:14px;line-height:1.9}.letter-art,.invitation-footnote{display:none}.login-card{padding:29px 27px 23px;margin-top:4px}.login-card h2{font-size:25px}.login-card form{margin-top:21px}.form-field{margin-top:17px}.form-field input{font-size:16px}.login-footer{padding-inline:24px;min-height:64px}.card-footer{margin-top:22px;padding-top:18px}.submit-button{margin-top:22px}}
@media(max-width:360px){.header-caption{display:none}.login-layout{padding-inline:18px}.login-card{padding-inline:22px}h1{font-size:32px}}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #f5f0e9 inset;-webkit-text-fill-color:var(--ink);caret-color:var(--ink)}
.login-header .login-brand{display:inline-flex;align-items:center;gap:8px;max-width:100%;font-size:23px;white-space:normal}
.login-brand .brand-name{font-size:inherit;line-height:1.5;word-break:keep-all}
.login-header .login-brand>.brand-icon{flex-shrink:0;margin-right:0;font-size:28px}
@media(max-width:660px){.login-header{height:auto;min-height:83px;padding-block:16px;flex-wrap:wrap;gap:5px}.login-header .login-brand{font-size:20px}.login-header .login-brand>.brand-icon{font-size:24px}.header-caption{flex-basis:100%;padding-left:32px}}
@media(max-width:380px){.login-header .login-brand{font-size:18px;gap:6px}.login-header .login-brand>.brand-icon{font-size:22px}.header-caption{padding-left:28px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.login-brand .brand-logo{width:73px;height:55px;object-fit:contain;flex-shrink:0}.login-header .login-brand .brand-name{color:var(--ink)}@media(max-width:660px){.login-brand .brand-logo{width:52px;height:40px}.login-header a.login-brand{gap:8px;font-size:17px}}

/* Keep the sign-in controls close to the first phone viewport. */
@media (max-width: 760px) {
  .login-header { height: auto; min-height: 78px; padding: calc(14px + env(safe-area-inset-top, 0px)) 20px 14px; gap: 8px; }
  .login-header .login-brand { gap: 10px; font-size: 17px; }
  .login-header .brand-logo { width: 48px; height: 42px; }
  .login-header .brand-name { line-height: 1.45; }
  .header-caption { display: none; }
  .login-layout { grid-template-columns: 1fr; max-width: 460px; margin: 22px auto 24px; padding-inline: 20px; gap: 20px; }
  .invitation { text-align: left; }
  .invitation .eyebrow,
  .invitation-copy,
  .letter-art,
  .invitation-footnote { display: none; }
  .invitation h1 { margin: 0; font-size: 27px; line-height: 1.4; letter-spacing: -.8px; }
  .login-card { margin-top: 4px; padding: 26px 22px 18px; border-radius: 12px; }
  .login-card h2 { margin-top: 7px; font-size: 24px; }
  .card-description { margin-top: 7px; font-size: 12px; line-height: 1.7; }
  .login-card form { margin-top: 18px; }
  .form-field { margin-top: 16px; }
  .form-field label { margin-bottom: 7px; font-size: 12px; }
  .form-field input { height: 50px; font-size: 16px; }
  .form-field input::placeholder { font-size: 12px; }
  .password-field input { padding-right: 65px; }
  .password-field button { top: 3px; right: 3px; min-width: 52px; height: 44px; font-size: 12px; }
  .submit-button { min-height: 50px; margin-top: 19px; font-size: 14px; }
  .login-card .install-login-button { width: 100%; min-height: 44px; margin-top: 10px; }
  .card-footer { display: none; }
  .login-footer { min-height: 56px; padding: 15px 20px calc(15px + env(safe-area-inset-bottom, 0px)); font-size: 11px; }
}
@media (max-width: 370px) {
  .login-header { padding-inline: 16px; }
  .login-header .login-brand { font-size: 16px; gap: 8px; }
  .login-header .brand-logo { width: 42px; }
  .login-layout { padding-inline: 16px; }
  .login-card { padding-inline: 18px; }
  .invitation h1 { font-size: 25px; }
}
