*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #050505;--c: #939393;--accent: #a3e635;--accent-dark: #8bc82e;--accent-dim: rgba(163, 230, 53, .1);--accent-border: rgba(163, 230, 53, .25);--accent-focus: rgba(163, 230, 53, .35);--type-color: #a3e635;--type-dimension: #60a5fa;--type-number: #fbbf24;--type-duration: #c084fc;--type-shadow: #818cf8;--type-transition: #2dd4bf;--surface: rgba(147, 147, 147, .06);--surface-hover: rgba(147, 147, 147, .1);--surface-active: rgba(147, 147, 147, .14);--border: rgba(147, 147, 147, .15);--border-hover: rgba(147, 147, 147, .28);--border-active: rgba(147, 147, 147, .4);--text: #cecece;--text-secondary: #939393;--text-tertiary: #666666;--glow: rgba(147, 147, 147, .04);--hl-key: #cecece;--hl-string: #a3e635;--hl-number: #60a5fa;--hl-boolean: #c084fc;--hl-null: #c084fc;--hl-punct: #555555;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--font-display: "Instrument Sans", system-ui, -apple-system, sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;color-scheme:dark}html[data-theme=light]{color-scheme:light}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;line-height:1.6;transition:background-color .3s ease,color .3s ease}@media(prefers-reduced-motion:reduce){body{transition:none}}[data-theme=light]{--bg: #f7f7f5;--surface: rgba(0, 0, 0, .04);--surface-hover: rgba(0, 0, 0, .07);--surface-active: rgba(0, 0, 0, .1);--border: rgba(0, 0, 0, .08);--border-hover: rgba(0, 0, 0, .15);--border-active: rgba(0, 0, 0, .25);--text: #1a1a1a;--text-secondary: #555555;--text-tertiary: #888888;--accent: #65a30d;--accent-dark: #4a7c0a;--accent-dim: rgba(101, 163, 13, .08);--accent-border: rgba(101, 163, 13, .2);--accent-focus: rgba(101, 163, 13, .3);--glow: rgba(0, 0, 0, .03);--hl-key: #1a1a1a;--hl-string: #65a30d;--hl-number: #2563eb;--hl-boolean: #7c3aed;--hl-null: #7c3aed;--hl-punct: #888888;--type-color: #65a30d;--type-dimension: #2563eb;--type-number: #d97706;--type-duration: #7c3aed;--type-shadow: #6366f1;--type-transition: #0d9488}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 800px 600px at 50% -160px,rgba(147,147,147,.08),transparent),radial-gradient(ellipse 500px 500px at 80% 50%,rgba(163,230,53,.03),transparent),radial-gradient(ellipse 400px 400px at 20% 80%,rgba(147,147,147,.04),transparent),radial-gradient(ellipse 300px 300px at 50% 100%,rgba(147,147,147,.02),transparent);pointer-events:none;z-index:0;transition:opacity .3s ease}[data-theme=light] body:before{background:radial-gradient(ellipse 800px 600px at 50% -160px,rgba(101,163,13,.06),transparent),radial-gradient(ellipse 500px 500px at 80% 50%,rgba(0,0,0,.02),transparent),radial-gradient(ellipse 400px 400px at 20% 80%,rgba(0,0,0,.03),transparent),radial-gradient(ellipse 300px 300px at 50% 100%,rgba(0,0,0,.015),transparent)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px}[data-theme=light] body:after{opacity:.02}#root{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:0 20px}.glass{background:var(--surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border);transition:background .3s ease,border-color .3s ease}.glass-hover{transition:background .2s,border-color .2s,box-shadow .2s}.glass-hover:hover{background:var(--surface-hover);border-color:var(--border-hover)}.container{width:100%;max-width:560px;display:flex;flex-direction:column;gap:20px;padding:40px 0 60px}.header{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:560px;padding:16px 20px;position:sticky;top:0;z-index:10;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:background .3s ease,border-color .3s ease}[data-theme=light] .header{background:#f7f7f5d9}.header-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}.header-icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.header-title{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.01em}.header-actions{display:flex;align-items:center;gap:8px}.header-version{font-size:11px;color:var(--text-tertiary);font-family:var(--font-mono);font-weight:400;padding:2px 8px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:background .2s,border-color .2s,color .2s;outline:none}.theme-toggle:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--text)}.theme-toggle:focus-visible{outline:2px solid var(--accent-focus);outline-offset:2px}.theme-toggle svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.hero{text-align:center;padding:24px 0 4px}.hero h1{font-family:var(--font-display);font-size:28px;font-weight:650;letter-spacing:-.03em;line-height:1.2;margin-bottom:10px}.hero p{font-size:14px;color:var(--text-secondary);max-width:420px;margin:0 auto;line-height:1.7}.drop-zone{position:relative;border-radius:var(--radius-lg);padding:48px 32px;text-align:center;cursor:pointer;transition:background .25s,border-color .25s,box-shadow .25s;border:1.5px dashed var(--border);background:var(--surface);animation:drop-breathe 4s ease-in-out infinite}.drop-zone:hover{border-color:var(--border-hover);background:var(--surface-hover)}.drop-zone.drag-over{border-color:var(--accent-border);background:var(--accent-dim);box-shadow:0 0 60px var(--accent-dim),inset 0 0 60px #a3e63508;animation:none}.drop-zone.has-files{border-style:solid;border-color:var(--border);animation:none;cursor:default;padding:24px 32px}.drop-zone.has-files:hover{border-color:var(--border);background:var(--surface)}.drop-icon{width:40px;height:40px;margin:0 auto 16px;color:var(--text-secondary);stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:color .25s,transform .25s}.drop-zone:hover .drop-icon{color:var(--text)}.drop-zone.drag-over .drop-icon{color:var(--text);transform:translateY(-4px)}.drop-label{font-family:var(--font-display);font-size:16px;font-weight:550;letter-spacing:-.01em;color:var(--text);margin-bottom:6px}.drop-hint{font-size:13px;color:var(--text-tertiary)}.drop-hint button{background:none;border:none;color:var(--text-secondary);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-hover);cursor:pointer;font:inherit;font-size:inherit;transition:color .2s}.drop-hint button:hover{color:var(--text)}.drop-files-count{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--text);margin-bottom:4px}.drop-files-hint{font-size:13px;color:var(--text-tertiary)}@keyframes drop-breathe{0%,to{border-color:var(--border)}50%{border-color:#93939340}}.entry-row{display:flex;align-items:center;gap:12px}.entry-label{font-size:13px;color:var(--text-secondary);white-space:nowrap;font-weight:450}.entry-select{flex:1;font-family:var(--font-body);font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 32px 8px 10px;cursor:pointer;outline:none;transition:border-color .2s;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='rgba(147,147,147,0.5)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.entry-select:focus{border-color:var(--accent-border)}.entry-select:focus-visible{outline:2px solid var(--accent-focus);outline-offset:1px}.entry-select option{background:#111;color:var(--text)}[data-theme=light] .entry-select option{background:#fff;color:#1a1a1a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-size:14px;font-weight:500;padding:10px 24px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:background .2s,border-color .2s,opacity .2s;outline:none;user-select:none;-webkit-user-select:none}.btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-hover)}.btn:active:not(:disabled){background:var(--surface-active)}.btn:disabled{opacity:.35;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--accent-focus);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:600}.btn-primary:hover:not(:disabled){background:#b0f04a;border-color:#b0f04a}.btn-primary:active:not(:disabled){background:#8bc82e;border-color:#8bc82e}.btn-accent{background:var(--accent-dim);border-color:var(--accent-border);color:var(--accent)}.btn-accent:hover:not(:disabled){background:#a3e6352e;border-color:#a3e63559}.btn-accent:active:not(:disabled){background:#a3e63540}.btn-generate{width:100%;padding:12px 24px;font-size:14px}.output-actions{display:flex;align-items:center;gap:6px}.copied-msg{font-size:11px;color:var(--accent);animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.btn-icon{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.actions-bar{display:flex;flex-direction:column;gap:12px}.status{font-size:13px;padding:10px 14px;border-radius:var(--radius-sm);text-align:center;animation:status-in .25s ease-out}.status-error{background:#ff505014;border:1px solid rgba(255,80,80,.15);color:#ff8c8ce6}@keyframes status-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;animation:stats-in .35s ease-out}@keyframes stats-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stat-card{border-radius:var(--radius-md);padding:18px 16px;text-align:center}.stat-value{font-family:var(--font-display);font-size:28px;font-weight:650;letter-spacing:-.02em;line-height:1.1;margin-bottom:4px;color:var(--accent)}.stat-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.output-header{display:flex;align-items:center;justify-content:space-between;animation:output-in .3s ease-out}.output-title{font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--text)}.output-file{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);font-weight:400}.output-body{border-radius:var(--radius-md);overflow:hidden;animation:output-in .35s ease-out}.output-body pre{font-family:var(--font-mono);font-size:12px;line-height:1.65;color:var(--text);padding:20px;overflow:auto;max-height:420px;white-space:pre;-moz-tab-size:2;tab-size:2;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.output-body pre::-webkit-scrollbar{width:6px;height:6px}.output-body pre::-webkit-scrollbar-track{background:transparent}.output-body pre .hl-key{color:var(--hl-key)}.output-body pre .hl-string{color:var(--hl-string)}.output-body pre .hl-number{color:var(--hl-number)}.output-body pre .hl-boolean{color:var(--hl-boolean)}.output-body pre .hl-null{color:var(--hl-null)}.output-body pre .hl-punct{color:var(--hl-punct)}.output-body pre::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}@keyframes output-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.features{margin-top:20px}.features-title{font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--text-secondary);text-align:center;margin-bottom:14px}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.feature-card{border-radius:var(--radius-md);padding:20px 16px;text-align:center;transition:background .25s,border-color .25s}.feature-card:hover{background:var(--surface-hover);border-color:var(--border-hover)}.feature-icon{width:28px;height:28px;margin:0 auto 12px;color:var(--text-secondary);stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:color .25s}.feature-card:hover .feature-icon{color:var(--accent)}.feature-title{font-family:var(--font-display);font-size:14px;font-weight:550;letter-spacing:-.01em;margin-bottom:6px}.feature-desc{font-size:12px;color:var(--text-secondary);line-height:1.6}.feature-desc code{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);background:var(--surface);padding:1px 5px;border-radius:3px;border:1px solid var(--border)}.footer{width:100%;max-width:560px;padding:24px 0 40px;text-align:center;border-top:1px solid var(--border);margin-top:auto}.footer-text{font-size:13px;color:var(--text-secondary);line-height:1.8}.footer-text a{color:var(--text-secondary);text-decoration:none}.footer-text a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}.footer-cli{margin-top:10px;font-family:var(--font-mono);font-size:12px;color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent-border);border-radius:var(--radius-sm);padding:6px 12px;display:inline-block}@media(max-width:600px){.container{padding:24px 0 40px}.header{padding:12px 16px}.header-title{font-size:14px}.hero h1{font-size:22px}.hero p{font-size:13px}.drop-zone{padding:36px 24px}.drop-zone.has-files{padding:20px 24px}.drop-label{font-size:15px}.stats-grid,.features-grid{grid-template-columns:1fr}.stat-value{font-size:24px}}@media(max-width:480px){.hero h1{font-size:20px}.entry-row{flex-direction:column;align-items:stretch;gap:8px}.output-body pre{font-size:11px;padding:14px;max-height:300px}}
