:root{--porcelain:#f7f7f4;--surface:#ffffff;--surface-2:#f0f1ee;--border:#e9e9e4;--border-vis:#d9d9d2;--text-display:#0a0c14;--text-primary:#1c1e26;--text-secondary:#6b6d72;--text-disabled:#a2a4a8;--cobalt-950:#0a1560;--cobalt-800:#12269b;--cobalt-600:#2247d4;--cobalt-500:#2e5be6;--cobalt-400:#5b85ec;--cobalt-200:#bfd0f5;--cobalt-100:#e4ebfa;--cobalt-050:#f1f5fd;--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-soft:cubic-bezier(0.22,1,0.36,1);--font-display:"Doto","Space Mono",monospace;--font-body:"Space Grotesk","Noto Sans KR",system-ui,sans-serif;--font-mono:"Space Mono","Noto Sans KR",monospace;--font-kr:"Noto Sans KR",system-ui,sans-serif}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%}body{font-family:var(--font-body);background:var(--porcelain);color:var(--text-primary);-webkit-font-smoothing:antialiased;overflow:hidden}::selection{background:var(--cobalt-100);color:var(--cobalt-800)}button{background:none;border:none;cursor:pointer}button,input,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border-vis);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--cobalt-200)}::-webkit-scrollbar-track{background:transparent}.ink-field{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.ink-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4;will-change:transform}.ink-a{width:620px;height:620px;left:-160px;top:-180px;background:radial-gradient(circle at 40% 40%,#2e5be6 0,#5b85ec 45%,transparent 70%);animation:drift-a 46s var(--ease-soft) infinite alternate}.ink-b{width:540px;height:540px;right:-140px;bottom:-160px;background:radial-gradient(circle at 60% 60%,#12269b 0,#2e5be6 50%,transparent 72%);animation:drift-b 58s var(--ease-soft) infinite alternate;opacity:.3}.ink-c{width:380px;height:380px;right:18%;top:-140px;background:radial-gradient(circle at 50% 50%,#5b85ec 0,transparent 68%);animation:drift-c 38s var(--ease-soft) infinite alternate;opacity:.25}@keyframes drift-a{0%{transform:translate(0) scale(1)}50%{transform:translate(90px,60px) scale(1.12)}to{transform:translate(30px,130px) scale(.96)}}@keyframes drift-b{0%{transform:translate(0) scale(1)}to{transform:translate(-120px,-80px) scale(1.18)}}@keyframes drift-c{0%{transform:translate(0)}to{transform:translate(-70px,90px) scale(1.1)}}.dot-grid{background-image:radial-gradient(circle,rgba(34,71,212,.1) 1px,transparent 0);background-size:18px 18px}.glass{background:rgba(255,255,255,.55);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid rgba(255,255,255,.7)}.glass-deep{background:rgba(247,248,252,.72);backdrop-filter:blur(32px) saturate(1.6);-webkit-backdrop-filter:blur(32px) saturate(1.6)}.label{font-family:var(--font-mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-secondary)}.label-cobalt{color:var(--cobalt-600)}.doto{font-family:var(--font-display);font-variation-settings:"ROND" 100}.rise{animation:rise .6s var(--ease-spring) both}@keyframes rise{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:none}}.rise-soft{animation:rise-soft .5s var(--ease-soft) both}@keyframes rise-soft{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.pop{animation:pop .5s var(--ease-spring) both}@keyframes pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}@keyframes ink-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.6}}.pill{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:9px 18px;border-radius:999px;border:1px solid var(--cobalt-600);color:var(--cobalt-600);background:rgba(255,255,255,.5);transition:all .3s var(--ease-spring);display:inline-flex;align-items:center;gap:8px}.pill:hover{background:var(--cobalt-600);color:#fff;transform:translateY(-1px)}.pill:active{transform:translateY(0) scale(.97)}.pill-ghost{border-color:var(--border-vis);color:var(--text-secondary)}.pill-ghost:hover{background:var(--text-primary);border-color:var(--text-primary)}.field{width:100%;border:1px solid var(--border-vis);border-radius:10px;padding:10px 12px;font-size:14px;font-family:var(--font-kr);background:rgba(255,255,255,.8);outline:none;transition:border-color .25s var(--ease-soft),box-shadow .25s var(--ease-soft)}.field:focus{border-color:var(--cobalt-500);box-shadow:0 0 0 3px var(--cobalt-100)}