:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172347;background:#fff;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.container{width:min(1160px,calc(100% - 44px));margin:0 auto}.narrow{max-width:790px!important}.site-header{background:#fff;box-shadow:0 3px 20px #0c164512;position:sticky;top:0;z-index:20}.nav-wrap{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{font-size:24px;font-weight:800;letter-spacing:-1.2px;white-space:nowrap}.brand span:last-child{color:#7164e8}.brand-mark{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#efedff;color:#6856d7;margin-right:8px;font-weight:500}.navigation{display:flex;gap:25px}.navigation a,.nav-right a{font-size:14px;font-weight:650}.navigation a:hover,.navigation a[aria-current]{color:#6958d8}.nav-right{display:flex;align-items:center;gap:15px}.lang-switch{padding:10px;border-radius:9px;background:#f2f4fa}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;background:#6756de;color:#fff;border:2px solid #6756de;padding:14px 23px;font-weight:750;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:0 9px 22px #5145b32b}.button-outline{background:transparent;color:#5147bb;border-color:#cbc7f3}.button-small{font-size:13px;padding:10px 13px}.hero{background:radial-gradient(ellipse at 85% 20%,#e9e7ff 0%,transparent 42%),linear-gradient(135deg,#fafbff,#f5f7ff);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:35px;padding-top:88px;padding-bottom:90px;min-height:640px}.eyebrow{display:inline-block;color:#6a57d4;text-transform:uppercase;letter-spacing:2px;font-weight:800;font-size:12px;margin-bottom:14px}.hero h1{font-size:clamp(43px,4.8vw,68px);letter-spacing:-2.8px;line-height:1.09;margin:0 0 22px;max-width:640px}.lead{font-size:19px;line-height:1.75;color:#596581;max-width:590px}.action-row{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-top:29px}.hero-tags{display:flex;gap:11px;flex-wrap:wrap;margin-top:35px}.hero-tags span,.tags span{display:inline-block;background:#f1f1fc;border:1px solid #e4e5fa;color:#5c6085;border-radius:100px;padding:8px 12px;font-size:12px;font-weight:650}.hero-visual{background:linear-gradient(135deg,#dcd8ff,#efedff);border-radius:35px;padding:35px 25px 25px;position:relative;box-shadow:0 25px 75px #5550b226;min-height:380px;display:grid;place-items:center}.hero-visual img{width:100%;max-height:410px;object-fit:contain;filter:drop-shadow(0 14px 14px #3333)}.glass-label,.visual-chip{position:absolute;background:#fff;border-radius:11px;padding:12px 18px;box-shadow:0 8px 28px #3136781a;font-size:12px;font-weight:800}.glass-label{top:-16px;left:24px}.visual-chip{bottom:10px;right:8px}.section{padding:96px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:33px}.section-heading p{max-width:710px}.section h2,.page-banner h1{font-size:clamp(34px,3.4vw,47px);letter-spacing:-1.6px;line-height:1.16;margin:2px 0 16px}.section p,.page-banner p{color:#596581;line-height:1.8}.section-heading p{margin:0}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.app-card{background:#fff;padding:30px;border:1px solid #e9eaf4;border-radius:19px;box-shadow:0 13px 30px #15215808;display:flex;flex-direction:column;min-height:334px}.app-card:hover{box-shadow:0 19px 47px #15215815;transform:translateY(-2px)}.app-card-top{display:flex;justify-content:space-between;align-items:start;gap:10px}.app-icon{width:60px;height:60px;display:grid;place-items:center;border-radius:16px;background:#efedff;color:#6658db;font-size:36px}.pill{background:#eff9f7;color:#317f72;border-radius:99px;padding:8px 12px;font-size:12px;font-weight:750}.app-card h3{font-size:24px;margin:22px 0 5px}.app-card p{font-size:14px;line-height:1.75;flex:1}.tags{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0 20px}.tags span{font-size:11px;padding:6px 10px}.text-link{color:#6954d6;font-weight:800;font-size:14px}.pale-section{background:#f8f9fe}.centered{text-align:center;max-width:770px;margin-inline:auto}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:42px}.values-grid article{text-align:center;padding:24px}.value-icon{margin:auto;width:65px;height:65px;display:grid;place-items:center;border-radius:20px;background:#e9e7fd;color:#6252d4;font-size:34px}.values-grid h3{font-size:21px}.values-grid p{font-size:15px}.article-feature{display:grid;grid-template-columns:1fr .8fr;align-items:center;gap:60px}.article-art{min-height:280px;background:linear-gradient(135deg,#181d53,#655ad0);border-radius:24px;color:#fff;padding:42px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;box-shadow:0 22px 42px #1b22612d}.article-art>span{font-size:clamp(56px,6vw,86px);line-height:.97;letter-spacing:-4px;font-weight:900}.article-art small{letter-spacing:2px;margin-top:20px}.accent{color:#67e8d3}.closing-section{background:#171c4b;color:#fff}.closing-section p{color:#c5cbea}.closing-section .eyebrow{color:#9db1ff}.button-light{background:#fff;color:#302e85;border-color:#fff}.page-banner{padding:80px 0 74px;background:linear-gradient(120deg,#fafbff,#eeedff)}.page-banner h1{max-width:850px}.page-banner p{font-size:18px;max-width:800px}.catalog-toolbar{margin-bottom:25px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.catalog-toolbar label{font-weight:700}.catalog-toolbar input{border:1px solid #cfd2e7;padding:14px 16px;border-radius:12px;font:inherit;min-width:min(100%,340px)}.filter-app .app-card{height:100%}.blog-card h2{font-size:23px}.prose{font-size:17px;line-height:1.9;color:#43516c}.prose h2{color:#172347;font-size:29px;margin:36px 0 15px}.prose h3{color:#172347}.prose a:not(.button){color:#6351d0;text-decoration:underline}.prose li{margin-bottom:8px}.article-body{font-size:17px}.article-bottom{border-top:1px solid #e9eaf0;margin-top:60px;padding-top:25px}.app-title-line{display:flex;align-items:center;gap:20px}.app-title-line h1{margin-bottom:0}.app-icon-large{width:80px;height:80px;font-size:45px}.back-link{display:inline-block;color:#6351d0;margin-bottom:24px;font-size:14px;font-weight:700}.detail-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:70px}.detail-section{margin-bottom:48px}.detail-section h2{font-size:30px}.check-list{list-style:none;padding:0}.check-list li{padding:12px 0;border-bottom:1px solid #e7e9f4}.check-list li:before{content:"✓";color:#34a98f;font-weight:900;margin-right:12px}.spec-panel{background:#f8f9ff;padding:32px;border-radius:20px;align-self:start}.spec-panel h3{margin-top:0}.spec-panel dl{display:grid;gap:8px}.spec-panel dt{color:#68738a;font-size:12px;text-transform:uppercase;font-weight:800;margin-top:12px}.spec-panel dd{margin:0;font-size:14px;line-height:1.5}.spec-panel .button{margin-top:26px}.footer{background:#f6f7fb;padding:70px 0;color:#54617c}.footer-grid{display:grid;grid-template-columns:2.5fr 1fr 1fr 1fr;gap:30px}.footer-grid>div{display:flex;flex-direction:column;align-items:start;gap:13px}.footer-grid strong{color:#172347}.footer-grid a:not(.brand){font-size:14px}.footer small{font-size:12px}.footer p{font-size:14px;line-height:1.7}.brand-footer{color:#1d2855}button,input{font:inherit}a:focus-visible,input:focus-visible{outline:3px solid #09a6ab;outline-offset:3px}@media(max-width:1050px){.navigation{gap:12px}.navigation a{font-size:12px}.nav-sponsor{display:none}.hero-grid{grid-template-columns:1fr 1fr}.hero-visual{min-height:280px}}@media(max-width:760px){.nav-wrap{flex-wrap:wrap;min-height:auto;padding:16px 0}.navigation{order:3;overflow-x:auto;white-space:nowrap;width:100%;padding:8px 0}.nav-right{margin-left:auto}.hero-grid,.article-feature,.detail-grid{grid-template-columns:1fr}.hero-grid{padding:56px 0}.hero h1{font-size:43px}.hero-visual{min-height:230px;margin:15px 0}.section{padding:65px 0}.cards-grid,.values-grid{grid-template-columns:1fr}.section-heading{display:block}.footer-grid{grid-template-columns:1fr 1fr}.page-banner{padding:55px 0}.article-art{min-height:230px}}@media(max-width:420px){.container{width:min(100% - 28px,1160px)}.footer-grid{grid-template-columns:1fr}.hero h1{font-size:37px}.section h2,.page-banner h1{font-size:34px}}.brand-logo{display:block;width:150px;height:84px;object-fit:cover}.article-cover,.article-body img{display:block;width:100%;height:auto;border-radius:24px}img.app-icon{display:block;width:112px;height:112px;object-fit:contain;background:transparent;flex-shrink:0}img.app-icon-large{width:144px;height:144px}@media(max-width:420px){.app-title-line{flex-wrap:wrap}}.blog-card-cover{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:12px;margin-bottom:20px}.article-body>.article-cover{margin-bottom:36px}.blog-card-cover{object-fit:contain}.blog-card h2 a:hover,.blog-card h3 a:hover{color:#6954d6}.social-links{display:flex;gap:8px;margin:2px 0 4px}.social-links a{display:grid;place-items:center;width:44px;height:44px;border:1px solid #d9dced;border-radius:50%;color:#4d477f;transition:background .2s,color .2s,transform .2s}.social-links a:hover{background:#6756de;border-color:#6756de;color:#fff;transform:translateY(-2px)}.social-links a:focus-visible{outline:3px solid #09a6ab;outline-offset:3px}.social-icon{display:block;width:22px;height:22px;fill:currentColor}.budget-details{margin-top:68px;border-top:1px solid #e7e9f4}.budget-section{padding:54px 0}.budget-section-tint{margin-inline:-34px;padding-inline:34px;background:#f8f9ff;border-radius:24px}.budget-section h2{font-size:clamp(28px,3vw,39px);margin:0 0 14px}.budget-intro{max-width:760px;margin:0 0 25px}.budget-check-list{max-width:840px}.architecture-layers,.installer-grid,.budget-info-grid{display:grid;gap:16px}.architecture-layers{grid-template-columns:repeat(3,1fr);margin:28px 0}.architecture-layers article,.installer-grid article,.budget-info-grid article{padding:24px;background:#fff;border:1px solid #e4e7f2;border-radius:17px}.architecture-layers span{color:#6a57d4;font-size:12px;font-weight:850;letter-spacing:1.5px}.architecture-layers h3,.installer-grid h3,.budget-info-grid h3{font-size:19px;margin:14px 0 8px}.architecture-layers p,.installer-grid p,.budget-info-grid p{font-size:14px;line-height:1.7;margin:0;color:#596581}.budget-callout{padding:18px 20px;border-left:4px solid #6c5adc;background:#f0effc;border-radius:0 12px 12px 0}.budget-details pre{overflow:auto;margin:20px 0 0;padding:17px 19px;background:#19204f;color:#eef0ff;border-radius:13px;font-size:13px;line-height:1.65}.budget-details code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.budget-info-grid{grid-template-columns:1fr 1fr;margin-top:24px}.budget-info-grid pre{margin-top:15px}.installer-grid{grid-template-columns:repeat(3,1fr);margin-top:28px}.installer-grid pre{margin:14px 0}.installer-grid article{display:flex;flex-direction:column}.installer-grid p{margin-top:auto}@media(max-width:760px){.budget-details{margin-top:44px}.budget-section{padding:40px 0}.budget-section-tint{margin-inline:0;padding-inline:22px}.architecture-layers,.installer-grid,.budget-info-grid{grid-template-columns:1fr}}.budget-documentation{padding-top:0}.apps-showcase-hero{overflow:hidden;background:radial-gradient(circle at 81% 14%,#d7e7ff 0,transparent 21%),radial-gradient(circle at 69% 74%,#dedaff 0,transparent 28%),linear-gradient(125deg,#fbfcff,#f0f2ff);padding:82px 0 76px}.apps-showcase-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:55px}.apps-showcase-copy h1{font-size:clamp(43px,4.7vw,66px);letter-spacing:-2.7px;line-height:1.06;margin:0 0 22px;max-width:650px}.apps-showcase-copy>p{font-size:19px;line-height:1.8;color:#596581;max-width:625px}.catalog-stat{display:inline-flex;align-items:center;gap:12px;margin-top:22px;padding:12px 17px;background:#fff;border:1px solid #e3e4f8;border-radius:13px;box-shadow:0 12px 28px #3c3b8610}.catalog-stat strong{font-size:30px;line-height:1;color:#5d4fd0}.catalog-stat span{font-size:13px;font-weight:750;color:#536078}.apps-logo-composition{min-height:360px;position:relative}.logo-orbit{position:absolute;display:grid;place-items:center;width:128px;height:128px;background:#fff;border:1px solid #e3e6fb;border-radius:29px;box-shadow:0 22px 45px #30377822;overflow:hidden}.logo-orbit img{width:100%;height:100%;object-fit:cover}.logo-orbit-1{top:13px;left:23%;transform:rotate(-7deg)}.logo-orbit-2{top:42px;right:3%;width:112px;height:112px;transform:rotate(8deg)}.logo-orbit-3{top:171px;left:2%;width:105px;height:105px;transform:rotate(8deg)}.logo-orbit-4{bottom:2px;left:34%;width:138px;height:138px;transform:rotate(-5deg)}.logo-orbit-5{bottom:65px;right:3%;width:102px;height:102px;transform:rotate(6deg)}.catalogue-section{padding:84px 0 102px}.catalogue-context{display:grid;grid-template-columns:72px 1.08fr 1fr;gap:28px;align-items:start;padding:0 0 47px;border-bottom:1px solid #e6e8f2}.context-number{font-size:18px;font-weight:800;color:#8074df;padding-top:3px}.catalogue-context h2{font-size:clamp(29px,3vw,40px);letter-spacing:-1.5px;line-height:1.12;margin:0}.catalogue-context p{margin:2px 0 0;color:#596581;line-height:1.8}.catalog-controls{display:flex;justify-content:space-between;gap:28px;align-items:end;padding:33px 0}.project-filters{border:0;padding:0;margin:0}.project-filters legend,.catalog-search span{display:block;color:#536078;font-size:12px;text-transform:uppercase;letter-spacing:1.2px;font-weight:800;margin-bottom:11px}.project-filters div{display:flex;gap:8px;flex-wrap:wrap}.project-filter{border:1px solid #dedff0;background:#fff;color:#4f5870;border-radius:99px;padding:9px 14px;font-size:13px;font-weight:750;cursor:pointer;transition:.2s}.project-filter:hover,.project-filter[aria-pressed=true]{background:#6756de;color:#fff;border-color:#6756de}.catalog-search input{border:1px solid #cfd2e7;padding:12px 15px;border-radius:11px;font:inherit;min-width:300px}.projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 23px}.project-card{min-width:0}.project-preview{height:244px;display:grid;place-items:center;position:relative;overflow:hidden;border-radius:21px;background:#f2f3ff;border:1px solid #e5e7f6;isolation:isolate}.project-preview-glow{position:absolute;width:180px;height:180px;border-radius:50%;filter:blur(10px);opacity:.65;z-index:-1}.project-preview-desktop{background:#dcd9ff}.project-preview-mobile{background:#d4f3ee}.project-preview-web{background:#ffeac5}.project-preview-library{background:#d8e9ff}.project-preview img{height:176px;width:176px;object-fit:cover;border-radius:24px;box-shadow:0 20px 32px #26366923;transition:transform .3s}.project-card:hover .project-preview img{transform:scale(1.06) rotate(-2deg)}.project-arrow{position:absolute;right:15px;top:15px;width:37px;height:37px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#5145bd;font-size:19px;opacity:0;transform:translate(-6px,6px);transition:.25s}.project-card:hover .project-arrow{opacity:1;transform:none}.project-txt{padding:21px 3px 8px}.project-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#6b60c9;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.8px}.project-meta .pill{padding:6px 10px;text-transform:none;letter-spacing:0;white-space:nowrap}.project-txt h2{font-size:26px;letter-spacing:-.8px;margin:14px 0 8px}.project-txt h2 a:hover{color:#6554d3}.project-txt p{color:#596581;font-size:14px;line-height:1.72;margin:0;min-height:72px}.project-txt .tags{margin:16px 0 19px}.catalog-empty{color:#596581;padding:20px 0}.filter-app[hidden],#empty-search[hidden]{display:none}@media(max-width:760px){.apps-showcase-hero{padding:58px 0 48px}.apps-showcase-grid,.catalogue-context{grid-template-columns:1fr}.apps-showcase-grid{gap:25px}.apps-logo-composition{min-height:280px}.logo-orbit-1{left:18%}.logo-orbit-3{top:150px}.logo-orbit-4{bottom:0}.catalogue-section{padding:60px 0}.catalogue-context{gap:15px;padding-bottom:34px}.catalog-controls{display:grid;align-items:stretch;padding:27px 0}.catalog-search input{min-width:0;width:100%}.projects-grid{grid-template-columns:1fr;gap:35px}.project-preview{height:230px}.project-txt p{min-height:auto}}.app-documentation-section{padding-top:0}.app-documentation{border-top:1px solid #e7e9f4;padding-top:48px}.app-doc-heading{max-width:850px;margin:0 0 42px}.app-doc-heading h2,.app-doc-section>h2{font-size:clamp(29px,3vw,40px);letter-spacing:-1.3px;line-height:1.18;margin:0 0 14px}.app-doc-heading p,.app-doc-intro{font-size:17px;line-height:1.8;color:#596581}.app-doc-section{padding:44px 0}.app-doc-tint{padding:38px 34px;background:#f8f9ff;border-radius:24px}.app-doc-intro{max-width:780px;margin:0 0 26px}.app-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.app-doc-card{background:#fff;border:1px solid #e4e7f2;border-radius:17px;padding:24px}.module-id{display:inline-block;color:#6756de;font-weight:850;font-size:14px;letter-spacing:.4px}.app-doc-card h3,.app-reminder h3,.app-resource-note h3,.app-requirements h3{margin:11px 0 8px;font-size:18px;color:#172347}.app-doc-card p,.app-reminder p,.app-resource-note p,.app-requirements p,.app-scope-note p{font-size:14px;line-height:1.75;color:#596581;margin:0}.app-reminder{display:flex;gap:18px;align-items:flex-start;padding:23px;margin-top:19px;background:#efedff;border-radius:16px}.app-reminder>span{display:grid;place-items:center;flex:0 0 42px;height:42px;background:#fff;border-radius:13px;color:#6554d7;font-size:24px}.app-reminder h3{margin-top:0}.app-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.app-tech-list{display:flex;flex-wrap:wrap;gap:9px;margin:24px 0}.app-tech-list span{padding:9px 13px;border:1px solid #e4e5fa;background:#f1f1fc;border-radius:99px;color:#535b7a;font-size:13px;font-weight:700}.app-resource-note,.app-requirements{padding:22px 24px;border-left:4px solid #6c5adc;background:#f0effc;border-radius:0 14px 14px 0}.app-build-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:17px}.app-documentation pre{overflow:auto;margin:18px 0 0;padding:16px 18px;background:#19204f;color:#eef0ff;border-radius:12px;font-size:13px;line-height:1.65}.app-documentation code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.app-scope-note{padding:24px 26px;margin-top:30px;border:1px solid #f2d9ac;background:#fffaf0;border-radius:16px}.app-scope-note .eyebrow{color:#9a6414}.app-scope-note p{font-size:15px}@media(max-width:760px){.app-documentation{padding-top:36px}.app-doc-section{padding:34px 0}.app-doc-tint{padding:28px 20px}.app-module-grid,.app-feature-grid,.app-build-grid{grid-template-columns:1fr}.app-reminder{padding:18px}}.hair-gallery{padding:72px 0 28px;background:linear-gradient(180deg,#f8fbff,#fff);border-top:1px solid #e7edf7}.hair-gallery-heading{max-width:760px;margin:0 auto 38px;text-align:center}.hair-gallery-heading h2{margin:10px 0 13px;color:#172347;font-size:clamp(30px,4vw,48px);letter-spacing:-1.8px;line-height:1.12}.hair-gallery-heading p{margin:0;color:#596581;font-size:17px;line-height:1.7}.hair-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}.hair-shot{margin:0;padding:13px;background:#fff;border:1px solid #e1eaf5;border-radius:22px;box-shadow:0 16px 38px #163e6b14}.hair-shot-featured{grid-column:1/-1}.hair-shot-frame{overflow:hidden;border-radius:13px;background:#eaf4fc;border:1px solid #d5e8f8}.hair-shot img{display:block;width:100%;height:auto}.hair-shot-featured img{max-height:530px;object-fit:cover;object-position:top}.hair-shot figcaption{display:flex;gap:13px;padding:17px 7px 5px}.hair-shot figcaption>span{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:10px;background:#eaf4ff;color:#0872bb;font-size:12px;font-weight:850}.hair-shot h3{margin:0 0 4px;color:#172347;font-size:18px}.hair-shot p{margin:0;color:#5b6680;font-size:14px;line-height:1.55}@media(max-width:760px){.hair-gallery{padding:52px 0 16px}.hair-gallery-grid{grid-template-columns:1fr;gap:20px}.hair-shot-featured{grid-column:auto}.hair-shot{padding:9px;border-radius:17px}.hair-shot figcaption{padding:14px 5px 4px}.hair-shot-featured img{max-height:none}}
