*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}#root{min-height:100vh}.playground-container{padding:2rem;max-width:1400px;margin:0 auto;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.playground-header{text-align:center;margin-bottom:3rem;color:#fff}.playground-title{font-size:3rem;font-weight:700;margin:0 0 1rem;background:linear-gradient(135deg,#fff,#f0f0f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 2px 10px rgba(0,0,0,.1)}.playground-subtitle{font-size:1.25rem;margin:0 0 2rem;color:#ffffffe6;font-weight:400}.playground-links{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem}.playground-link{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:#ffffff26;backdrop-filter:blur(10px);color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:all .3s ease;border:1px solid rgba(255,255,255,.2)}.playground-link:hover{background:#ffffff40;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.playground-link svg{width:20px;height:20px}.content-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;overflow:hidden;margin-bottom:2rem}.example-selector{display:flex;gap:.75rem;padding:1.5rem;flex-wrap:wrap;border-bottom:1px solid #e5e7eb;background:#f9fafb;justify-content:center}.example-button{padding:.625rem 1.25rem;background:#fff;color:#374151;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;font-weight:500;font-size:.875rem;text-transform:capitalize;transition:all .2s ease;font-family:inherit}.example-button:hover{border-color:#667eea;color:#667eea;transform:translateY(-1px)}.example-button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;box-shadow:0 4px 12px #667eea66}.example-info{padding:1.5rem;border-bottom:1px solid #e5e7eb;background:#fff}.example-title{font-size:1.5rem;font-weight:600;margin:0 0 .5rem;color:#111827}.example-description{color:#6b7280;font-size:.9375rem;margin:0;line-height:1.6}.stackblitz-container{position:relative;width:100%;margin:0}.stackblitz-wrapper{height:600px;border:none;background:#f9fafb;position:relative}.loading-skeleton{position:absolute;inset:0;background:#f9fafb;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem;z-index:10}.loading-spinner{width:50px;height:50px;border:4px solid #e5e7eb;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:#6b7280;font-size:.875rem}.info-section{padding:2rem;background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;margin-bottom:2rem}.info-section h3{font-size:1.25rem;font-weight:600;margin:0 0 1rem;color:#111827}.info-section ul{margin:0;padding-left:1.5rem;color:#374151;line-height:1.8}.info-section li{margin-bottom:.5rem}.info-section code{background:#f3f4f6;padding:.125rem .375rem;border-radius:4px;font-size:.875rem;color:#667eea;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.installation-section{padding:2rem;background:#1f2937;color:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;margin-bottom:2rem}.installation-section h3{font-size:1.25rem;font-weight:600;margin:0 0 1rem;color:#fff}.code-tabs{display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap;border-bottom:2px solid rgba(102,126,234,.2);padding-bottom:0}.code-tab{padding:.75rem 1.5rem;background:transparent;color:#fff9;border:none;border-radius:8px 8px 0 0;cursor:pointer;font-weight:500;font-size:.9375rem;font-family:inherit;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;border:1px solid transparent;border-bottom:none;margin-bottom:-2px}.code-tab:hover{background:#667eea26;color:#ffffffd9;transform:translateY(-2px)}.code-tab.active{background:#667eea40;color:#fff;font-weight:600;border-color:#667eea66;border-bottom-color:transparent;box-shadow:0 -2px 8px #667eea33}.code-tab.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px 3px 0 0;box-shadow:0 0 8px #667eea99}.code-block{background:linear-gradient(135deg,#1a1a2e,#16213e);padding:1rem 1.25rem;border-radius:8px;overflow-x:auto;margin:1rem 0;border:1px solid rgba(102,126,234,.3);position:relative;box-shadow:0 4px 12px #0003}.code-block pre{margin:0;font-family:Monaco,Menlo,Ubuntu Mono,Courier New,monospace;font-size:.875rem;line-height:1.7;tab-size:2}.code-block pre[class*=language-]{margin:0;padding:0;background:transparent;border-radius:0;overflow:visible}.code-block code[class*=language-]{font-family:Monaco,Menlo,Ubuntu Mono,Courier New,monospace;font-size:.875rem;line-height:1.7;text-shadow:none;background:transparent}.code-block .token.comment,.code-block .token.prolog,.code-block .token.doctype,.code-block .token.cdata{color:#8b92c8;font-style:italic}.code-block .token.punctuation{color:#e0e0e0}.code-block .token.property,.code-block .token.tag,.code-block .token.boolean,.code-block .token.number,.code-block .token.constant,.code-block .token.symbol,.code-block .token.deleted{color:#a5d6ff}.code-block .token.selector,.code-block .token.attr-name,.code-block .token.string,.code-block .token.char,.code-block .token.builtin,.code-block .token.inserted{color:#ffd89b}.code-block .token.operator,.code-block .token.entity,.code-block .token.url,.code-block .language-css .token.string,.code-block .style .token.string{color:#e0e0e0}.code-block .token.atrule,.code-block .token.attr-value,.code-block .token.keyword{color:#e89ff5}.code-block .token.function,.code-block .token.class-name{color:#fbbf24}.code-block .token.regex,.code-block .token.important,.code-block .token.variable{color:#a5d6ff}.code-block code.language-bash{color:#e0e0e0}.code-block code.language-bash .token.function{color:#fbbf24}.code-block code.language-bash .token.string{color:#ffd89b}.code-block code.language-bash .token.comment{color:#8b92c8}.code-keyword{color:#f472b6}.code-string{color:#6ee7b7}.code-function{color:#fbbf24}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-top:2rem}.feature-card{padding:1.5rem;background:#667eea1a;border-radius:8px;border:1px solid rgba(102,126,234,.2)}.feature-card h4{margin:0 0 .5rem;color:#667eea;font-size:1rem;font-weight:600}.feature-card p{margin:0;color:#fffc;font-size:.875rem;line-height:1.6}@media (max-width: 768px){.playground-container{padding:1rem}.playground-title{font-size:2rem}.playground-subtitle{font-size:1rem}.example-selector{padding:1rem}.example-button{font-size:.8125rem;padding:.5rem 1rem}.stackblitz-wrapper{height:500px}.info-section,.installation-section{padding:1.5rem}.feature-grid{grid-template-columns:1fr}}@media (max-width: 480px){.playground-title{font-size:1.75rem}.playground-links{flex-direction:column;align-items:stretch}.playground-link{justify-content:center}.stackblitz-wrapper{height:400px}}:root{color-scheme:light dark;--jv-color: light-dark(#333b3c, #efefec);--jv-bg-color: light-dark(#f9f9f9, #212121);--jv-change-color: rgb(255, 50, 0)}.jv-root{font-family:monospace;-webkit-user-select:none;user-select:none;background-color:var(--jv-bg-color)}.jv-root .jv-name{opacity:.8}.jv-root .jv-tag{padding-inline:.8em;padding-block:.3em;font-size:smaller;background:color-mix(in srgb,currentColor 20%,transparent)}.jv-root .jv-type,.jv-root .jv-meta{opacity:.5;font-size:smaller;margin-inline:.5em}.jv-root .jv-value{word-wrap:break-word}.jv-root .jv-keyword{font-size:.85em;padding-inline:.6em;margin-inline:.3em;padding-block:.05em;border-radius:.2em;text-transform:uppercase;font-weight:700;background-color:color-mix(in srgb,currentColor 20%,var(--jv-bg-color))}.jv-root .jv-cursor{cursor:pointer}.jv-root .jv-field{margin-block:1px}.jv-root .jv-field .jv-field>:first-child>:first-child>.jv-name,.jv-root .jv-field .jv-field>.jv-name{transition:background-color 1s;background-color:#0000}.jv-root .jv-field .jv-field.jv-updated>:first-child>:first-child>.jv-name,.jv-root .jv-field .jv-field.jv-updated>.jv-name{transition:background-color 0s;background-color:var(--jv-change-color)}.jv-root .jv-field-obj>.jv-value{padding-inline-start:1.5em;margin-inline-start:.2em;border-inline-start:solid 1px #8888;transition:border-color 1s}.jv-root .jv-field .jv-field-obj.jv-updated>.jv-value{border-color:var(--jv-change-color);transition:border-color 0s}.jv-root .jv-field-obj>:first-child>:first-child>.jv-name{cursor:pointer}.jv-root .jv-field-obj{--lv: 0}.jv-root .jv-field-obj .jv-field-obj{--lv: 1}.jv-root .jv-field-obj .jv-field-obj .jv-field-obj{--lv: 2}.jv-root .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj{--lv: 3}.jv-root .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj{--lv: 4}.jv-root .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj{--lv: 5}.jv-root .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj{--lv: 6}.jv-root .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj .jv-field-obj{--lv: 7}.jv-root .jv-field-obj>:first-child{container-type:scroll-state;position:sticky;top:calc(var(--lv, 0) * 1.5em);line-height:1.5;z-index:calc(10 - var(--lv, 0))}@container scroll-state(stuck: top){.jv-root .jv-field-obj>:first-child>div{background-color:var(--jv-bg-color);border-bottom:solid 1px #8884;font-weight:700}}.jv-root .jv-field-string>:is(.jv-type,.jv-value){color:orange}.jv-root .jv-field-number>:is(.jv-type,.jv-value){color:red}.jv-root .jv-field-bigint>:is(.jv-type,.jv-value){color:red}.jv-root .jv-field-boolean>:is(.jv-type,.jv-value){color:#08f}.jv-root .jv-field-function>:is(.jv-type,.jv-value){color:#08f}.jv-root .jv-field-Date>:is(.jv-type,.jv-value){color:#08f}.jv-root .jv-field-obj.jv-field-Map>:first-child>:first-child>:is(.jv-type,.jv-value){color:#080}.jv-root .jv-field-obj.jv-field-Set>:first-child>:first-child>:is(.jv-type,.jv-value){color:#080}.jv-root .jv-field-RegExp>:is(.jv-type,.jv-value){color:#f0f}.jv-root .jv-field[class*=Error]>:is(.jv-type,.jv-value){color:red}.jv-root .jv-preview{opacity:.5}
