:root{--exe-teal:#078e8e;--exe-teal-dark:#066d6d;--exe-teal-darker:#054d4d;--exe-orange:#d76b4a;--exe-orange-dark:#993d28;--exe-bg:#fff;--exe-sidebar-border:#f0f0f0;--exe-box-bg:#fcfcfc;--exe-border:#ececec;--exe-border-strong:#dbdbdb;--exe-fg:#333;--exe-fg-muted:#555;--exe-fg-subtle:#666;--exe-fg-faint:#777;--exe-fg-ink:#000;--exe-warning-bg:#fcf8e3;--exe-warning-fg:#796034;--exe-warning-bd:#faebcc;--exe-danger-bg:#fef0ef;--exe-danger-fg:#973c3b;--exe-danger-bd:#f3dadd;--exe-success-bg:#e5f3e0;--exe-success-fg:#336634;--exe-success-bd:#deedd1;--exe-success-link:#093c0a;--exe-code-bg:#112c4a;--exe-code-fg:#e7ecf1;--exe-font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--exe-font-mono:Monaco, "Courier New", Courier, monospace;--exe-font-badge:Arial, sans-serif;--exe-fs-small:.92rem;--exe-fs-meta:.85rem;--exe-fs-badge:11px;--exe-fs-code:12px;--exe-fw-thin:300;--exe-fw-normal:400;--exe-fw-bold:700;--exe-radius-sm:2px;--exe-radius-md:4px;--exe-radius-lg:8px;--exe-radius-pill:50%;--exe-shadow-hover:2px 2px 4px #dbdbdb;--exe-shadow-badge:#00000059 0 5px 15px;--exe-ease:.5s ease}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{font-size:17.5px}body{font-family:var(--exe-font-sans);color:var(--exe-fg);background:var(--exe-bg);-webkit-font-smoothing:antialiased;font-size:1.05rem;line-height:1.55}.shell{max-width:960px;margin:0 auto;padding:56px 32px 80px}.topbar{border-bottom:1px solid var(--exe-sidebar-border);justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:14px;display:flex}.brand{font-size:1.05rem;font-weight:var(--exe-fw-thin);color:var(--exe-fg-subtle);align-items:center;gap:10px;line-height:1;display:flex}.brand-mark{border-radius:var(--exe-radius-md);background:var(--exe-teal);color:#fff;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.brand-mark svg{width:60%;height:60%}.brand-name{color:var(--exe-fg);font-weight:var(--exe-fw-bold)}.topbar-right{font-size:var(--exe-fs-small);align-items:center;gap:18px;display:flex}.topbar-right a{color:var(--exe-orange);transition:color var(--exe-ease);text-decoration:none}.topbar-right a:hover{color:var(--exe-orange-dark)}.lang-switcher{color:var(--exe-fg-muted);font-size:var(--exe-fs-small);align-items:center;gap:8px;display:inline-flex}.lang-switcher-label{font-weight:var(--exe-fw-bold)}.lang-switcher select{font:inherit;color:var(--exe-fg);background:var(--exe-bg);border:1px solid var(--exe-border-strong);border-radius:var(--exe-radius-md);cursor:pointer;padding:4px 8px}.lang-switcher select:hover{border-color:var(--exe-teal)}.hero{margin-bottom:36px}.hero .package-title{font-size:var(--exe-fs-small);font-weight:var(--exe-fw-thin);color:var(--exe-fg-subtle);text-transform:uppercase;letter-spacing:.12em;margin:0 0 4px}.hero h1{color:var(--exe-teal);font-size:clamp(2rem,4vw,2.6rem);font-weight:var(--exe-fw-normal);letter-spacing:-.01em;text-wrap:balance;margin:0 0 12px;line-height:1.15}.hero h1 .accent{color:var(--exe-teal-darker)}.hero p.lede{color:var(--exe-fg-muted);text-wrap:pretty;max-width:60ch;margin:0;font-size:1.1rem;line-height:1.55}code,.hero p.lede code{font-family:var(--exe-font-mono);border-radius:var(--exe-radius-sm);color:var(--exe-fg-ink);background:#f3f3f3;padding:1px 6px;font-size:.92em}.stepper{border:1px solid var(--exe-border);border-radius:var(--exe-radius-lg);background:var(--exe-box-bg);grid-template-columns:repeat(4,1fr);gap:0;margin:0 0 28px;padding:0;list-style:none;display:grid;overflow:hidden}.step{border-right:1px solid var(--exe-border);color:var(--exe-fg-faint);transition:background var(--exe-ease), color var(--exe-ease);align-items:center;gap:10px;padding:12px 14px;font-size:.92rem;display:flex}.step:last-child{border-right:0}.step .num{border-radius:var(--exe-radius-pill);width:24px;height:24px;color:var(--exe-fg-muted);font-weight:var(--exe-fw-bold);background:#e8e8e8;flex:0 0 24px;justify-content:center;align-items:center;font-size:.78rem;display:inline-flex}.step.active{color:var(--exe-teal-darker);background:#fff}.step.active .num{background:var(--exe-teal);color:#fff}.step.done{color:var(--exe-fg-muted)}.step.done .num{background:var(--exe-success-bg);color:var(--exe-success-fg)}.step.done .num:after{content:"✓";font-size:.9rem}.step.done .num span{display:none}.box{border:1px solid var(--exe-border);border-radius:var(--exe-radius-lg);background:var(--exe-box-bg);margin:0 0 24px;overflow:hidden}.box-head{border-bottom:1px solid var(--exe-border);background:#fff;align-items:center;gap:12px;padding:14px 20px;display:flex}.box-head .box-icon{flex:0 0 28px;width:28px;height:28px}.box-head .box-title{color:var(--exe-teal-darker);font-size:1.05rem;font-weight:var(--exe-fw-bold);letter-spacing:.01em;flex:1;margin:0}.box-head .box-meta{font-size:var(--exe-fs-meta);color:var(--exe-fg-faint)}.box-content{padding:20px}.box-collapsible>.box-head-summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.box-collapsible>.box-head-summary::-webkit-details-marker{display:none}.box-collapsible:not([open])>.box-head-summary{border-bottom:0}.box-chevron{color:var(--exe-fg-faint);flex:none;transition:transform .16s}.box-collapsible[open] .box-chevron{transform:rotate(180deg)}.dropzone{border:2px dashed var(--exe-border-strong);border-radius:var(--exe-radius-lg);text-align:center;transition:border-color var(--exe-ease), background var(--exe-ease);cursor:pointer;background:radial-gradient(circle at 50% 0,#078e8e0a,#0000 60%),#fff;padding:36px 24px;position:relative}.dropzone:hover,.dropzone.dragover{border-color:var(--exe-teal);background:radial-gradient(circle at 50% 0,#078e8e1a,#0000 60%),#fff}.dropzone .dz-icon{border-radius:var(--exe-radius-pill);background:var(--exe-teal);color:#fff;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 14px;display:inline-flex;box-shadow:0 6px 18px #078e8e2e}.dropzone .dz-icon svg{width:26px;height:26px}.dropzone .dz-title{color:var(--exe-fg-ink);font-size:1.15rem;font-weight:var(--exe-fw-bold);margin:0 0 4px}.dropzone .dz-title .h5p{color:var(--exe-teal);font-family:var(--exe-font-mono);border-radius:var(--exe-radius-sm);background:#f1faf9;border:1px solid #d4ecec;padding:1px 6px;font-size:.9em}.dropzone .dz-sub{font-size:var(--exe-fs-small);color:var(--exe-fg-faint);margin:0}.dropzone .dz-sub button{color:var(--exe-orange);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.dropzone .dz-sub button:hover{color:var(--exe-orange-dark)}.dropzone input[type=file]{display:none}.file-list{flex-direction:column;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.file-item{border:1px solid var(--exe-border);border-radius:var(--exe-radius-md);background:#fff;grid-template-columns:32px 1fr auto auto;align-items:center;gap:12px;padding:10px 14px;font-size:.95rem;display:grid}.file-item .ico{border-radius:var(--exe-radius-sm);width:28px;height:28px;color:var(--exe-teal-dark);font-family:var(--exe-font-mono);font-size:10px;font-weight:var(--exe-fw-bold);letter-spacing:.04em;background:#f1faf9;justify-content:center;align-items:center;display:inline-flex}.file-item .name{font-weight:var(--exe-fw-bold);color:var(--exe-fg-ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-item .size{font-size:var(--exe-fs-meta);color:var(--exe-fg-faint);font-variant-numeric:tabular-nums}.file-item .x{color:var(--exe-fg-faint);cursor:pointer;border-radius:var(--exe-radius-sm);transition:background var(--exe-ease), color var(--exe-ease);background:0 0;border:0;padding:4px 6px;font-size:16px;line-height:1}.file-item .x:hover{color:var(--exe-orange-dark);background:#f3e6e2}.compat{flex-direction:column;gap:6px;display:flex}.compat-row{border:1px solid var(--exe-border);border-radius:var(--exe-radius-md);background:#fff;grid-template-columns:1fr 1.2fr auto;align-items:center;gap:16px;padding:10px 14px;display:grid}.compat-row .col-file{font-weight:var(--exe-fw-bold);color:var(--exe-fg-ink);align-items:center;gap:10px;font-size:.95rem;display:flex;overflow:hidden}.compat-row .col-file .ico{border-radius:var(--exe-radius-sm);width:22px;height:22px;color:var(--exe-teal-dark);font-family:var(--exe-font-mono);font-size:8px;font-weight:var(--exe-fw-bold);background:#f1faf9;flex:0 0 22px;justify-content:center;align-items:center;display:inline-flex}.compat-row .col-lib{font-family:var(--exe-font-mono);color:var(--exe-fg-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.compat-row .col-lib .lib-ver{color:var(--exe-fg-faint)}.badge{border-radius:var(--exe-radius-pill);font-size:.78rem;font-weight:var(--exe-fw-bold);letter-spacing:.02em;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge.ok{background:var(--exe-success-bg);border-color:var(--exe-success-bd);color:var(--exe-success-fg)}.badge.partial{background:var(--exe-warning-bg);border-color:var(--exe-warning-bd);color:var(--exe-warning-fg)}.badge.no{background:var(--exe-danger-bg);border-color:var(--exe-danger-bd);color:var(--exe-danger-fg)}.opt-grid{grid-template-columns:1fr 1fr;gap:16px 24px;display:grid}.opt-grid .full{grid-column:1/-1}.opt{flex-direction:column;gap:6px;display:flex}.opt label{font-size:.85rem;font-weight:var(--exe-fw-bold);color:var(--exe-fg-muted);letter-spacing:.02em}.opt .hint{font-size:var(--exe-fs-meta);color:var(--exe-fg-faint);margin:2px 0 0}.opt select,.opt input[type=text]{border:1px solid var(--exe-border-strong);border-radius:var(--exe-radius-md);width:100%;font:inherit;color:var(--exe-fg);transition:border-color var(--exe-ease), box-shadow var(--exe-ease);background:#fff;padding:9px 12px;font-size:.95rem}.opt select:focus,.opt input[type=text]:focus{border-color:var(--exe-teal);outline:0;box-shadow:0 0 0 3px #078e8e26}.opt-toggle{border:1px solid var(--exe-border);border-radius:var(--exe-radius-md);cursor:pointer;transition:border-color var(--exe-ease), background var(--exe-ease);background:#fff;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.opt-toggle:hover{border-color:var(--exe-border-strong)}.opt-toggle input{accent-color:var(--exe-teal);margin-top:3px}.opt-toggle .lbl{font-weight:var(--exe-fw-bold);color:var(--exe-fg-ink);font-size:.95rem;display:block}.opt-toggle .hint{font-size:var(--exe-fs-meta);color:var(--exe-fg-faint);margin:2px 0 0}.opt-toggle.on{border-color:var(--exe-teal);background:#f4fbfb}.btn{border-radius:var(--exe-radius-md);font:inherit;font-weight:var(--exe-fw-bold);cursor:pointer;transition:background var(--exe-ease), color var(--exe-ease), border-color var(--exe-ease), box-shadow var(--exe-ease);white-space:nowrap;border:1px solid #0000;align-items:center;gap:8px;padding:11px 22px;font-size:.95rem;text-decoration:none;display:inline-flex}.btn-primary{background:var(--exe-teal);color:#fff;border-color:var(--exe-teal)}.btn-primary:hover{background:var(--exe-teal-dark);border-color:var(--exe-teal-dark)}.btn-primary:disabled{cursor:not-allowed;background:#c8c8c8;border-color:#c8c8c8}.btn-secondary{color:var(--exe-fg);border-color:var(--exe-border-strong);background:#fff}.btn-secondary:hover{border-color:var(--exe-fg-muted);color:var(--exe-fg-ink);box-shadow:var(--exe-shadow-hover)}.btn-lg{padding:14px 28px;font-size:1.02rem}.btn svg{width:16px;height:16px}.convert-bar{border:1px solid var(--exe-border);border-radius:var(--exe-radius-lg);background:linear-gradient(180deg, #fff, var(--exe-box-bg));justify-content:space-between;align-items:center;gap:16px;margin:0 0 24px;padding:18px 20px;display:flex}.convert-summary{color:var(--exe-fg-muted);font-size:.92rem;line-height:1.4}.convert-summary strong{color:var(--exe-fg-ink)}.result{border:1px solid var(--exe-success-bd);background:var(--exe-success-bg);border-radius:var(--exe-radius-lg);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin:0 0 24px;padding:22px 24px;display:grid}.result .result-icon{border-radius:var(--exe-radius-pill);background:var(--exe-success-fg);width:44px;height:44px;color:var(--exe-success-bg);font-size:22px;font-weight:var(--exe-fw-bold);justify-content:center;align-items:center;display:inline-flex}.result .result-text h3{color:var(--exe-success-link);margin:0 0 4px;font-size:1.05rem}.result .result-text p{color:var(--exe-success-fg);margin:0;font-size:.92rem}.result .result-actions{gap:10px;display:flex}.shell-wide-break{width:min(1600px,100vw - 32px);margin:0 0 24px;position:relative;left:50%;transform:translate(-50%)}.preview-intro{color:var(--exe-text-muted,#555);margin:0 0 14px;font-size:.92rem}.preview-host{font-family:var(--exe-font-mono);opacity:.8;font-size:.85rem}.preview-frame-wrap{border:1px solid var(--exe-border);border-radius:var(--exe-radius-md);background:#f6f6f6;margin:0 0 14px;overflow:hidden}.preview-frame{border:0;width:100%;height:70vh;min-height:480px;display:block}.preview-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.report-details{margin:0 0 16px}.report-details>.report-summary{cursor:pointer;color:var(--exe-fg-faint);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 0;font-size:.88rem;list-style:none;display:inline-flex}.report-details>.report-summary::-webkit-details-marker{display:none}.report-details>.report-summary svg{transition:transform .16s}.report-details[open]>.report-summary svg{transform:rotate(180deg)}.report-details .report-body{margin-top:8px}.report{background:var(--exe-code-bg);color:var(--exe-code-fg);border-radius:var(--exe-radius-lg);font-family:var(--exe-font-mono);font-size:var(--exe-fs-code);white-space:pre-wrap;margin:0 0 16px;padding:20px 22px;line-height:1.65;overflow-x:auto}.report-stats{background:var(--exe-border);border:1px solid var(--exe-border);border-radius:var(--exe-radius-md);grid-template-columns:repeat(5,1fr);gap:1px;margin:0 0 16px;display:grid;overflow:hidden}.report-stat{background:#fff;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 12px;display:flex}.report-stat .num{font-size:1.6rem;font-weight:var(--exe-fw-bold);color:var(--exe-fg-ink);font-variant-numeric:tabular-nums;line-height:1.1}.report-stat .lbl{color:var(--exe-fg-faint);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem}.report-stat.ok .num{color:var(--exe-success-fg)}.report-stat.warn .num{color:var(--exe-warning-fg)}.report-stat.err .num{color:var(--exe-danger-fg)}.foot{border-top:1px solid var(--exe-sidebar-border);text-align:center;font-size:var(--exe-fs-small);color:var(--exe-fg-muted);margin:60px 0 0;padding:24px 0 0}.foot .heart{color:#d44}.experimental-banner{z-index:1100;border-radius:var(--exe-radius-md);color:#6b5200;max-width:min(720px,100% - 24px);font-size:var(--exe-fs-small);background:#fff8d6;border:1px solid #f0d878;align-items:center;gap:10px;padding:10px 14px;line-height:1.35;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #785a002e}.experimental-banner-icon{color:#c08a00;flex:0 0 22px;width:22px;height:22px}.experimental-banner-text{flex:1}.experimental-banner-close{color:#6b5200;cursor:pointer;border-radius:var(--exe-radius-sm);background:0 0;border:0;padding:0 4px;font-size:20px;line-height:1}.experimental-banner-close:hover{background:#c08a002e}.foot .foot-source{vertical-align:middle;align-items:center;gap:4px;display:inline-flex}.foot .foot-source svg{vertical-align:middle}.foot a{color:var(--exe-orange);text-decoration:none}.foot a:hover{color:var(--exe-orange-dark);text-decoration:underline}.foot .made-with-exe{border-radius:var(--exe-radius-pill);background:var(--exe-teal);color:#fff;font-family:var(--exe-font-badge);font-size:var(--exe-fs-badge);box-shadow:var(--exe-shadow-badge);align-items:center;gap:8px;margin-top:12px;padding:6px 12px;display:inline-flex}.foot .made-with-exe a{color:#fff;text-decoration:underline}.error-banner{border:1px solid var(--exe-danger-bd);background:var(--exe-danger-bg);color:var(--exe-danger-fg);border-radius:var(--exe-radius-md);margin:0 0 16px;padding:12px 16px;font-size:.95rem}@media (width<=720px){.shell{padding:36px 18px 64px}.stepper{grid-template-columns:repeat(2,1fr)}.step:nth-child(2){border-right:0}.step:first-child,.step:nth-child(2){border-bottom:1px solid var(--exe-border)}.opt-grid{grid-template-columns:1fr}.compat-row{grid-template-columns:1fr auto}.compat-row .col-lib{grid-column:1/-1}.result{text-align:left;grid-template-columns:1fr}.report-stats{grid-template-columns:repeat(2,1fr)}.convert-bar{flex-direction:column;align-items:stretch}}
