:root{color-scheme:dark;--bg-inset:#070b14;--bg:#0a0f1a;--bg-raised:#0d1425;--surface:#101a2e;--border:rgba(148,163,184,0.14);--border-strong:rgba(148,163,184,0.28);--text:#e7ecf4;--text-2:#97a6bb;--text-3:#64748b;--link:#a8c2e8;--focus:#6494d6;--amber:#d9a648;--green:#55c084;--red:#e2635f;--font-sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Apple SD Gothic Neo","Noto Sans KR",sans-serif;--font-mono:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--fs-2xs:0.75rem;--fs-xs:0.8125rem;--fs-sm:0.875rem;--fs-md:0.9375rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.25rem;--fs-title:clamp(1.5rem,3vw,1.9rem);--fs-stat:clamp(1.7rem,3.6vw,2.35rem);--fs-display:clamp(2.3rem,5.4vw,3.35rem);--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-heading:650;--radius-sm:8px;--radius:10px;--radius-lg:14px;--shell:1080px;--header-h:60px;--shadow-raise:0 1px 0 rgba(255,255,255,0.04) inset,0 24px 60px -24px rgba(0,0,0,0.55);--space-1:0.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4.5rem;--space-7:6rem;--dur-1:120ms;--dur-2:160ms;--dur-3:240ms;--ease-out:cubic-bezier(0.16,1,0.3,1);--z-header:50;--z-overlay:100;--z-toast:200}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg);color:var(--text);font-size:var(--fs-base);line-height:1.65;letter-spacing:-.011em;word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:var(--fw-heading);line-height:1.2;letter-spacing:-.022em}a{color:var(--link);text-decoration:none;transition:color var(--dur-2) ease}a:hover{color:var(--text)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:rgba(100,148,214,.35)}[id]{scroll-margin-top:calc(var(--header-h) + 1rem)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}html{scroll-behavior:auto}}.nums{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.container{max-width:var(--shell);margin:0 auto;padding:0 var(--space-3)}.header{position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-header);background:rgba(10,15,26,.82);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.header-content{display:flex;align-items:center;justify-content:space-between;height:var(--header-h)}.brand{display:inline-flex;align-items:center;gap:.55rem;color:var(--text)}.brand-mark{color:var(--text-2)}.brand-name{font-size:var(--fs-base);font-weight:var(--fw-heading);letter-spacing:-.01em}.nav{display:flex;align-items:center;gap:var(--space-3)}.lang-toggle{font-size:var(--fs-sm);color:var(--text-2);padding:.35rem .7rem;border:1px solid var(--border);border-radius:999px;transition:color var(--dur-2) ease,border-color var(--dur-2) ease}.lang-toggle:hover{color:var(--text);border-color:var(--border-strong)}.section{padding:var(--space-7) 0}.section+.section{border-top:1px solid var(--border)}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.eyebrow,.section-title{margin-bottom:var(--space-2)}.section-title{font-size:var(--fs-title)}.hero{padding:var(--space-7) 0 var(--space-6);position:relative}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(56rem 26rem at 18% -10%,rgba(100,148,214,.11),transparent 68%);pointer-events:none}.hero-content{position:relative;max-width:640px}.headline{font-size:var(--fs-display);line-height:1.14;margin-bottom:var(--space-3)}.subheadline{font-size:var(--fs-lg);line-height:1.7;color:var(--text-2);max-width:34em;margin-bottom:var(--space-4)}.helper-text{margin-top:var(--space-2);font-size:var(--fs-sm);color:var(--text-3)}.showcase{margin-top:var(--space-6)}.showcase-frame{border:1px solid var(--border-strong);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-raised);box-shadow:var(--shadow-raise)}.showcase-frame img{display:block;width:100%;height:auto}.sample-note{margin-top:var(--space-1);font-size:var(--fs-xs);color:var(--text-3);text-align:right}.stat-headline{font-size:var(--fs-stat);max-width:22em}.stat-source{display:block;margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.04em;color:var(--text-3)}.problem-details{margin-top:var(--space-4);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-4);gap:var(--space-4)}.problem-details p{color:var(--text-2);font-size:var(--fs-base);max-width:34em}.problem-details strong{color:var(--text);font-weight:var(--fw-semibold)}.solution-copy{max-width:620px;margin-bottom:var(--space-4)}.solution-copy p{color:var(--text-2);font-size:var(--fs-base)}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--space-4);gap:var(--space-4);margin-top:var(--space-4)}.step{border-top:1px solid var(--border-strong);padding-top:var(--space-3)}.step-index{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);display:block;margin-bottom:var(--space-2)}.step-title{font-weight:var(--fw-semibold);margin-bottom:.4rem}.step-description,.trust-note{font-size:var(--fs-md);color:var(--text-2)}.trust-note{margin-top:var(--space-5);display:flex;align-items:flex-start;gap:.7rem;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);max-width:640px}.trust-note svg{flex-shrink:0;margin-top:.15rem;color:var(--green)}.security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-4) var(--space-5);gap:var(--space-4) var(--space-5);margin-top:var(--space-4)}.security-item{display:flex;gap:var(--space-2);align-items:flex-start}.security-icon{flex-shrink:0;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-raised);color:var(--text-2)}.principle-title{font-size:var(--fs-base);font-weight:var(--fw-semibold);margin-bottom:.25rem}.principle-description{font-size:var(--fs-md);color:var(--text-2)}.faqs{margin-top:var(--space-4);max-width:720px}.faq-item{border-top:1px solid var(--border)}.faq-item:last-child{border-bottom:1px solid var(--border)}.faq-question{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--fs-base);font-weight:var(--fw-medium);color:var(--text);transition:color var(--dur-2) ease}.faq-question::-webkit-details-marker{display:none}.faq-question:after{content:"+";font-family:var(--font-mono);font-size:1.05rem;color:var(--text-3);transition:transform var(--dur-3) var(--ease-out)}.faq-item[open] .faq-question:after{transform:rotate(45deg)}.faq-answer{padding:0 0 var(--space-3);color:var(--text-2);font-size:var(--fs-md);max-width:40em}.final-cta-content{max-width:560px;margin:0 auto;text-align:center}.cta-message{font-size:var(--fs-title);font-weight:var(--fw-heading);letter-spacing:-.022em;margin-bottom:.5rem}.cta-sub{color:var(--text-3);font-size:var(--fs-sm);margin-bottom:var(--space-4)}.final-form{text-align:left}.footer{border-top:1px solid var(--border);padding:var(--space-4) 0}.footer-content{justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}.footer-content,.footer-links{display:flex;align-items:center}.footer-links{gap:var(--space-3)}.footer-link{font-size:var(--fs-sm);color:var(--text-3)}.footer-link:hover{color:var(--text)}.footer-contact{text-align:right}input,select,textarea{font-family:inherit;font-size:var(--fs-base);color:var(--text);background-color:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius);padding:0 .9rem;height:44px;transition:border-color var(--dur-2) ease,box-shadow var(--dur-2) ease}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;padding-right:2.4rem}input::placeholder{color:var(--text-3)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px rgba(100,148,214,.18)}input[type=checkbox]{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;width:16px;height:16px;padding:0;accent-color:var(--focus);flex-shrink:0;margin-top:.28rem;cursor:pointer}button{font-family:inherit;cursor:pointer;border:none}.btn{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 1.15rem;border-radius:var(--radius);font-size:var(--fs-md);font-weight:var(--fw-semibold);letter-spacing:-.01em;transition:background-color var(--dur-2) ease,border-color var(--dur-2) ease,color var(--dur-2) ease,transform var(--dur-1) ease;touch-action:manipulation}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default}.btn--primary{background:#f2f5f9;color:#0a0f1a}.btn--primary:hover{background:#ffffff}.btn--secondary{background:transparent;color:var(--text);border:1px solid var(--border-strong)}.btn--secondary:hover{border-color:var(--text-3);background:var(--bg-raised)}.btn--ghost{background:transparent;color:var(--text-2)}.btn--ghost:hover{color:var(--text);background:var(--bg-raised)}.btn--sm{height:36px;padding:0 .85rem;font-size:var(--fs-sm)}.waitlist-form--compact{max-width:460px}.cta-row{display:flex;gap:.6rem}.cta-row .input-email{flex:1 1;min-width:0}.cta-row .btn{flex-shrink:0}.waitlist-form{display:flex;flex-direction:column;gap:var(--space-2)}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-2);gap:var(--space-2)}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group>label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-2)}.form-group.checkbox{flex-direction:row;align-items:flex-start;gap:.55rem}.form-group.checkbox label{font-size:var(--fs-xs);line-height:1.55;color:var(--text-2);cursor:pointer}.checkbox--compact{margin-top:var(--space-2)}.checkbox--compact label{font-size:var(--fs-xs);color:var(--text-3)}.form-consents{border:none;display:flex;flex-direction:column;gap:.6rem;padding-top:.4rem}.form-consents legend{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-2);margin-bottom:.6rem}.btn-expand{background:none;border:none;padding:0;margin-top:var(--space-2);font-size:var(--fs-sm);color:var(--link);text-align:left;transition:color var(--dur-2) ease}.btn-expand:hover{color:var(--text)}.form-details{margin-top:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);background:var(--bg-raised)}.form-summary{cursor:pointer;list-style:none;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-2)}.form-summary::-webkit-details-marker{display:none}.form-fields{display:flex;flex-direction:column;gap:var(--space-2)}.form-fields,.message{margin-top:var(--space-2)}.message{padding:.7rem .9rem;border-radius:var(--radius);font-size:var(--fs-sm);border:1px solid}.message--success{color:var(--green);border-color:rgba(85,192,132,.35);background:rgba(85,192,132,.08)}.message--error{color:var(--red);border-color:rgba(226,99,95,.35);background:rgba(226,99,95,.08)}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.policy-body{font-size:var(--fs-md);line-height:1.75}.policy-body h1{font-size:var(--fs-title);margin-bottom:var(--space-1)}.policy-meta{color:var(--text-3);font-size:var(--fs-sm);margin-bottom:var(--space-5)}.policy-body h2{font-size:var(--fs-lg);margin-top:var(--space-5);margin-bottom:var(--space-2)}.policy-body h3{font-size:var(--fs-md);margin-top:var(--space-3);margin-bottom:var(--space-1)}.policy-body ol,.policy-body p,.policy-body ul{color:var(--text-2);margin-bottom:var(--space-2)}.policy-body ol,.policy-body ul{padding-left:1.4rem}.policy-body li{margin-bottom:.35rem}.policy-body strong{color:var(--text)}.policy-table-wrap{overflow-x:auto;margin-bottom:var(--space-2)}.policy-body table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.policy-body td,.policy-body th{border:1px solid var(--border);padding:.5rem .75rem;text-align:left;color:var(--text-2);vertical-align:top}.policy-body th{color:var(--text);background-color:var(--bg-raised);white-space:nowrap}@media (max-width:860px){.security-grid,.steps{grid-template-columns:1fr;gap:var(--space-3)}.problem-details{grid-template-columns:1fr;gap:var(--space-2)}}@media (max-width:640px){.section{padding:var(--space-6) 0}.hero{padding:var(--space-6) 0 var(--space-5)}.cta-row{flex-direction:column}.form-row{grid-template-columns:1fr}.footer-content{flex-direction:column;align-items:flex-start}.footer-contact{text-align:left}}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-3)}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.auth-brand{display:flex;justify-content:center;margin-bottom:var(--space-3)}.auth-title{font-size:var(--fs-xl);text-align:center;margin-bottom:var(--space-1)}.auth-sub{color:var(--text-2);font-size:var(--fs-sm);line-height:1.45;text-align:center;margin-bottom:var(--space-3)}.auth-form{display:flex;flex-direction:column;gap:var(--space-2)}.auth-alt{margin-top:var(--space-3);text-align:center;font-size:var(--fs-sm);color:var(--text-3)}.auth-consent{margin-top:var(--space-2);font-size:var(--fs-xs);color:var(--text-3);line-height:1.6}.auth-consent a{color:var(--text-2);text-decoration:underline;text-underline-offset:2px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{height:var(--header-h);border-bottom:1px solid var(--border);background:rgba(10,15,26,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-header)}.app-header-inner{max-width:var(--shell);height:100%;margin:0 auto;padding:0 var(--space-3);justify-content:space-between;gap:var(--space-2)}.app-header-inner,.app-nav{display:flex;align-items:center}.app-nav{gap:var(--space-3);font-size:var(--fs-sm)}.app-nav a{color:var(--text-2)}.app-nav a:hover{color:var(--text)}.app-user{color:var(--text-3);font-size:var(--fs-xs);font-family:var(--font-mono)}.app-main{max-width:var(--shell);width:100%;margin:0 auto;padding:var(--space-4) var(--space-3) var(--space-6);flex:1 1}.app-title{font-size:var(--fs-title);margin-bottom:var(--space-1)}.app-desc{color:var(--text-2);font-size:var(--fs-md);margin-bottom:var(--space-4);max-width:640px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3)}.card+.card{margin-top:var(--space-2)}.card-title{font-size:var(--fs-lg);margin-bottom:var(--space-1)}.card-desc{color:var(--text-2);font-size:var(--fs-md);line-height:1.45}.card-actions{margin-top:var(--space-2);display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:.4rem;height:26px;padding:0 .6rem;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:var(--fw-semibold);line-height:1}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.pill--pending{color:var(--amber);background:rgba(217,166,72,.1)}.pill--connected{color:var(--green);background:rgba(85,192,132,.1)}.pill--failed{color:var(--red);background:rgba(226,99,95,.1)}.steps{display:flex;flex-direction:column;gap:var(--space-2);counter-reset:step}.step{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3);transition:opacity var(--dur-3) var(--ease-out)}.step[data-active=false]{opacity:.5}.step-title{counter-increment:step;font-size:var(--fs-lg);margin-bottom:var(--space-1);display:flex;align-items:baseline;gap:var(--space-1)}.step-title:before{content:"0" counter(step);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.12em;color:var(--text-3);flex-shrink:0}.code-block{background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.6;overflow-x:auto;white-space:pre;margin-top:var(--space-1)}.kv{display:grid;grid-template-columns:auto 1fr;grid-gap:.45rem var(--space-3);gap:.45rem var(--space-3);margin-top:var(--space-2);align-items:baseline}.kv dt{font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.kv dd,.kv dt{font-family:var(--font-mono)}.kv dd{font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;word-break:break-all}.copy-row{display:flex;align-items:center;gap:var(--space-1)}.btn--copy{background:transparent;border:1px solid var(--border-strong);color:var(--text-2);height:26px;padding:0 .55rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.08em;flex-shrink:0;transition:color var(--dur-2) ease,border-color var(--dur-2) ease}.btn--copy:hover{color:var(--text);border-color:var(--text-3)}.report-placeholder{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-3);text-align:center;color:var(--text-2);font-size:var(--fs-md)}.report-placeholder .showcase-img{max-width:100%;height:auto;border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-raise);margin-top:var(--space-3)}@media (max-width:640px){.app-header{height:auto;min-height:var(--header-h)}.app-header-inner{flex-wrap:wrap;padding-top:var(--space-2);padding-bottom:var(--space-2);row-gap:var(--space-1)}.app-nav{gap:var(--space-2);order:2;flex-basis:100%;min-width:0}.app-nav--user{order:1;flex-basis:auto;margin-left:auto}.app-nav a,.app-user{white-space:nowrap}.app-user{max-width:38vw;overflow:hidden;text-overflow:ellipsis}.kv{grid-template-columns:1fr;gap:.15rem}.kv dt{margin-top:var(--space-1)}}.canvas-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-2)}.canvas-meta-stats{color:var(--text-3);font-size:var(--fs-xs)}.chip-readonly{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.12em;color:var(--text-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.25rem .5rem;line-height:1}.canvas-tabs{display:flex;gap:var(--space-1);flex-wrap:wrap;margin-bottom:var(--space-2)}.canvas-tab{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.35rem .6rem;line-height:1;transition:color var(--dur-2) ease,border-color var(--dur-2) ease}.canvas-tab:hover{color:var(--text);border-color:var(--border-strong)}.canvas-tab[aria-current=page]{color:var(--text);border-color:var(--focus)}.canvas-shell{display:flex;gap:var(--space-2);align-items:stretch;height:calc(100vh - 320px);min-height:480px}.canvas-flow-wrap{position:relative;flex:1 1;min-width:0;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-inset)}.canvas-flow{background:transparent}.canvas-flow .react-flow__node{cursor:pointer}.canvas-legend{position:absolute;top:var(--space-1);left:var(--space-1);z-index:5;display:flex;gap:var(--space-2);flex-wrap:wrap;list-style:none;margin:0;padding:.4rem .65rem;background:rgba(16,26,46,.88);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--text-3)}.canvas-legend-item{display:inline-flex;align-items:center;gap:.4rem}.canvas-legend-item line{stroke:rgba(148,163,184,.55);stroke-width:1.4}.canvas-legend--references-sg line{stroke-dasharray:4 4}.canvas-legend--in-subnet line{stroke-dasharray:2 3}.canvas-legend--routes-to line{stroke-width:2}.canvas-node{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;gap:.2rem;padding:0 var(--space-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.canvas-node-type{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.canvas-node-name,.canvas-node-type{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-node-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text);line-height:1.3}.canvas-node-id{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-container{width:100%;height:100%;background:rgba(16,26,46,.35);border:1px solid var(--border);border-radius:var(--radius-lg)}.canvas-container-head{display:flex;align-items:baseline;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--border);overflow:hidden}.canvas-container-head .canvas-node-name{font-weight:var(--fw-medium)}.react-flow__node.selected .canvas-container,.react-flow__node.selected .canvas-node{border-color:var(--focus);box-shadow:0 0 0 3px rgba(100,148,214,.22)}.react-flow__node:focus-visible{outline:none}.react-flow__node:focus-visible .canvas-container,.react-flow__node:focus-visible .canvas-node{border-color:var(--focus);box-shadow:0 0 0 3px rgba(100,148,214,.22)}.canvas-handle{opacity:0;pointer-events:none;width:1px;height:1px;min-width:0;min-height:0;border:none;background:transparent}.canvas-edge .react-flow__edge-path{stroke:rgba(148,163,184,.38);stroke-width:1.2}.canvas-edge--references-sg .react-flow__edge-path{stroke-dasharray:4 4}.canvas-edge--in-subnet .react-flow__edge-path{stroke-dasharray:2 3}.canvas-edge--routes-to .react-flow__edge-path{stroke:rgba(148,163,184,.6);stroke-width:1.8}.canvas-flow .react-flow__attribution{background:transparent}.canvas-flow .react-flow__attribution a{color:var(--text-3);font-size:10px}.canvas-flow .react-flow__controls{box-shadow:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden}.canvas-flow .react-flow__controls-button{background:var(--surface);border-bottom:1px solid var(--border);width:28px;height:28px}.canvas-flow .react-flow__controls-button svg{fill:var(--text-2)}.canvas-flow .react-flow__controls-button:hover{background:var(--bg-raised)}.canvas-flow .react-flow__minimap{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.canvas-panel{width:340px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-3);overflow-y:auto}.canvas-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-1)}.canvas-panel-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);transition:color var(--dur-2) ease,border-color var(--dur-2) ease}.canvas-panel-close:hover{color:var(--text);border-color:var(--border-strong)}.canvas-panel-title{font-size:var(--fs-lg);margin-top:.35rem;word-break:break-all}.canvas-panel-section{margin-top:var(--space-2)}.canvas-panel-props{white-space:pre-wrap;word-break:break-all}@media (max-width:900px){.canvas-shell{flex-direction:column;height:auto}.canvas-flow-wrap{height:60vh;min-height:380px}.canvas-panel{width:100%;max-height:50vh}}.engine-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:var(--space-2)}.engine-status-grid,.engine-status-header{gap:var(--space-2);margin-bottom:var(--space-2)}.engine-status-header{display:flex;align-items:center;justify-content:space-between}.engine-status-header .card-title{margin-bottom:0}.engine-status-content{margin-top:var(--space-2)}.engine-steps{margin:var(--space-2) 0 0 1.4rem;color:var(--text-2);font-size:var(--fs-md);list-style:decimal}.engine-steps li{margin-bottom:var(--space-2);line-height:1.6}.engine-steps strong{color:var(--text);font-weight:var(--fw-semibold)}.engine-steps p{margin-top:.25rem;margin-bottom:0}.inline-link{color:var(--link);text-decoration:underline;text-underline-offset:2px}.inline-link:hover{color:var(--text)}.table-wrap{overflow-x:auto;margin-top:var(--space-2)}.cost-table,.inventory-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.cost-table thead,.inventory-table thead{background:var(--bg-raised)}.cost-table th,.inventory-table th{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.cost-table td,.inventory-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border);color:var(--text-2)}.cost-table tr:hover,.inventory-table tr:hover{background:var(--bg-raised)}.recommendations-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.recommendations-table thead{background:var(--bg-raised)}.recommendations-table th{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-medium);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);text-align:left}.recommendations-table td,.recommendations-table th{padding:.5rem .75rem;border-bottom:1px solid var(--border)}.recommendations-table td{color:var(--text-2);vertical-align:top}.recommendations-table tr:hover{background:var(--bg-raised)}.rec-title{font-weight:var(--fw-semibold);color:var(--text);max-width:220px;word-break:break-word}.rec-resource{font-family:var(--font-mono);white-space:nowrap}.rec-engine,.rec-window{font-size:var(--fs-xs);white-space:nowrap}.rec-metrics,.rec-window{font-family:var(--font-mono)}.rec-metrics{font-size:var(--fs-xs);max-width:160px;word-break:break-word}.rec-savings{font-weight:var(--fw-semibold);color:var(--text);white-space:nowrap}.collection-error{padding:.7rem;margin-bottom:var(--space-2);background:rgba(226,99,95,.08);border:1px solid rgba(226,99,95,.35);border-radius:var(--radius);color:var(--red);font-size:var(--fs-sm)}.report-meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin:var(--space-2) 0 var(--space-3)}.meta-item{display:flex;flex-direction:column;gap:.25rem}.meta-label{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}.meta-value{font-size:var(--fs-sm);color:var(--text-2)}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:var(--space-2);gap:var(--space-2);margin-bottom:var(--space-3)}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3)}.stat-value{font-size:clamp(1.35rem,2.4vw,2rem);font-weight:var(--fw-semibold);color:var(--text);line-height:1.15;white-space:nowrap}.stat-label{margin-top:.4rem;font-size:var(--fs-sm);color:var(--text-3)}.stat-caption{margin-top:.2rem;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-3)}.stat-tile--highlight .stat-value{color:var(--amber)}.card-meta{margin-top:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-3)}.report-note{margin:var(--space-3) 0;font-size:var(--fs-xs);color:var(--text-3);line-height:1.6}.share-links-list{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-2)}.share-link-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:.6rem .75rem;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap}.share-link-inactive{opacity:.55}.share-link-info{min-width:0}.share-link-url{font-size:var(--fs-xs);word-break:break-all}.share-link-meta{display:flex;align-items:center;gap:var(--space-1);margin-top:.3rem}.share-link-expires{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-3)}.share-shell{max-width:1080px;margin:0 auto;padding:var(--space-3) var(--space-4) var(--space-5)}.share-shell-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-bottom:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--border)}.share-error{max-width:560px;margin:15vh auto 0;padding:0 var(--space-3)}