:root{--brand:#1f6f4a;--brand-strong:#17573a;--brand-soft:#eef6f1;--brand-line:#cfe4d8;--bg:#f4f6f5;--surface:#fff;--surface-sunken:#f8faf9;--text:#16241d;--text-2:#4a5a52;--text-3:#7b8a83;--line:#dfe5e2;--line-soft:#ecf1ee;--warn-bg:#fdf6e7;--warn-line:#ecd9a6;--warn-text:#7a5a12;--pass-bg:#e7f4ec;--pass-text:#1c6440;--fail-bg:#fbeaea;--fail-text:#9a3232;--na-bg:#eef0ef;--na-text:#5d6a64;--fs-xs:12px;--fs-sm:13px;--fs-base:15px;--fs-lg:17px;--fs-xl:20px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:22px;--sp-6:30px;--sp-7:44px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-full:999px;--shadow-sm:0 1px 2px #1020180d;--shadow-md:0 4px 16px #10201812;--shadow-lg:0 16px 48px #10201824;--font:"Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif}html{font-size:var(--fs-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font);background:var(--bg);color:var(--text);margin:0;line-height:1.65}#root{text-align:left;width:100%;min-height:100vh}button{font-family:inherit}.page{max-width:1080px;padding:0 var(--sp-5) var(--sp-7);margin:0 auto}.hero{align-items:center;gap:var(--sp-6);padding:var(--sp-7) 0 var(--sp-6);display:flex}.hero-text{flex:1;min-width:0}.hero-eyebrow{margin:0 0 var(--sp-2);font-size:var(--fs-sm);letter-spacing:.02em;color:var(--brand);font-weight:600}.hero-title{margin:0 0 var(--sp-3);letter-spacing:-.02em;font-size:42px;font-weight:700;line-height:1.15}.hero-lead{margin:0 0 var(--sp-5);max-width:46em;font-size:var(--fs-lg);color:var(--text-2)}.hero-cta{padding:var(--sp-3) var(--sp-5);background:var(--brand);color:#fff;border-radius:var(--r-full);font-size:var(--fs-base);font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.hero-cta:hover{background:var(--brand-strong)}.hero-visual{flex-shrink:0;width:180px}.hero-image{width:100%;height:auto;display:block}.intro-grid{gap:var(--sp-4);margin-bottom:var(--sp-6);grid-template-columns:repeat(3,1fr);display:grid}.intro-grid.is-two{grid-template-columns:repeat(2,1fr)}.intro-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}.intro-title{margin:0 0 var(--sp-2);font-size:var(--fs-base);font-weight:700}.intro-title:before{content:"";width:26px;height:3px;margin-bottom:var(--sp-3);background:var(--brand);border-radius:2px;display:block}.intro-body{font-size:var(--fs-sm);color:var(--text-2);margin:0}.chat-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);scroll-margin-top:var(--sp-4);overflow:hidden}.panel-head{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-5);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;display:flex}.panel-title{font-size:var(--fs-xl);margin:0;font-weight:700}.panel-name{color:var(--brand)}.panel-sub{margin:var(--sp-1) 0 0;font-size:var(--fs-xs);color:var(--text-3)}.conn-chip{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);font-size:var(--fs-xs);border:1px solid #0000;font-weight:600;display:inline-flex}.conn-chip:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.conn-chip.is-ok{background:var(--pass-bg);color:var(--pass-text);border-color:#c3e3d0}.conn-chip.is-off{background:var(--fail-bg);color:var(--fail-text);border-color:#ecc}.conn-chip.is-checking{background:var(--na-bg);color:var(--na-text);border-color:var(--line)}.conn-banner{margin:var(--sp-5);padding:var(--sp-5);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-md)}.conn-banner-head{gap:var(--sp-3);align-items:flex-start;display:flex}.conn-banner-icon{color:var(--warn-text);flex-shrink:0;margin-top:2px}.conn-banner-title{font-size:var(--fs-base);color:var(--warn-text);display:block}.conn-banner-desc{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--text-2)}.conn-steps{margin:var(--sp-4) 0;font-size:var(--fs-sm);color:var(--text-2);padding-left:1.3em}.conn-steps>li{margin-bottom:var(--sp-3)}.conn-note{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--text-3)}.cmd-row{align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.cmd-label{min-width:62px;font-size:var(--fs-xs);color:var(--text-3);flex-shrink:0;font-weight:600}.cmd-code{white-space:nowrap;min-width:0;padding:var(--sp-2) var(--sp-3);color:#d7e6dd;border-radius:var(--r-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-xs);background:#1e2a24;flex:1;overflow-x:auto}.copy-btn{padding:var(--sp-1) var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--text-2);cursor:pointer;flex-shrink:0}.copy-btn:hover{border-color:var(--brand);color:var(--brand)}.btn-primary,.btn-secondary,.btn-stop,.btn-ghost{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-md);font-size:var(--fs-base);cursor:pointer;border:1px solid #0000;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{padding:var(--sp-3) var(--sp-5);background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-strong)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{padding:var(--sp-2) var(--sp-4);background:var(--surface);border-color:var(--line);color:var(--text-2);font-size:var(--fs-sm)}.btn-secondary:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-stop{padding:var(--sp-3) var(--sp-4);background:var(--fail-bg);color:var(--fail-text);border-color:#ecc}.btn-stop:hover{background:#f6dede}.btn-ghost{padding:var(--sp-2) var(--sp-4);border-color:var(--line);color:var(--text-2);font-size:var(--fs-sm);background:0 0;font-weight:500}.btn-ghost:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.icon-btn{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);width:44px;height:44px;color:var(--text-2);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.icon-btn:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn.recording{background:var(--fail-bg);color:#b91c1c;border-color:#dc2626;animation:1.2s infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #dc262647}50%{box-shadow:0 0 0 7px #dc262600}}.a11y-bar{gap:var(--sp-2);padding:var(--sp-3) var(--sp-5) 0;justify-content:flex-end;display:flex}.a11y-btn{padding:var(--sp-1) var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-full);font-size:var(--fs-xs);color:var(--text-2);cursor:pointer;transition:all .15s}.a11y-btn:hover{border-color:var(--brand);color:var(--brand)}.a11y-btn.active{background:var(--brand);border-color:var(--brand);color:#fff}.guide-bubble{align-items:flex-start;gap:var(--sp-3);margin:var(--sp-4) var(--sp-5) 0;padding:var(--sp-4);background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:var(--r-md);display:flex}.guide-avatar{object-fit:cover;background:var(--surface);border-radius:50%;flex-shrink:0;width:40px;height:40px}.guide-title{font-size:var(--fs-lg);margin:0;font-weight:600}.guide-hint{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);color:var(--text-2)}.section-label{margin:0 0 var(--sp-3);font-size:var(--fs-xs);letter-spacing:.04em;color:var(--text-3);font-weight:600}.faq-section{padding:var(--sp-5)}.faq-list{gap:var(--sp-2);grid-template-columns:repeat(2,1fr);display:grid}.faq-card{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);text-align:left;cursor:pointer;transition:all .15s;display:flex}.faq-card:hover:not(:disabled){border-color:var(--brand);background:var(--brand-soft)}.faq-card:disabled{opacity:.5;cursor:not-allowed}.faq-icon{background:var(--brand-soft);border-radius:var(--r-sm);width:36px;height:36px;color:var(--brand);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.faq-text{font-size:var(--fs-base);color:var(--text)}.chat-area{padding:0 var(--sp-5) var(--sp-5);border-top:1px solid var(--line-soft);padding-top:var(--sp-5)}.asked-line{margin:0 0 var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px dashed var(--line);font-size:var(--fs-sm);color:var(--text-3)}.weak-warning{align-items:flex-start;gap:var(--sp-2);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--warn-text);display:flex}.chat-message{align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.chat-avatar{object-fit:cover;border:1px solid var(--line);background:var(--surface);border-radius:50%;flex-shrink:0;width:36px;height:36px}.chat-bubble{min-width:0;padding:var(--sp-4) var(--sp-5);background:var(--surface-sunken);border:1px solid var(--line-soft);border-radius:var(--r-md);font-size:var(--fs-base);white-space:pre-wrap;word-break:break-word;flex:1;line-height:1.8}.cite-mark{background:var(--brand-soft);color:var(--brand-strong);border:1px solid var(--brand-line);border-radius:var(--r-sm);vertical-align:1px;margin:0 1px;padding:0 5px;font-size:.82em;font-weight:600;display:inline-block}.caret{background:var(--brand);vertical-align:-2px;width:2px;height:1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.chat-actions,.sources-section{margin-bottom:var(--sp-4)}.sources-list{gap:var(--sp-2);flex-wrap:wrap;display:flex}.source-chip{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-full);font-size:var(--fs-xs);color:var(--text-2);cursor:pointer;transition:all .15s;display:inline-flex}.source-chip:hover{border-color:var(--brand);background:var(--brand-soft)}.chip-id{color:var(--brand-strong);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700}.chip-section{color:var(--text);font-weight:600}.chip-method,.chip-score{color:var(--text-3)}.chip-method:before,.chip-score:before{content:"· "}.feedback-area{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--surface-sunken);border:1px solid var(--line-soft);border-radius:var(--r-md);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.feedback-label{font-size:var(--fs-sm);color:var(--text-2)}.feedback-buttons{gap:var(--sp-2);display:flex}.feedback-btn{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;transition:all .15s;display:inline-flex}.feedback-btn:hover{border-color:var(--brand);color:var(--brand)}.feedback-btn.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong);font-weight:600}.judge-btn{margin-left:auto}.judgement-area{padding:var(--sp-4);background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r-md)}.judgement-head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);margin-bottom:var(--sp-2);display:flex}.judgement-title{font-size:var(--fs-sm);color:var(--text-2);font-weight:700}.judgement-score{font-size:var(--fs-xl);color:var(--brand-strong);font-weight:700}.judgement-state{margin:0 0 var(--sp-3);font-size:var(--fs-sm);color:var(--text-2)}.judgement-flags{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.judgement-flag{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);font-size:var(--fs-xs);display:inline-flex}.judgement-flag b{font-size:var(--fs-xs)}.flag-pass{background:var(--pass-bg);color:var(--pass-text)}.flag-fail{background:var(--fail-bg);color:var(--fail-text)}.flag-na{background:var(--na-bg);color:var(--na-text)}.judgement-comment{margin:0 0 var(--sp-2);font-size:var(--fs-sm);color:var(--text-2)}.judgement-note{font-size:var(--fs-xs);color:var(--text-3);margin:0}.input-wrapper{background:var(--surface);border-top:1px solid var(--line-soft);padding:var(--sp-4) var(--sp-5) var(--sp-3);position:sticky;bottom:0}.input-area{align-items:center;gap:var(--sp-2);display:flex}.input-field{min-width:0;padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font);font-size:var(--fs-base);color:var(--text);background:var(--surface);outline:none;flex:1;transition:border-color .15s,box-shadow .15s}.input-field::placeholder{color:var(--text-3)}.input-field:focus{border-color:var(--brand);box-shadow:0 0 0 3px #1f6f4a1f}.input-field:disabled{background:var(--surface-sunken);cursor:not-allowed}.input-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--text-3);text-align:center}.site-footer{margin-top:var(--sp-5);font-size:var(--fs-xs);color:var(--text-3);text-align:center}.modal-backdrop{padding:var(--sp-4);z-index:200;background:#10201873;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:560px;max-height:82vh;padding:var(--sp-5);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow-y:auto}.modal-head{justify-content:space-between;align-items:flex-start;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.modal-section{margin-left:var(--sp-2);font-size:var(--fs-lg);font-weight:700}.modal-text{margin:0 0 var(--sp-4);padding:var(--sp-4);background:var(--surface-sunken);border-left:3px solid var(--brand);border-radius:var(--r-sm);font-size:var(--fs-base);line-height:1.8}.modal-meta{gap:var(--sp-3);margin-bottom:var(--sp-4);font-size:var(--fs-xs);color:var(--text-3);flex-wrap:wrap;display:flex}.modal-link{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--brand);font-weight:600;text-decoration:none;display:inline-flex}.modal-link:hover{text-decoration:underline}.large-font{--fs-xs:14px;--fs-sm:16px;--fs-base:18px;--fs-lg:20px;--fs-xl:24px}.high-contrast{--text:#000;--text-2:#1c1c1c;--text-3:#333;--line:#444;--line-soft:#666;--bg:#eee;--surface:#fff;--surface-sunken:#f4f4f4;--brand:#0f4d31;--brand-strong:#08301e;--brand-soft:#dceee3;--brand-line:#0f4d31}.high-contrast .faq-card,.high-contrast .input-field,.high-contrast .source-chip,.high-contrast .feedback-btn,.high-contrast .icon-btn{border-width:2px}.high-contrast .chat-bubble{border-width:2px;border-color:#444}@media (width<=860px){.intro-grid{grid-template-columns:1fr}.hero{align-items:flex-start;gap:var(--sp-4);padding-top:var(--sp-5);flex-direction:column-reverse}.hero-visual{width:120px}.hero-title{font-size:34px}.faq-list{grid-template-columns:1fr}}@media (width<=520px){.page{padding:0 var(--sp-3) var(--sp-6)}.chat-panel{border-radius:var(--r-md)}.panel-head,.faq-section,.chat-area,.input-wrapper{padding-left:var(--sp-4);padding-right:var(--sp-4)}.conn-banner,.guide-bubble{margin-left:var(--sp-4);margin-right:var(--sp-4)}.a11y-bar{padding-left:var(--sp-4);padding-right:var(--sp-4)}.hero-title{font-size:30px}}.demo-row{align-items:center;gap:var(--sp-2);margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px dashed var(--line);flex-wrap:wrap;display:flex}.demo-label{font-size:var(--fs-xs);color:var(--text-3);margin-right:var(--sp-1)}.demo-notice{align-items:flex-start;gap:var(--sp-2);margin-bottom:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--na-bg);border:1px dashed var(--line);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-2);display:flex}
