:root{color-scheme:dark;font-family:"Source Sans 3",Noto Sans KR,sans-serif;background:radial-gradient(circle at top left,rgba(37,99,235,.28),transparent 38%),radial-gradient(circle at bottom right,rgba(14,165,233,.22),transparent 32%),#09111f;color:#e2e8f0}*{box-sizing:border-box}body{margin:0;min-width:320px;background:transparent}button,input,select{font:inherit}button{cursor:pointer}#root{min-height:100vh}.shell{position:relative;display:flex;flex-direction:column;min-height:100vh;overflow:hidden}.shell__backdrop{position:fixed;inset:auto;pointer-events:none;filter:blur(80px);opacity:.7}.shell__backdrop--one{top:-120px;left:-80px;width:320px;height:320px;background:#3b82f657}.shell__backdrop--two{right:-120px;bottom:10vh;width:360px;height:360px;background:#22c55e2e}.topbar,.stepper,.footer,.content{position:relative;z-index:1}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;border-bottom:1px solid rgba(71,85,105,.45);background:#070b13d1;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.brand{display:flex;align-items:center;gap:14px}.brand__mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#2563ebeb,#0ea5e9eb);color:#eff6ff;font-family:Lexend,sans-serif;font-weight:800}.brand__title{font-family:Lexend,sans-serif;font-size:1.45rem;font-weight:800}.brand__subtitle{color:#7dd3fc;font-family:JetBrains Mono,monospace;font-size:.8rem}.topbar__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px}.header-meta{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid rgba(51,65,85,.8);border-radius:999px;background:#0b1220e6}.header-meta__label{color:#94a3b8;font-size:.82rem}.header-meta__value{font-weight:700}.stepper{display:flex;gap:12px;overflow-x:auto;padding:16px 24px;border-bottom:1px solid rgba(71,85,105,.3);background:#0f172ab8}.stepper__item{display:flex;align-items:center;gap:10px;white-space:nowrap}.stepper__index{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;border:1px solid #475569;color:#94a3b8;font-family:JetBrains Mono,monospace;font-size:.75rem}.stepper__index.is-active{border-color:#60a5fa;background:#2563eb;color:#fff}.stepper__index.is-done{border-color:#22c55e73;background:#22c55e2e;color:#86efac}.stepper__text{color:#64748b;font-weight:700}.stepper__text.is-active{color:#93c5fd}.content{flex:1 0 auto;padding:24px}.gateway,.packaging,.completion{max-width:1180px;margin:0 auto}.panel{border:1px solid rgba(30,41,59,.95);border-radius:22px;background:#0f172ad1;box-shadow:0 20px 60px #0206176b}.panel+.panel{margin-top:18px}.panel--hero{padding:34px}.panel__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 24px 0}.panel__body{padding:22px 24px 24px}.panel__title{margin:0;font-family:Lexend,sans-serif;font-size:1.75rem;font-weight:800;color:#fff}.panel__subtitle{margin:8px 0 0;color:#94a3b8;font-size:1.05rem}.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:18px;padding:8px 12px;border-radius:999px;border:1px solid rgba(37,99,235,.4);background:#2563eb1f;color:#93c5fd;font-family:JetBrains Mono,monospace;font-size:.7rem;letter-spacing:.2em;font-weight:700}.hero-title{margin:0;font-family:JetBrains Mono,monospace;font-style:italic;font-size:clamp(2rem,5vw,3rem)}.hero-copy{margin:14px 0 24px;color:#94a3b8;font-size:1.05rem}.code-grid{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}.code-input{width:60px;height:66px;border-radius:16px;border:1px solid #334155;background:#111827;color:#fff;text-align:center;font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:700}.code-input:focus{outline:2px solid #60a5fa;outline-offset:2px}.code-state{margin-bottom:24px;text-align:center;font-weight:700}.code-state.is-valid{color:#4ade80}.code-state.is-pending{color:#f59e0b}.runtime-console{border-radius:18px;border:1px solid rgba(30,41,59,.95);background:#020617f5;padding:18px}.runtime-console__head,.runtime-console__line,.runtime-meta,.summary-row,.artifact-card,.artifact-toggle,.progress-hero,.footer{display:flex;align-items:center}.runtime-console__head{justify-content:space-between;gap:14px;margin-bottom:12px;color:#93c5fd;font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700}.runtime-console__line{gap:12px;margin-bottom:10px;font-family:JetBrains Mono,monospace;font-size:.92rem}.prompt{color:#22c55e;font-weight:700}.runtime-meta{justify-content:space-between;gap:12px;padding:6px 0;color:#94a3b8;font-family:JetBrains Mono,monospace;font-size:.82rem}.runtime-meta span:last-child{color:#e2e8f0;text-align:right}.runtime-meta .is-danger{color:#fca5a5}.console-error,.message-card,.info-tile,.summary-row,.artifact-card,.artifact-toggle,.install-tile,.log-console{border-radius:14px;border:1px solid rgba(30,41,59,.9);background:#0b1220f5}.console-error{margin-top:14px;padding:12px;color:#fca5a5;font-family:JetBrains Mono,monospace;font-size:.8rem}.config-grid,.packaging__grid,.completion__grid{display:grid;gap:18px}.config-grid{grid-template-columns:minmax(0,2.2fr) minmax(280px,1fr)}.config-grid__main,.config-grid__side{min-width:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field{display:grid;gap:8px}.field span{color:#93c5fd;font-size:.85rem;font-weight:700}.field select{width:100%;padding:14px 16px;border-radius:14px;border:1px solid #4b5d75;background:#08111d;color:#fff}.badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.badge{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;border:1px solid;font-size:.8rem;font-weight:700}.badge--info{background:#60a5fa24;border-color:#60a5fa52;color:#93c5fd}.badge--success{background:#22c55e24;border-color:#22c55e57;color:#86efac}.badge--warning{background:#f59e0b24;border-color:#f59e0b57;color:#fcd34d}.badge--danger{background:#ef444424;border-color:#ef444457;color:#fca5a5}.artifact-card,.artifact-toggle,.summary-row{justify-content:space-between;gap:12px;padding:16px}.artifact-card__title,.artifact-toggle__title,.install-tile__name,.info-tile__title{font-weight:700}.artifact-card__meta,.artifact-toggle__meta,.install-tile__target{margin-top:4px;color:#94a3b8;font-size:.9rem}.artifact-list{display:grid;gap:10px}.artifact-toggle{align-items:center}.artifact-toggle input{width:18px;height:18px}.artifact-toggle__body{flex:1}.artifact-toggle.is-disabled{opacity:.62}.status-dot{width:12px;height:12px;border-radius:999px}.status-dot.is-success{background:#22c55e}.status-dot.is-danger{background:#ef4444}.install-section+.install-section{margin-top:18px}.install-section__title{margin-bottom:10px;color:#93c5fd;font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.install-tile{padding:12px 14px}.install-tile+.install-tile{margin-top:8px}.summary-row{margin-bottom:8px;align-items:flex-start}.summary-row span{color:#94a3b8}.summary-row strong{text-align:right}.message-card{margin-top:16px;padding:14px;color:#bfdbfe;font-size:.92rem}.message-card.is-danger{color:#fed7aa;border-color:#f59e0b57;background:#7c2d1242}.message-card.is-info{color:#bfdbfe;border-color:#3b82f657;background:#2563eb1f}.message-card.is-success{color:#bbf7d0;border-color:#22c55e57;background:#15803d1f}.progress-hero{justify-content:space-between;gap:18px}.metric-label{color:#60a5fa;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.metric-value{margin-top:4px;font-size:1.5rem;font-weight:700}.progress-value{font-family:Lexend,sans-serif;font-size:clamp(2rem,7vw,3rem);font-weight:900}.progress-bar{overflow:hidden;height:14px;margin-top:16px;border-radius:999px;background:#1e293b}.progress-bar__fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#38bdf8);transition:width .16s ease-out}.packaging__grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);margin-top:18px}.log-console{min-height:280px;padding:16px}.log-line{display:grid;grid-template-columns:auto auto 1fr;gap:10px;margin-bottom:7px;font-family:JetBrains Mono,monospace;font-size:.79rem}.log-line__time{color:#475569}.log-line__level.is-info{color:#60a5fa}.log-line__level.is-warn{color:#f59e0b}.log-line__level.is-error{color:#ef4444}.log-line__level.is-done{color:#22c55e}.completion__grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.info-tile{padding:16px}.info-tile+.info-tile{margin-top:12px}.info-tile__title{color:#94a3b8;margin-bottom:6px}.info-tile__value{font-family:JetBrains Mono,monospace;word-break:break-word}.empty-text,.error-text{color:#94a3b8}.error-text{margin-top:8px;color:#fca5a5}.footer{margin-top:auto;justify-content:space-between;gap:20px;padding:18px 24px;border-top:1px solid rgba(71,85,105,.3);background:#070b13bd;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.footer__hint{color:#94a3b8;font-size:.92rem}.footer__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:0;border-radius:14px;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#eff6ff;font-weight:700;transition:transform .12s ease-out,opacity .12s ease-out}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.55}.button--ghost{border:1px solid rgba(71,85,105,.7);background:transparent;color:#cbd5e1}.button--danger{background:linear-gradient(135deg,#dc2626,#ef4444)}.button--small{min-height:34px;padding:0 12px;border-radius:10px;font-size:.85rem}.notice-stack{position:fixed;top:112px;right:16px;z-index:5;display:grid;gap:10px;max-width:min(360px,calc(100vw - 32px))}.notice{padding:14px;border-radius:14px;border:1px solid rgba(59,130,246,.32);background:#0b1220f5;box-shadow:0 18px 40px #0206176b}.notice__title{font-weight:700}.notice__message{margin-top:4px;color:#cbd5e1;font-size:.92rem}.notice--success{border-color:#22c55e57}.notice--warning{border-color:#f59e0b57}.notice--danger{border-color:#ef444457}@media(max-width:1100px){.config-grid,.packaging__grid,.completion__grid{grid-template-columns:1fr}}@media(max-width:720px){.topbar,.content,.footer{padding-left:16px;padding-right:16px}.topbar,.footer{flex-direction:column;align-items:stretch}.topbar__meta,.footer__actions{justify-content:flex-start}.panel__head,.progress-hero{flex-direction:column}.form-grid{grid-template-columns:1fr}.code-input{width:52px;height:58px}.panel--hero{padding:22px}}
