/* Public "coming soon" page and the password-gate page. Says nothing about what the service is. */
:root{--coral:#FF5A4E;--coral-deep:#C92B21;--yellow:#FFD23F;--cream:#FFF7EC;--ink:#2B2320;--paper:#fff;
  --font:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",system-ui,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:400 1.0625rem/1.6 var(--font);-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-x:hidden}
.dots{position:fixed;inset:0;z-index:0;background:radial-gradient(circle at 1.5px 1.5px,rgba(43,35,32,.13) 1.5px,transparent 0) 0 0/24px 24px}
.orb{position:fixed;border-radius:50%;border:3px solid var(--ink);z-index:0}
.orb.o1{width:min(52vw,420px);aspect-ratio:1;background:var(--yellow);right:-9vw;top:-11vh}
.orb.o2{width:min(34vw,280px);aspect-ratio:1;background:var(--coral);left:-8vw;bottom:-9vh}
.orb.o3{width:46px;height:46px;background:var(--cream);left:14vw;top:16vh}
.stage{position:relative;z-index:1;min-height:100svh;display:grid;place-content:center;justify-items:center;gap:30px;padding:48px 24px;text-align:center}
.lockup{display:grid;justify-items:center;gap:6px}
.mark{width:clamp(120px,30vw,168px);height:auto;filter:drop-shadow(0 7px 0 var(--ink))}
.mark .tap{transform-box:fill-box;transform-origin:50% 100%}
.word{margin:10px 0 0;font-size:clamp(3.1rem,15vw,6.4rem);line-height:1.02;font-weight:900;letter-spacing:-.04em;display:flex;gap:.02em}
.word .w1{color:var(--ink)}
.word .w2{color:var(--coral)}
.latin{margin:0;font-weight:700;letter-spacing:.42em;font-size:clamp(.72rem,2.6vw,.95rem);color:#8a7a70;padding-left:.42em}
.soonline{margin:0;display:inline-flex;align-items:center;gap:14px;background:var(--yellow);border:3px solid var(--ink);border-radius:999px;padding:.55em 1.5em;font-weight:800;font-size:clamp(1.1rem,4.2vw,1.45rem);box-shadow:0 6px 0 var(--ink)}
.soonline .sep{width:9px;height:9px;border-radius:50%;background:var(--ink)}
.foot{position:fixed;left:0;right:0;bottom:14px;z-index:1;text-align:center;font-size:.8rem;font-weight:600;color:#8a7a70}
@media (prefers-reduced-motion:no-preference){
  .mark{animation:drop .8s cubic-bezier(.2,1.5,.35,1) .1s both}
  .mark .tap{animation:tap .45s cubic-bezier(.2,1.6,.4,1) both}
  .mark .t1{animation-delay:.75s}.mark .t2{animation-delay:.9s}.mark .t3{animation-delay:1.05s}
  .word .w1{animation:stamp .55s cubic-bezier(.2,1.5,.4,1) .55s both}
  .word .w2{animation:stamp .55s cubic-bezier(.2,1.5,.4,1) .85s both}
  .latin{animation:rise .6s ease 1.2s both}
  .soonline{animation:rise .7s cubic-bezier(.2,1.3,.4,1) 1.45s both}
  .orb.o1{animation:float 9s ease-in-out infinite}.orb.o2{animation:float 11s ease-in-out -4s infinite}.orb.o3{animation:float 7s ease-in-out -2s infinite}
  @keyframes drop{0%{transform:translateY(-120px) rotate(-12deg);opacity:0}60%{opacity:1}100%{transform:none;opacity:1}}
  @keyframes tap{0%{transform:scale(0);opacity:0}100%{transform:scale(1);opacity:1}}
  @keyframes stamp{0%{transform:scale(1.7) rotate(-6deg);opacity:0}100%{transform:none;opacity:1}}
  @keyframes rise{0%{transform:translateY(16px);opacity:0}100%{transform:none;opacity:1}}
  @keyframes float{50%{transform:translateY(-14px)}}
}

/* ---------- password gate ---------- */
.gate{position:relative;z-index:1;min-height:100svh;display:grid;place-items:center;padding:28px 20px}
.gate-card{width:min(100%,420px);background:var(--paper);border:3px solid var(--ink);border-radius:28px;box-shadow:0 8px 0 var(--ink);padding:30px 26px 28px;text-align:center}
.gate-card .mark{width:84px;filter:none;margin:0 auto 6px;animation:none}
.gate-card h1{margin:.2em 0 .1em;font-size:1.55rem;font-weight:900;letter-spacing:-.02em}
.gate-card p{margin:0 0 1.2em;color:#5E5049;font-weight:600;font-size:.97rem}
.gate-card label{display:block;text-align:left;font-weight:800;margin-bottom:.35em;font-size:.95rem}
.gate-card input[type=password]{width:100%;min-height:54px;border:3px solid var(--ink);border-radius:16px;padding:0 16px;font:700 1.1rem var(--font);background:var(--cream);color:var(--ink);letter-spacing:.05em}
.gate-card input[type=password]:focus{outline:3px solid var(--coral);outline-offset:2px}
.gate-card button{margin-top:16px;width:100%;min-height:56px;border:3px solid var(--ink);border-radius:999px;background:var(--yellow);font:900 1.1rem var(--font);color:var(--ink);box-shadow:0 5px 0 var(--ink);cursor:pointer;transition:transform .08s,box-shadow .08s}
.gate-card button:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--ink)}
.gate-card button:active{transform:translateY(5px);box-shadow:none}
.err{margin:0 0 1em!important;color:var(--coral-deep)!important;font-weight:800!important;background:#FFE9E6;border:2px solid var(--coral-deep);border-radius:12px;padding:.5em .8em}
.tiny{margin:1.2em 0 0!important;font-size:.82rem!important;font-weight:600!important}
