:root{--color-paper:#100c1c;--color-paper-raised:#1c1730;--color-ink:#f4eefc;--color-ink-soft:#cabfe6;--color-mist:#8f84ad;--color-line:#322a4d;--color-accent:#f5a83c;--color-accent-strong:#ffc369;--color-accent-on:#1c1200;--color-urgent:#ff7086;--color-urgent-on:#2a0009;--color-success:#6fd9a3;--glass-bg:#f4eefc0f;--glass-bg-strong:#f4eefc1a;--glass-border:#f4eefc24;--glass-highlight:#fff6;--font-display:"Iowan Old Style", "Palatino Linotype", Georgia, "Noto Serif KR", serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius:10px;--radius-lg:20px;--shadow-card:0 1px 2px #0000004d, 0 4px 20px #00000059;--shadow-glow:0 8px 32px #f5a83c29}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:16px;line-height:1.5;position:relative}body:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(ellipse 70% 50% at 15% 100%, #f5a83c29 0%, transparent 60%), radial-gradient(ellipse 60% 45% at 85% 0%, #7a5cd62e 0%, transparent 55%), var(--color-paper);position:fixed;inset:0}body:after{content:"";z-index:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:1;position:relative}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0 0 var(--space-3);font-weight:600;line-height:1.2}h1{font-size:clamp(1.75rem,1.4rem + 1.5vw,2.5rem)}h2{font-size:1.5rem}h3{font-size:1.15rem}p{margin:0 0 var(--space-4);max-width:65ch}a{color:var(--color-accent-strong)}button,input,textarea,select{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-shell{max-width:640px;padding:var(--space-5) var(--space-4) var(--space-7);margin:0 auto}.card{background:var(--color-paper-raised);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);margin-bottom:var(--space-4)}.glass-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(20px)saturate(160%);box-shadow:var(--shadow-card);padding:var(--space-5);position:relative;overflow:hidden}.glass-card:before{content:"";border-radius:inherit;background:linear-gradient(155deg, var(--glass-highlight), transparent 40%);-webkit-mask-composite:xor;pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--color-mist);margin-bottom:var(--space-2);font-size:.75rem;font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius);padding:var(--space-3) var(--space-5);cursor:pointer;border:1px solid #0000;min-height:44px;font-weight:600;text-decoration:none;transition:transform .25s cubic-bezier(.34,1.56,.64,1),filter .15s,box-shadow .25s;display:inline-flex}.btn:active{transform:scale(.96)}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:active{transform:none}}.btn-primary{background:linear-gradient(135deg, var(--color-accent-strong), var(--color-accent));color:var(--color-accent-on);box-shadow:var(--shadow-glow)}.btn-primary:hover{filter:brightness(1.08)}.btn-ghost{background:var(--glass-bg);border-color:var(--glass-border);color:var(--color-ink);-webkit-backdrop-filter:blur(12px)}.btn-danger{background:var(--color-urgent);color:var(--color-urgent-on)}input[type=text],input[type=email],input[type=date],input[type=datetime-local],input[type=number],textarea,select{width:100%;padding:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-paper-raised);color:var(--color-ink)}.pill{align-items:center;gap:var(--space-1);padding:2px var(--space-3);background:var(--color-line);color:var(--color-ink-soft);border-radius:999px;font-size:.75rem;font-weight:600;display:inline-flex}.pill-accent{background:color-mix(in srgb, var(--color-accent) 22%, transparent);color:var(--color-accent-strong)}.segmented{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(12px);border-radius:999px;padding:3px;display:inline-flex}.segmented button{color:var(--color-mist);padding:var(--space-1) var(--space-4);cursor:pointer;background:0 0;border:none;border-radius:999px;font-size:.8rem;font-weight:600;transition:background .25s cubic-bezier(.34,1.56,.64,1),color .2s}.segmented button[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-on)}@media (prefers-reduced-motion:reduce){.segmented button{transition:none}}.load-more{text-align:center;width:100%;display:block}.lang-toggle{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);color:var(--color-ink-soft);padding:4px var(--space-3);cursor:pointer;border-radius:999px;min-height:auto;font-size:.75rem;font-weight:700}.stack>*+*{margin-top:var(--space-4)}.stack-sm>*+*{margin-top:var(--space-2)}.row{align-items:center;gap:var(--space-3);display:flex}.spread{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.muted{color:var(--color-mist)}.bento-grid{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.bento-hero{grid-column:1/-1}.hero-number{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;background:linear-gradient(135deg, var(--color-accent-strong), var(--color-accent) 70%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(3rem,2.2rem + 4vw,5rem);font-weight:600;line-height:1}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rise-in{animation:.5s cubic-bezier(.22,1,.36,1) both rise-in}@media (prefers-reduced-motion:reduce){.rise-in{animation:none}}nav.tabbar{left:var(--space-4);right:var(--space-4);bottom:calc(var(--space-3) + env(safe-area-inset-bottom));background:var(--glass-bg-strong);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(24px)saturate(160%);box-shadow:var(--shadow-card);padding:var(--space-1);z-index:10;border-radius:999px;max-width:640px;margin:0 auto;display:flex;position:fixed}nav.tabbar a{padding:var(--space-2) 0;color:var(--color-mist);border-radius:999px;flex-direction:column;flex:1;align-items:center;gap:2px;font-size:.65rem;font-weight:600;text-decoration:none;transition:background .25s cubic-bezier(.34,1.56,.64,1),color .2s;display:flex}nav.tabbar a[aria-current=page]{background:var(--glass-bg-strong);color:var(--color-accent-strong)}@media (prefers-reduced-motion:reduce){nav.tabbar a{transition:none}}.dev-auth-bar{z-index:1000;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);color:#fff;font-family:var(--font-mono);background:#111;flex-wrap:wrap;font-size:11px;display:flex;position:fixed;top:0;left:0;right:0}.dev-auth-bar button{color:#fff;cursor:pointer;background:#333;border:1px solid #555;border-radius:4px;padding:2px 8px;font-family:inherit;font-size:11px}.dev-auth-bar input{color:#fff;background:#222;border:1px solid #555;border-radius:4px;width:160px;padding:2px 6px;font-family:inherit;font-size:11px}.dev-auth-bar+.app-shell{padding-top:calc(var(--space-7) + 28px)}body:has(.dev-auth-bar) .app-shell{padding-top:calc(var(--space-7) + 28px)}
