@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700;800&display=swap');
.language-control-mobile{position:relative;display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:white;place-items:center;font-size:20px;line-height:1}.language-control-mobile select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.language-control-mobile:focus-within{outline:3px solid #8958ff40;outline-offset:2px}html[data-theme="dark"] .language-control-mobile{background:#14232e}@media(max-width:1024px){.language-control-desktop{display:none}.language-control-mobile{display:grid}}@media(max-width:480px){header{padding-inline:16px}.header-actions{gap:8px}}
.hero-description-line{display:block;margin-top:4px}
.language-control{display:flex;align-items:center}.language-control>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.language-control select{max-width:150px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);padding:9px 28px 9px 10px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.language-control select:focus-visible{outline:3px solid #8958ff40;outline-offset:2px}html[dir="rtl"] .language-control select{padding-right:10px;padding-left:28px}@media(max-width:1024px){.language-control{padding:6px 4px}.language-control select{width:100%;max-width:none;padding:11px 12px}html[dir="rtl"] .header-menu{right:auto;left:24px}}
footer a{margin-left:18px;color:var(--ink);font-size:13px;font-weight:700;text-decoration:none}footer a:hover{text-decoration:underline}footer a:focus-visible{outline:3px solid #8958ff40;outline-offset:3px;border-radius:3px}@media(max-width:760px){footer a{margin-left:auto}}
.header-menu{display:flex;align-items:center;gap:18px}.menu-toggle{display:none;width:42px;height:42px;padding:10px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);cursor:pointer}.menu-toggle i{display:block;width:20px;height:2px;margin:4px auto;border-radius:2px;background:currentColor;transition:transform .2s,opacity .2s}.menu-toggle[aria-expanded="true"] i:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle[aria-expanded="true"] i:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.menu-toggle:focus-visible{outline:3px solid #8958ff40;outline-offset:2px}html[data-theme="dark"] .menu-toggle{background:#14232e;color:#edf7ff}@media(max-width:1024px){header{position:relative;z-index:20}.menu-toggle{display:block}.header-menu{position:absolute;top:64px;right:24px;display:none;width:min(320px,calc(100vw - 48px));padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 18px 50px #1019232b;align-items:stretch;flex-direction:column;gap:4px}.header-menu.is-open{display:flex}.header-menu>a{display:block;padding:12px 14px;border-radius:10px}.header-menu>a:hover{background:#8958ff12}.header-menu .signin{margin-top:4px;text-align:center}.header-menu .user-chip{padding:8px 4px;justify-content:space-between}}
.catalog-filters{display:flex;flex-wrap:wrap;gap:9px;margin:-8px 0 22px}.catalog-filters[hidden]{display:none}.catalog-filter{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:999px;background:white;color:var(--ink);padding:9px 13px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:transform .16s,border-color .16s,background-color .16s}.catalog-filter:hover{border-color:#b8c4cb;transform:translateY(-1px)}.catalog-filter:focus-visible{outline:3px solid #8958ff40;outline-offset:2px}.catalog-filter span{display:grid;min-width:22px;height:22px;padding:0 6px;place-items:center;border-radius:999px;background:#eef2f4;color:#66727d;font-size:11px}.catalog-filter.is-active{background:var(--ink);border-color:var(--ink);color:white}.catalog-filter.is-active span{background:#ffffff2b;color:white}html[data-theme="dark"] .catalog-filter{background:#111f29;border-color:#2a3c49;color:#edf7ff}html[data-theme="dark"] .catalog-filter span{background:#263844;color:#c4d2dd}html[data-theme="dark"] .catalog-filter.is-active{background:#edf7ff;border-color:#edf7ff;color:#0b151d}html[data-theme="dark"] .catalog-filter.is-active span{background:#dfe8ee;color:#0b151d}@media(max-width:760px){.catalog-filters{margin-top:22px}}
.theme-logo{height:clamp(150px,30vw,293px);object-fit:contain}.theme-logo-light{background:#fff}.theme-toggle:focus-visible{outline:3px solid #8958ff;outline-offset:2px}
html{color-scheme:light}html[data-theme="dark"]{color-scheme:dark;--ink:#edf7ff;--muted:#9aabb9;--line:#283946;--paper:#0b151d}.header-actions{display:flex;align-items:center;gap:18px}.header-actions a{color:var(--ink);font-weight:700;text-decoration:none}.theme-toggle{position:relative;width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#101923;cursor:pointer;font-size:20px}.theme-toggle span{position:absolute;inset:0;display:grid;place-items:center;transition:opacity .2s,transform .2s}.theme-toggle .moon{opacity:0;transform:rotate(-30deg)}html[data-theme="dark"] .theme-toggle{background:#14232e;color:#edf7ff}html[data-theme="dark"] .theme-toggle .sun{opacity:0;transform:rotate(30deg)}html[data-theme="dark"] .theme-toggle .moon{opacity:1;transform:none}html .theme-logo-dark{display:none}html[data-theme="dark"] .theme-logo-light{display:none}html[data-theme="dark"] .theme-logo-dark{display:block}html[data-theme="dark"] body{background:#0b151d;color:#edf7ff}html[data-theme="dark"] header{background:#0b151d}html[data-theme="dark"] .hero{background:radial-gradient(circle at 48% 32%,#123c38 0,transparent 31%),radial-gradient(circle at 67% 24%,#251d47 0,transparent 27%),#0b151d}html[data-theme="dark"] .box-card,html[data-theme="dark"] .platforms label{background:#111f29;border-color:#2a3c49}html[data-theme="dark"] .box-card:hover{box-shadow:0 14px 34px #0008}html[data-theme="dark"] .build-note{background:#102a26;border-color:#245b4c}html[data-theme="dark"] .build-note p{color:#9aabb9}html[data-theme="dark"] .build-bar{background:linear-gradient(115deg,#12352d,#122d3b 55%,#251d42)}html[data-theme="dark"] .primary,html[data-theme="dark"] .build-bar button,html[data-theme="dark"] .close-build{background:#edf7ff;color:#0b151d}html[data-theme="dark"] .overlay-card{background:#111f29;color:#edf7ff}html[data-theme="dark"] .build-steps li.active{color:#edf7ff}html[data-theme="dark"] .progress{background:#263844}html[data-theme="dark"] .spinner{border-color:#2b3b46;border-top-color:#8958ff}html[data-theme="dark"] footer{background:#0b151d}.theme-logo{border-radius:10px}body,.box-card,.platforms label,.overlay-card,header,footer{transition:background-color .2s,color .2s,border-color .2s}@media(max-width:760px){.header-actions>a{display:none}}
.build-percent{display:block;margin-top:10px;color:#8958ff;font-size:22px}#build-progress-fill{animation:none;transform:none;transition:width .35s ease;width:0}
.header-actions .signin{background:var(--ink);color:#fff;padding:10px 18px;border-radius:10px;box-shadow:0 8px 20px #10192326}html[data-theme="dark"] .header-actions .signin{background:#edf7ff;color:#0b151d}
.user-chip{display:flex;align-items:center;gap:10px}.user-chip[hidden]{display:none}.user-chip-badge{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;color:var(--violet);border:1.5px solid var(--violet);border-radius:999px;padding:6px 14px;background:#8958ff14}.user-chip button{border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font-weight:700;font-size:13px;padding:8px 14px;cursor:pointer}html[data-theme="dark"] .user-chip button{border-color:#2a3c49;color:#edf7ff}html[data-theme="dark"] .user-chip-badge{background:#8958ff26}
.build-note{display:flex;gap:28px;align-items:baseline;margin-top:18px;padding:18px 20px;border:1px solid #bcebd8;border-radius:12px;background:#edfff7}.build-note strong{white-space:nowrap}.build-note p{margin:0;color:#657080;font-size:13px;line-height:1.6}.build-steps{list-style:none;margin:28px 0;padding:0;text-align:left}.build-steps li{position:relative;padding:10px 10px 10px 34px;color:#929aa4;font-size:14px;border-left:1px solid #dde3e7}.build-steps li:before{content:'';position:absolute;left:-6px;top:15px;width:10px;height:10px;border-radius:50%;background:#d7dde1}.build-steps li.complete{color:#52606d}.build-steps li.complete:before{content:'✓';display:grid;place-items:center;width:18px;height:18px;left:-10px;top:11px;color:white;background:#25bd78;font-size:11px}.build-steps li.active{color:#101923;font-weight:800}.build-steps li.active:before{background:#8958ff;box-shadow:0 0 0 5px #8958ff22}.build-steps li.failed{color:#b42318;font-weight:800}.build-steps li.failed:before{content:'!';display:grid;place-items:center;width:18px;height:18px;left:-10px;top:11px;color:white;background:#d92d20;font-size:12px}.close-build{border:0;border-radius:10px;background:#101923;color:white;font-weight:800;padding:12px 22px;margin-top:8px}
:root{--ink:#101923;--muted:#657080;--line:#dce4e8;--mint:#3df59a;--cyan:#26c7ef;--violet:#8958ff;--paper:#f7faf9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,system-ui,sans-serif}header{height:76px;display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:auto;padding:0 24px;border-bottom:1px solid var(--line)}header>a:last-child{color:var(--ink);font-weight:700;text-decoration:none}.brand{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;font-weight:800;font-size:21px}.brand img{width:35px}.hero{text-align:center;padding:82px 24px 92px;background:radial-gradient(circle at 50% 35%,#dffdf1 0,transparent 28%),radial-gradient(circle at 65% 25%,#eae0ff 0,transparent 25%)}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:12px;font-weight:800;color:#596576}.wordmark{display:block;width:min(760px,90vw);margin:24px auto 18px}.hero p{max-width:660px;margin:0 auto 30px;color:var(--muted);font-size:18px;line-height:1.7}.primary,.build-bar button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--ink);color:white;text-decoration:none;font-weight:800;padding:16px 24px;box-shadow:0 12px 30px #10192326}.builder{max-width:1180px;margin:auto;padding:90px 24px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:28px}.section-heading>div{display:flex;align-items:center;gap:14px}.section-heading p{max-width:430px;color:var(--muted);margin:0}.step{color:var(--violet);font-size:12px;font-weight:800;letter-spacing:.12em}h2{font-size:30px;margin:0}.catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.box-card{position:relative;display:block;border:1px solid var(--line);border-radius:16px;background:white;padding:20px;cursor:pointer;transition:.2s}.box-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px #1723350d}.box-card:has(input:checked){border-color:var(--violet);box-shadow:0 0 0 2px #8958ff22}.box-card input{position:absolute;opacity:0}.box-head{display:flex;justify-content:space-between;gap:10px}.box-card h3{margin:0 0 7px;font-size:17px}.box-card p{margin:0;color:var(--muted);font-size:13px}.check{width:22px;height:22px;border:1px solid #bdc7ce;border-radius:6px;display:grid;place-items:center;color:transparent}.box-card input:checked~.box-head .check{background:var(--violet);border-color:var(--violet);color:#fff}.tag{display:inline-block;margin-top:20px;text-transform:uppercase;font-size:10px;letter-spacing:.12em;color:#6d7784}.loading-card{grid-column:1/-1;text-align:center;padding:40px;color:var(--muted)}.platform-section{margin-top:65px}.platform-section h2{margin:8px 0 22px}.platforms{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.platforms label{cursor:pointer}.platforms input{position:absolute;opacity:0}.platforms label>span,.platforms label>b{display:block}.platforms label{background:white;border:1px solid var(--line);padding:20px;border-radius:14px}.platforms label:has(input:checked){border-color:var(--cyan);box-shadow:0 0 0 2px #26c7ef25}.platforms span{font-size:26px;margin-bottom:12px}.build-bar{margin-top:50px;padding:24px 28px;border-radius:18px;background:linear-gradient(115deg,#e1fff2,#e9f8ff 55%,#eee7ff);display:flex;align-items:center;justify-content:space-between}.build-bar strong,.build-bar small{display:block}.build-bar small{color:var(--muted);margin-top:5px}.build-bar button{font-size:16px;gap:18px}.build-bar button:disabled{opacity:.4;cursor:not-allowed}.error{color:#b42318;text-align:center;white-space:pre-line}.build-overlay{position:fixed;z-index:10;inset:0;background:#0b111be8;backdrop-filter:blur(10px);display:grid;place-items:center;padding:24px}.build-overlay[hidden]{display:none}.overlay-card{background:white;border-radius:22px;max-width:530px;padding:45px;text-align:center}.overlay-card h2{margin:12px 0}.overlay-card>p:not(.eyebrow){color:var(--muted);line-height:1.6}.spinner{width:56px;height:56px;border-radius:50%;border:5px solid #e4e8eb;border-top-color:var(--violet);margin:0 auto 28px;animation:spin .8s linear infinite}.progress{height:5px;background:#e7ebed;border-radius:10px;overflow:hidden;margin-top:28px}.progress i{display:block;width:35%;height:100%;background:linear-gradient(90deg,var(--mint),var(--cyan),var(--violet));animation:progress 1.4s ease-in-out infinite}footer{max-width:1180px;margin:auto;border-top:1px solid var(--line);padding:34px 24px;display:flex;align-items:center;gap:9px;font-weight:800}footer img{width:28px}footer p{margin-left:auto;color:var(--muted);font-weight:600}@keyframes spin{to{transform:rotate(360deg)}}@keyframes progress{from{transform:translateX(-110%)}to{transform:translateX(300%)}}@media(max-width:760px){.catalog{grid-template-columns:1fr}.section-heading{display:block}.section-heading p{margin-top:14px}.platforms{grid-template-columns:1fr}.build-bar{align-items:stretch;gap:20px;flex-direction:column}.hero{padding-top:55px}.builder{padding-top:60px}footer p{display:none}}

/* Build vs apps toggle — driven by data-build on <html> (LUDORA_BUILD_ENABLED). */
html[data-build="off"] .build-only{display:none!important}
html[data-build="on"] .apps-only{display:none!important}

/* Apps showcase (shown when the build UI is hidden). */
.apps-showcase{max-width:1180px;margin:auto;padding:60px 24px 40px}
.apps-intro{max-width:560px;color:var(--muted);margin:0 0 28px;font-size:16px;line-height:1.6}
.apps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.app-box{border:1px solid var(--line);border-radius:16px;background:#fff;padding:22px;transition:transform .2s,box-shadow .2s,border-color .2s}
.app-box:hover{transform:translateY(-2px);box-shadow:0 14px 30px #1723350d}
.app-box-cat{display:inline-block;text-transform:uppercase;font-size:10px;letter-spacing:.12em;color:var(--violet);font-weight:800}
.app-box h3{margin:8px 0 7px;font-size:18px}
.app-box p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.apps-cta{display:flex;width:max-content;margin:34px auto 0}
html[data-theme="dark"] .app-box{background:#111f29;border-color:#2a3c49}
html[data-theme="dark"] .app-box:hover{box-shadow:0 14px 34px #0008}
