:root{--bg: #fbf6ee;--bg-warm: #ece9f7;--card: #ffffff;--ink: #1f1b3a;--ink-soft: #4d4a6e;--ink-muted: #807d9a;--border: rgba(31, 27, 58, .07);--border-strong: rgba(31, 27, 58, .14);--accent: #667eea;--accent-deep: #4f63cc;--accent-soft: #dde3ff;--matcha: #7ec99c;--matcha-soft: #d6efdf;--blob-indigo: #b7c5ff;--blob-peach: #ffc6a3;--blob-matcha: #b7e3c5;--blob-butter: #ffe3a3;--blob-sky: #c4dbf6;--shadow-sm: 0 1px 2px rgba(31, 27, 58, .03);--shadow-md: 0 1px 3px rgba(31, 27, 58, .04);--shadow-lg: 0 4px 12px rgba(31, 27, 58, .06);--shadow-cta: 0 1px 3px rgba(31, 27, 58, .05);--radius-card: 22px;--radius-pill: 999px;--font-display: "Noto Sans KR", "Apple SD Gothic Neo", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Noto Sans KR", "Apple SD Gothic Neo", -apple-system, BlinkMacSystemFont, sans-serif;--font-jp: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body,#app{margin:0;padding:0;min-height:100dvh}body{background:var(--bg);background-image:linear-gradient(180deg,var(--bg) 0%,var(--bg-warm) 100%);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;position:relative;overflow-x:hidden}#app{position:relative;z-index:2}a{color:inherit}button{font:inherit}::selection{background:var(--accent);color:#fff}.blobs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.blob{position:absolute;border-radius:50%;filter:blur(110px);opacity:.3;will-change:transform}.blob-1{width:440px;height:440px;background:var(--blob-indigo);top:-140px;left:-140px;animation:drift-1 36s ease-in-out infinite alternate}.blob-2{width:420px;height:420px;background:var(--blob-peach);bottom:-140px;right:-140px;opacity:.26;animation:drift-2 42s ease-in-out infinite alternate}@keyframes drift-1{0%{transform:translate(0) scale(1)}to{transform:translate(40px,60px) scale(1.05)}}@keyframes drift-2{0%{transform:translate(0) scale(1)}to{transform:translate(-50px,40px) scale(.97)}}@keyframes pop-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}@keyframes float-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
