:root{--ink:#0b1f3a;--ink-soft:#1a3358;--paper:#f7f4ef;--paper-deep:#ebe4d8;--accent:#e11d48;--accent-deep:#be123c;--mint:#0f766e;--text:#142033;--muted:#5b6b7c;--line:#0b1f3a1f;--shadow:0 18px 50px #0b1f3a1f;--radius:18px;--font:"Be Vietnam Pro", "Noto Sans KR", sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(circle at 12% 18%,#e11d4829,#0000 34%),radial-gradient(circle at 88% 8%,#0f766e24,#0000 28%),linear-gradient(160deg,#f8f6f1 0%,#eef3f8 48%,#f4efe8 100%);margin:0}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}button,input,textarea,select{font:inherit}.container{width:min(1120px,100% - 2rem);margin-inline:auto}.btn{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.35rem;transition:transform .2s,background .2s,box-shadow .2s;display:inline-flex}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px #0b1f3a33}.btn-accent{background:var(--accent)}.btn-accent:hover{background:var(--accent-deep)}.btn-ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.field{gap:.45rem;display:grid}.field label{font-size:.92rem;font-weight:600}.field input,.field textarea,.field select{border:1px solid var(--line);background:#fffc;border-radius:12px;outline:none;width:100%;padding:.85rem 1rem}.field input:focus,.field textarea:focus,.field select:focus{border-color:#e11d4873;box-shadow:0 0 0 3px #e11d481f}.badge{color:var(--mint);background:#0f766e1f;border-radius:999px;align-items:center;padding:.28rem .7rem;font-size:.78rem;font-weight:600;display:inline-flex}.section-title{gap:.4rem;margin-bottom:1.5rem;display:grid}.section-title h2{margin:0;font-size:clamp(1.5rem,2vw,2rem)}.section-title p{color:var(--muted);margin:0}.empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);background:#ffffff73;padding:2rem}.fade-enter-active,.fade-leave-active{transition:opacity .25s,transform .25s}.fade-enter-from,.fade-leave-to{opacity:0;transform:translateY(8px)}
