:root{--bg:#0b0f19;--bg-soft:#101828;--surface:#121a2b;--surface-2:#1a2336;--text:#f3f7ff;--text-soft:#a9b4c7;--border:#ffffff14;--accent:#7c5cff;--accent-hover:#6d4df0;--accent-soft:#7c5cff1f;--container-reading:820px;--container-content:1360px;--container-wide:1720px;--container:var(--container-content);--radius-sm:12px;--radius-md:18px;--radius-lg:28px;--shadow-soft:0 10px 30px #00000040;--shadow-card:0 8px 24px #00000038;--transition:.25s ease;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at top left, #7c5cff14, transparent 30%), radial-gradient(circle at top right, #2dd4bf0f, transparent 22%), var(--bg);min-width:320px;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.5;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}:focus-visible{outline-offset:3px;outline:3px solid #a99affeb}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}button{cursor:pointer;border:none}h1,h2,h3,h4,p{margin-top:0}p{text-wrap:pretty}.container{--container-max:var(--container-content);width:min(calc(100% - 2rem), var(--container-max));margin:0 auto}.container-reading{--container-max:var(--container-reading)}.container-content{--container-max:var(--container-content)}.container-wide{--container-max:var(--container-wide)}.site-main{flex:1}.page-section{padding:5rem 0}.section-heading{max-width:var(--container-reading);margin-bottom:2.5rem}.section-heading h1,.section-heading h2{letter-spacing:-.03em;margin:0 0 1rem;font-size:clamp(2rem,4vw,3.5rem);line-height:1.08}.section-heading p{color:var(--text-soft);margin:0;font-size:1.05rem;line-height:1.7}.card{border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:var(--radius-md);background:#121a2bd1}.badge{background:var(--accent-soft);color:var(--text);border:1px solid #7c5cff2e;border-radius:999px;align-items:center;padding:.45rem .85rem;font-size:.9rem;font-weight:500;display:inline-flex}.btn{min-height:48px;transition:all var(--transition);border-radius:999px;justify-content:center;align-items:center;gap:.6rem;padding:0 1.2rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 8px 20px #7c5cff38}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn-secondary{color:var(--text);border:1px solid var(--border);background:#ffffff08}.btn-secondary:hover{background:#ffffff0f}.grid{gap:1.5rem;display:grid}.form-field{gap:6px;width:100%;display:grid}.form-field-label{color:var(--text);font-weight:600}.form-field-error{color:#ffaaa7;font-size:.86rem;line-height:1.45}.form-control[aria-invalid=true]{border-color:#ff7873b8;box-shadow:0 0 0 1px #ff787333}.form-control:disabled{cursor:not-allowed;opacity:.65}.form-control{width:100%;color:var(--text);border:1px solid var(--border);transition:border-color var(--transition), box-shadow var(--transition);background:#ffffff0a;border-radius:8px;outline:none}.form-control::placeholder{color:#a9b4c7;opacity:.7}.form-control:focus{border-color:#7c5cff66;box-shadow:0 0 0 1px #7c5cff40}.form-privacy-notice{color:var(--text-soft);margin:0;font-size:.78rem;line-height:1.55}.form-privacy-notice a{color:#c7bdff;text-underline-offset:.18em;text-decoration:underline}.form-privacy-notice a:hover{color:var(--text)}.form-field-sm .form-field-label,.form-field-sm .form-control{font-size:14px}.form-field-sm .form-field-label{line-height:1.55}.form-field-sm .form-control{min-height:36px;padding:0 12px}.form-field-md .form-field-label,.form-field-md .form-control{font-size:16px}.form-field-md .form-field-label{line-height:1.55}.form-field-md .form-control{background:#ffffff08;min-height:54px;padding:0 14px}.form-textarea{resize:vertical;line-height:1.55;display:block;min-height:144.333px!important;padding-block:5.5px!important}.form-field-md .form-textarea{min-height:165.333px!important;padding-block:7px!important}.form-select-wrapper{display:block;position:relative}.form-select-trigger{text-align:left;justify-content:space-between;align-items:center;gap:1rem;display:flex}.form-select-chevron{border-right:1.5px solid var(--text-soft);border-bottom:1.5px solid var(--text-soft);width:7px;height:7px;transition:transform var(--transition);flex:none;transform:translateY(-2px)rotate(45deg)}.form-select-wrapper.is-open .form-select-chevron{transform:translateY(2px)rotate(225deg)}.form-select-menu{z-index:50;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#121a2bfa;border:1px solid #7c5cff3d;border-radius:12px;width:100%;padding:.4rem;position:absolute;top:calc(100% + 7px);left:0;box-shadow:0 18px 38px #00000061}.form-select-option{width:100%;min-height:44px;color:var(--text);text-align:left;background:0 0;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .8rem;transition:color .18s,background-color .18s;display:flex}.form-select-option:hover,.form-select-option.is-highlighted{background:#ffffff0e}.form-select-option.is-selected{color:#fff;background:#7c5cff24}.form-select-option.is-selected.is-highlighted{background:#7c5cff33}.form-select-check{color:#a99aff;font-weight:700}.cta-box{min-height:180px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition), background var(--transition);justify-content:space-between;align-items:center;gap:1.5rem;padding:2rem;display:flex}.cta-box:hover{border-color:#7c5cff33;box-shadow:0 14px 34px #00000047}.cta-box h2{margin:0 0 .75rem;font-size:clamp(1.8rem,3vw,2.8rem)}.cta-box p{color:var(--text-soft);margin:0;line-height:1.7}.cta-actions{flex-wrap:wrap;flex-shrink:0;gap:.75rem;display:flex}.not-found{text-align:center;place-items:center;min-height:60vh;display:grid}.not-found-content{max-width:640px}.not-found-content p{color:var(--text-soft);margin-bottom:1.5rem}@media (width<=960px){.cta-box{flex-direction:column;align-items:flex-start}}@media (width>=1440px){.container{width:min(calc(100% - 6rem), var(--container-max))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.site-header{z-index:1000;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#0b0f19b8;position:sticky;top:0}.navbar{justify-content:space-between;align-items:center;gap:2rem;min-height:84px;display:flex}.navbar-brand{flex-shrink:0}.logo{border:1px solid var(--border);letter-spacing:.08em;min-width:46px;min-height:46px;transition:all var(--transition);background:#ffffff08;border-radius:14px;justify-content:center;align-items:center;font-size:1rem;font-weight:800;display:inline-flex}.logo:hover{background:#ffffff0f}.nav{flex:1;justify-content:center;align-items:center;gap:1.15rem;display:flex}.nav a{color:var(--text-soft);transition:color var(--transition), transform var(--transition);font-weight:500}.nav a:hover,.nav a.active{color:var(--text)}.nav a:hover{transform:translateY(-1px)}.contact-btn{background:var(--accent);min-height:44px;transition:all var(--transition);border-radius:999px;justify-content:center;align-items:center;padding:.8rem 1.2rem;font-weight:700;display:inline-flex;box-shadow:0 8px 20px #7c5cff38;color:#fff!important}.contact-btn:hover,.contact-btn.active{background:var(--accent-hover);transform:translateY(-1px)}.navbar-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.lang-switcher{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.lang-switcher button{min-width:42px;min-height:38px;color:var(--text-soft);border:1px solid var(--border);transition:all var(--transition);background:#ffffff08;border-radius:999px;padding:0 .8rem}.lang-switcher button:hover{color:var(--text);background:#ffffff0f}.lang-switcher button.is-active{background:var(--accent-soft);color:var(--text);border-color:#7c5cff4d}.menu-toggle{border:1px solid var(--border);width:46px;height:46px;transition:all var(--transition);background:#ffffff08;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0;display:none}.menu-toggle:hover{background:#ffffff0f}.menu-toggle span{background:var(--text);width:18px;height:2px;transition:transform var(--transition), opacity var(--transition);border-radius:999px}.menu-toggle.is-open span:first-child{transform:translateY(7px)rotate(45deg)}.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.mobile-menu-wrapper{display:none}.mobile-menu{flex-direction:column;gap:.35rem;margin-top:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.mobile-menu a{color:var(--text-soft);transition:background var(--transition), color var(--transition);border-radius:14px;padding:.95rem 1rem;font-weight:500}.mobile-menu a:hover,.mobile-menu a.active{color:var(--text);background:#ffffff0a}.mobile-contact-btn{width:100%;margin-top:.5rem}.site-footer{border-top:1px solid var(--border);background:#101828cc;margin-top:auto}.footer-content{min-height:92px;color:var(--text-soft);justify-content:space-between;align-items:center;gap:1rem;font-size:.95rem;display:flex}@media (width<=960px){.nav-desktop{display:none}.menu-toggle{display:inline-flex}.mobile-menu-wrapper{display:block}.footer-content{flex-direction:column;justify-content:center;align-items:flex-start}}@media (width<=720px){.navbar{gap:1rem}.navbar-actions{gap:.5rem}.lang-switcher button{min-width:40px;min-height:36px;padding:0 .7rem}}.footer-secondary{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.footer-secondary a{color:inherit}.footer-secondary a:hover{color:var(--text)}.hero-section{padding-top:6rem}.hero-layout{grid-template-columns:1.1fr .9fr;align-items:center;gap:2rem;display:grid}.hero-content h1{letter-spacing:-.04em;max-width:11ch;margin:1rem 0;font-size:clamp(2.6rem,5vw,4.8rem);line-height:1.02}.hero-content p{max-width:58ch;color:var(--text-soft);margin:0;font-size:1.08rem;line-height:1.75}.hero-actions{flex-wrap:wrap;gap:1rem;margin-top:2rem;display:flex}.hero-visual{min-height:420px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition), background var(--transition);justify-content:stretch;align-items:stretch;padding:1.5rem;display:flex}.hero-visual:hover{border-color:#7c5cff33;box-shadow:0 14px 34px #00000047}.hero-visual-inner{border-radius:var(--radius-md);width:100%;color:var(--text-soft);background:linear-gradient(135deg,#7c5cff1f,#0000 45%),#ffffff05;border:1px dashed #ffffff24;justify-content:center;align-items:center;display:flex}.hero-dashboard{background:radial-gradient(circle at 100% 0,#7c5cff33,#0000 30%),radial-gradient(circle at 0 100%,#ffffff08,#0000 24%),#ffffff05;position:relative;overflow:hidden}.hero-dashboard-grid{justify-content:center;align-items:center;width:100%;min-height:100%;display:flex;position:relative}.hero-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#ffffff0a,#ffffff04),#0b0f19b3;border:1px solid #ffffff14;border-radius:22px;width:min(100%,420px);min-height:260px;padding:1.25rem;box-shadow:0 20px 50px #00000047}.hero-panel-header{align-items:center;gap:.45rem;margin-bottom:1.25rem;display:flex}.hero-dot{background:#ffffff2e;border-radius:50%;width:10px;height:10px}.hero-panel-content{flex-direction:column;gap:.85rem;display:flex}.hero-line{background:linear-gradient(90deg,#7c5cff80,#ffffff14);border-radius:999px;height:12px}.hero-line-lg{width:78%}.hero-line-md{width:58%}.hero-line-sm{width:42%}.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-top:1rem;display:grid}.hero-stat-card{background:#ffffff08;border:1px solid #ffffff0f;border-radius:16px;padding:1rem}.hero-stat-label{color:var(--text-soft);margin-bottom:.35rem;font-size:.82rem;display:block}.hero-stat-value{color:var(--text);font-size:1rem;font-weight:700}.hero-floating{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#ffffff0d,#ffffff05),#121a2be0;border:1px solid #ffffff14;border-radius:18px;min-width:180px;padding:1rem 1.1rem;position:absolute;box-shadow:0 16px 30px #00000038}.hero-floating strong{color:var(--text);font-size:1rem;display:block}.hero-floating-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.35rem;font-size:.78rem;display:block}.hero-floating-top{top:2rem;right:1rem}.hero-floating-bottom{bottom:2rem;left:1rem}.services-grid,.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.technology-groups{grid-template-columns:1.45fr repeat(2,minmax(0,1fr));gap:1rem;display:grid}.technology-group{padding:1.25rem}.technology-group h3{color:var(--text);margin:0 0 1rem;font-size:1rem}.technology-list{flex-wrap:wrap;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.technology-list li{border:1px solid var(--border);color:var(--text-soft);background:#ffffff06;border-radius:999px;padding:.7rem 1rem}.portfolio-section-link{color:#c7bdff;margin-top:1.5rem;font-weight:700;display:inline-flex}.service-card{min-height:260px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition), background var(--transition);background:radial-gradient(circle at 100% 0,#7c5cff24,#0000 28%),#121a2be0;flex-direction:column;justify-content:space-between;padding:1.5rem;display:flex;position:relative;overflow:hidden}.service-card:before{content:"";pointer-events:none;background:linear-gradient(135deg,#ffffff0a,#0000 35%);position:absolute;inset:0}.service-card:after{content:"";opacity:0;height:1px;transition:opacity var(--transition);background:linear-gradient(90deg,#0000,#7c5cff73,#0000);position:absolute;bottom:0;left:1.5rem;right:1.5rem}.service-card:hover{border-color:#7c5cff38;box-shadow:0 18px 38px #0000004d}.service-card:hover:after{opacity:1}.service-card-tag{width:fit-content;color:var(--text);background:#ffffff0a;border:1px solid #ffffff14;border-radius:999px;align-items:center;padding:.35rem .7rem;font-size:.78rem;font-weight:600;display:inline-flex}.service-card h3{letter-spacing:-.02em;margin:1.25rem 0 .75rem;font-size:1.35rem;line-height:1.2}.service-card p{color:var(--text-soft);max-width:34ch;margin:0;line-height:1.75}.service-card-footer{color:var(--text);justify-content:space-between;align-items:center;margin-top:2rem;font-weight:600;display:flex}.service-card-arrow{opacity:.85;transition:transform var(--transition);font-size:1.1rem}.service-card:hover .service-card-arrow,.portfolio-card:hover .service-card-arrow{transform:translate(4px)}.portfolio-card{transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);background:#121a2be6;padding:0;overflow:hidden}.portfolio-card:hover{border-color:#7c5cff38;box-shadow:0 18px 38px #0000004d}.portfolio-card-visual{padding:1.25rem 1.25rem 0}.portfolio-card-screen{min-height:220px;color:var(--text-soft);text-align:center;background:radial-gradient(circle at 0 0,#7c5cff2e,#0000 32%),linear-gradient(#ffffff08,#ffffff03),#0f1728;border:1px solid #ffffff14;border-radius:16px;justify-content:center;align-items:center;padding:1rem;display:flex}.portfolio-card-content{padding:1.5rem}.portfolio-card-tag{width:fit-content;color:var(--text);background:#7c5cff1f;border:1px solid #7c5cff33;border-radius:999px;align-items:center;padding:.35rem .7rem;font-size:.78rem;font-weight:600;display:inline-flex}.portfolio-card h3{letter-spacing:-.02em;margin:1rem 0 .75rem;font-size:1.35rem;line-height:1.2}.portfolio-card p{color:var(--text-soft);margin:0;line-height:1.75}.portfolio-card-meta{color:var(--text);justify-content:space-between;align-items:center;margin-top:1.5rem;font-weight:600;display:flex}@media (width<=960px){.hero-layout,.services-grid,.portfolio-grid,.technology-groups{grid-template-columns:1fr}.hero-floating-top,.hero-floating-bottom{width:100%;min-width:0;position:static}.hero-dashboard-grid{flex-direction:column;align-items:stretch;gap:1rem}.hero-panel{width:100%}}@media (width<=720px){.page-section{padding:4rem 0}.hero-section{padding-top:4rem}.hero-visual{min-height:280px}.hero-content h1{max-width:100%}.portfolio-card-screen{min-height:180px}}.service-card-link{flex-direction:column;flex:1;justify-content:space-between;min-height:100%;display:flex}.service-card:focus-within{border-color:#7c5cff6b;box-shadow:0 0 0 1px #7c5cff33,0 18px 38px #0000004d}.services-hero-section{padding-top:6rem}.services-hero-layout{grid-template-columns:1fr;gap:2rem;display:grid}.services-hero-content{max-width:760px}.services-hero-content h1{letter-spacing:-.04em;max-width:12ch;margin:1rem 0;font-size:clamp(2.6rem,5vw,4.4rem);line-height:1.03}.services-hero-content p{max-width:60ch;color:var(--text-soft);margin:0;font-size:1.08rem;line-height:1.75}.service-list-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detailed-service-card{min-height:360px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition), background var(--transition);background:radial-gradient(circle at 100% 0,#7c5cff24,#0000 28%),#121a2be0;flex-direction:column;padding:1.6rem;display:flex;position:relative;overflow:hidden}.detailed-service-card:hover{border-color:#7c5cff38;box-shadow:0 18px 38px #0000004d}.detailed-service-card h3{letter-spacing:-.02em;margin:1.2rem 0 .75rem;font-size:1.35rem;line-height:1.2}.detailed-service-card p{color:var(--text-soft);margin:0;line-height:1.75}.service-feature-list{gap:.8rem;margin:1.5rem 0 0;padding:0;list-style:none;display:grid}.service-feature-list li{color:var(--text);padding-left:1.2rem;line-height:1.6;position:relative}.service-feature-list li:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:.65rem;left:0}.process-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.process-card{min-height:240px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);padding:1.6rem}.process-card:hover{border-color:#7c5cff33;box-shadow:0 14px 34px #00000047}.process-step{background:var(--accent-soft);min-width:42px;min-height:42px;color:var(--text);border:1px solid #7c5cff38;border-radius:999px;justify-content:center;align-items:center;margin-bottom:1.2rem;font-weight:700;display:inline-flex}.process-card h3{letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.2rem}.process-card p{color:var(--text-soft);margin:0;line-height:1.75}.service-detail-hero-section{padding-top:6rem}.service-detail-hero-layout{display:grid}.service-detail-hero-content{max-width:820px}.service-detail-hero-content h1{letter-spacing:-.04em;max-width:14ch;margin:1rem 0;font-size:clamp(2.6rem,5vw,4.4rem);line-height:1.03}.service-detail-hero-content p{max-width:62ch;color:var(--text-soft);margin:0;font-size:1.08rem;line-height:1.75}.service-detail-hero-content .hero-actions{margin-top:2rem}.service-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-scope-card,.service-process-card{padding:1.5rem}.service-scope-card h3,.service-process-card h3{letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.2rem}.service-scope-card p,.service-process-card p,.service-proof-card p{color:var(--text-soft);margin:0;line-height:1.7}.service-process-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.service-process-card{min-height:260px}.service-technology-list{flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.service-technology-list li{border:1px solid var(--border);color:var(--text);background:#ffffff09;border-radius:999px;padding:.65rem .9rem;font-weight:600}.service-proof-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.service-proof-grid>div{min-width:0;height:100%}.service-proof-card{flex-direction:column;min-height:100%;padding:1.5rem;display:flex}.service-proof-card>span{color:#c7bdff;font-size:.82rem;font-weight:700}.service-proof-card h3{margin:1rem 0 .75rem;font-size:1.25rem;line-height:1.25}.service-proof-card strong{color:#c7bdff;margin-top:auto;padding-top:1.5rem}.service-proof-card:focus-visible{outline-offset:5px}@media (width<=960px){.service-list-grid,.process-grid,.service-process-grid,.service-proof-grid{grid-template-columns:1fr}}@media (width<=720px){.services-hero-section,.service-detail-hero-section{padding-top:4rem}.services-hero-content h1,.service-detail-hero-content h1{max-width:100%}.service-scope-grid{grid-template-columns:1fr}}.estimate-hero-section{padding-top:3.5rem;padding-bottom:2rem}.estimate-hero{max-width:900px}.estimate-hero h1{letter-spacing:-.035em;max-width:16ch;margin:.9rem 0;font-size:clamp(2.2rem,4.5vw,3.6rem);line-height:1.06}.estimate-hero p{max-width:60ch;color:var(--text-soft);margin:0;font-size:1.02rem;line-height:1.7}.estimate-layout{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:start;gap:1.5rem;display:grid}.estimate-builder,.estimate-summary{padding:1.6rem}.estimate-builder{gap:1.5rem;display:grid}.estimate-step{border-bottom:1px solid var(--border);padding-bottom:1.5rem}.estimate-step:last-child{border-bottom:0;padding-bottom:0}.estimate-step-header{gap:1rem;margin-bottom:1.2rem;display:flex}.estimate-step-number{background:var(--accent-soft);border:1px solid #7c5cff38;border-radius:999px;justify-content:center;align-items:center;min-width:42px;height:42px;font-weight:700;display:inline-flex}.estimate-step-header h2{margin:0 0 .35rem;font-size:1.2rem}.estimate-step-header p{color:var(--text-soft);margin:0;line-height:1.6}.estimate-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.estimate-choice-card{text-align:left;border:1px solid var(--border);color:var(--text);transition:all var(--transition);background:#ffffff05;border-radius:18px;padding:1.1rem}.estimate-choice-card:hover{background:#ffffff0a;border-color:#7c5cff3d}.estimate-choice-card.is-selected{background:#7c5cff14;border-color:#7c5cff59;box-shadow:0 10px 26px #7c5cff24}.estimate-choice-title{margin-bottom:.45rem;font-weight:700;display:block}.estimate-choice-text{color:var(--text-soft);line-height:1.6;display:block}.estimate-option-grid{flex-wrap:wrap;gap:.8rem;display:flex}.estimate-option-pill{border:1px solid var(--border);color:var(--text);transition:all var(--transition);background:#ffffff08;border-radius:999px;padding:.75rem 1rem}.estimate-option-pill:hover{background:#ffffff0f}.estimate-option-pill.is-selected{background:#7c5cff1f;border-color:#7c5cff47}.estimate-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.estimate-field{flex-direction:column;gap:.5rem;display:flex}.estimate-field-full{grid-column:1/-1}.estimate-summary{position:sticky;top:110px}.estimate-summary-badge{background:var(--accent-soft);border:1px solid #7c5cff33;border-radius:999px;margin-bottom:1rem;padding:.35rem .7rem;font-size:.82rem;font-weight:600;display:inline-flex}.estimate-summary h2{margin:0 0 .65rem;font-size:1.5rem}.estimate-summary p{color:var(--text-soft);margin:0;line-height:1.7}.estimate-summary-block{margin-top:1.4rem}.estimate-summary-label{color:var(--text-soft);margin-bottom:.45rem;font-size:.9rem;display:block}.estimate-summary-tags{flex-wrap:wrap;gap:.55rem;display:flex}.estimate-tag{border:1px solid var(--border);background:#ffffff0a;border-radius:999px;padding:.45rem .7rem;font-size:.88rem;display:inline-flex}.estimate-summary-empty{color:var(--text-soft)}.estimate-price-box{background:radial-gradient(circle at 100% 0,#7c5cff29,#0000 35%),#ffffff08;border:1px solid #7c5cff2e;border-radius:18px;margin-top:1.6rem;padding:1.2rem}.estimate-price-box span{color:var(--text-soft);margin-bottom:.45rem;display:block}.estimate-price-box strong{font-size:1.6rem;line-height:1.2}.estimate-submit{width:100%;margin-top:1.5rem}.estimate-submit:disabled{cursor:wait;opacity:.72}.estimate-status{border:1px solid var(--border);color:var(--text-soft);border-radius:12px;margin-top:1rem;padding:.85rem 1rem;line-height:1.55}.estimate-status.is-success{color:#b8f5d8;background:#47c48d14;border-color:#47c48d47}.estimate-status.is-validation,.estimate-status.is-rateLimited,.estimate-status.is-error{color:#ffd0cd;background:#ff787312;border-color:#ff787340}@media (width<=960px){.estimate-layout,.estimate-choice-grid,.estimate-form-grid{grid-template-columns:1fr}.estimate-summary{position:static}}@media (width<=720px){.estimate-hero-section{padding-top:2.5rem;padding-bottom:1.5rem}.estimate-hero h1{max-width:100%}}.portfolio-hero-section{padding-top:6rem}.portfolio-hero-layout{justify-content:center;display:flex}.portfolio-hero-content{text-align:center;width:100%;max-width:920px}.portfolio-hero-content h1{letter-spacing:-.04em;text-align:center;max-width:16ch;margin:1rem auto;font-size:clamp(2.6rem,5vw,4.4rem);line-height:1.05}.portfolio-hero-content p{max-width:60ch;color:var(--text-soft);text-align:center;margin:0 auto;font-size:1.08rem;line-height:1.75}.featured-projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.featured-project-card{height:100%;min-height:340px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);background:radial-gradient(circle at 100% 0,#7c5cff1f,#0000 30%),#121a2be6;flex-direction:column;justify-content:space-between;padding:1.6rem;display:flex}.featured-project-card:hover{border-color:#7c5cff38;box-shadow:0 18px 38px #0000004d}.project-card-link{color:inherit}.project-card-link:focus-visible{border-radius:var(--radius-md)}.featured-project-top{justify-content:space-between;align-items:center;gap:1rem;display:flex}.project-type-tag{width:fit-content;color:var(--text);background:#ffffff0a;border:1px solid #ffffff14;border-radius:999px;align-items:center;padding:.35rem .7rem;font-size:.78rem;font-weight:600;display:inline-flex}.project-year{color:var(--text-soft);font-size:.9rem}.featured-project-body h3{letter-spacing:-.025em;margin:1.2rem 0 .75rem;font-size:1.5rem;line-height:1.2}.featured-project-body p{color:var(--text-soft);max-width:42ch;margin:0;line-height:1.75}.project-meta-list{flex-wrap:wrap;gap:.6rem;margin-top:1.5rem;display:flex}.project-meta-list span{border:1px solid var(--border);color:var(--text);background:#ffffff0a;border-radius:999px;padding:.45rem .7rem;font-size:.88rem;display:inline-flex}.project-card-cta{color:#c7bdff;align-items:center;gap:.5rem;margin-top:1.5rem;font-weight:700;display:inline-flex}.portfolio-secondary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.secondary-project-card{min-height:260px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);background:linear-gradient(#ffffff05,#ffffff03),#121a2be0;flex-direction:column;padding:1.5rem;display:flex}.secondary-project-card:hover{border-color:#7c5cff38;box-shadow:0 16px 30px #00000047}.secondary-project-card h3{letter-spacing:-.02em;margin:1rem 0 .75rem;font-size:1.25rem;line-height:1.2}.secondary-project-card p{color:var(--text-soft);margin:0;line-height:1.7}.secondary-project-footer{color:var(--text);justify-content:space-between;align-items:center;margin-top:auto;padding-top:1.4rem;font-weight:600;display:flex}.secondary-project-arrow{opacity:.85;transition:transform var(--transition);font-size:1.05rem}.secondary-project-card:hover .secondary-project-arrow{transform:translate(4px)}@media (width<=720px){.portfolio-hero-section{padding-top:4rem}.portfolio-hero-content h1{max-width:100%}}@media (width<=960px){.featured-projects-grid,.portfolio-secondary-grid{grid-template-columns:1fr}}.portfolio-hero-content .badge{margin-inline:auto}.contact-hero-section{padding-top:6rem}.contact-hero-layout{justify-content:center;display:flex}.contact-hero-content{text-align:center;max-width:820px}.contact-hero-content h1{max-width:16ch;margin:1rem auto;font-size:clamp(2.4rem,5vw,4rem);line-height:1.05}.contact-hero-content p{max-width:60ch;color:var(--text-soft);margin:0 auto}.contact-layout{grid-template-columns:.9fr 1.1fr;gap:2rem;display:grid}.contact-info h2{margin-bottom:1rem}.contact-info p{color:var(--text-soft);line-height:1.7}.contact-info-list{flex-direction:column;gap:1.2rem;margin-top:2rem;display:flex}.contact-info-list span{color:var(--text-soft);font-size:.85rem;display:block}.contact-info-list strong{font-size:1rem}.contact-form{flex-direction:column;gap:1.2rem;padding:1.8rem;display:flex}.contact-submit{width:100%;margin-top:1rem}.contact-submit:disabled{cursor:wait;opacity:.72}.contact-form-status{border:1px solid var(--border);color:var(--text-soft);border-radius:12px;padding:.85rem 1rem;line-height:1.55}.contact-form-status.is-success{color:#b8f5d8;background:#47c48d14;border-color:#47c48d47}.contact-form-status.is-validation,.contact-form-status.is-rateLimited,.contact-form-status.is-error{color:#ffd0cd;background:#ff787312;border-color:#ff787340}.contact-links{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.contact-link{border:1px solid var(--border);color:var(--text-soft);transition:color var(--transition), border-color var(--transition), background var(--transition);border-radius:999px;padding:.55rem .85rem}.contact-link:hover{color:var(--text);background:var(--accent-soft);border-color:#7c5cff4d}.contact-honeypot,.form-honeypot{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=960px){.contact-layout{grid-template-columns:1fr}}@media (width<=720px){.contact-hero-section{padding-top:4rem}.contact-hero-content h1{max-width:100%}}.about-profile-section{padding-top:6rem}.about-profile-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:center;gap:clamp(2rem,6vw,5rem);display:grid}.about-profile-content{max-width:760px}.about-profile-content h1{letter-spacing:-.04em;max-width:16ch;margin:1rem 0;font-size:clamp(2.6rem,5vw,4.4rem);line-height:1.03}.about-profile-content p{max-width:68ch;color:var(--text-soft);margin:0;font-size:1.08rem;line-height:1.8}.about-portrait-card{background:radial-gradient(circle at 100% 0,#7c5cff33,#0000 38%),#121a2beb;width:min(100%,340px);margin:0;padding:.8rem;position:relative;overflow:hidden}.about-portrait-card:before{content:"";filter:blur(48px);pointer-events:none;background:#7c5cff29;height:55%;position:absolute;inset:12% -12% auto}.about-portrait-frame{aspect-ratio:4/5;border-radius:calc(var(--radius-md) - 6px);background:var(--surface-2);border:1px solid #ffffff17;position:relative;overflow:hidden}.about-portrait-frame img{object-fit:cover;object-position:50% 44%;width:100%;height:100%}.about-portrait-card figcaption{gap:.25rem;padding:1rem .35rem .35rem;display:grid;position:relative}.about-portrait-card figcaption strong{font-size:1.03rem}.about-portrait-card figcaption span{color:var(--text-soft);font-size:.9rem}.about-build-section{padding-top:3rem}.about-build-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about-build-card{min-height:210px;padding:1.5rem}.about-build-card h3{margin:0 0 .75rem;font-size:1.2rem}.about-build-card p{color:var(--text-soft);margin:0;line-height:1.75}.about-intro-grid{grid-template-columns:.9fr 1.1fr;align-items:start;gap:2rem;display:grid}.about-section-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem;font-size:.82rem;display:inline-flex}.about-intro-heading h2{letter-spacing:-.03em;margin:0;font-size:clamp(2rem,3.5vw,3rem);line-height:1.08}.about-intro-content{gap:1rem;display:grid}.about-intro-content p{color:var(--text-soft);margin:0;font-size:1.03rem;line-height:1.85}.about-pillars-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about-pillar-card{min-height:260px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);background:radial-gradient(circle at 100% 0,#7c5cff1f,#0000 30%),#121a2be6;padding:1.6rem}.about-pillar-card:hover{border-color:#7c5cff38;box-shadow:0 16px 30px #00000047}.about-pillar-index{color:var(--text-soft);letter-spacing:.08em;margin-bottom:1.2rem;font-size:.85rem;display:inline-flex}.about-pillar-card h3{letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.3rem}.about-pillar-card p{color:var(--text-soft);margin:0;line-height:1.75}.about-timeline{gap:1.5rem;display:grid}.about-timeline-item{grid-template-columns:minmax(120px,150px) 40px minmax(0,1fr);align-items:start;gap:1rem;display:grid}.about-timeline-date{color:var(--text-soft);padding-top:.25rem;font-size:.92rem;font-weight:600}.about-timeline-rail{justify-content:center;min-height:100%;display:flex;position:relative}.about-timeline-rail:before{content:"";background:#ffffff14;width:1px;position:absolute;top:-1.5rem;bottom:-1.5rem}.about-timeline-item:first-child .about-timeline-rail:before{top:.45rem}.about-timeline-item:last-child .about-timeline-rail:before{bottom:calc(100% - .45rem)}.about-timeline-marker{z-index:1;background:var(--accent);border-radius:50%;width:14px;height:14px;margin-top:.35rem;position:relative;box-shadow:0 0 0 6px #7c5cff1f}.about-timeline-content{padding:1.35rem 1.4rem}.about-timeline-item.is-current .about-timeline-date{color:#c7bdff}.about-timeline-item.is-current .about-timeline-marker{box-shadow:0 0 0 6px #7c5cff29,0 0 20px #7c5cff52}.about-timeline-item.is-current .about-timeline-content{background:radial-gradient(circle at 100% 0,#7c5cff21,#0000 32%),#121a2be6;border-color:#7c5cff47}.about-timeline-current{color:#d8d1ff;background:#7c5cff1a;border:1px solid #7c5cff38;border-radius:999px;width:fit-content;margin-bottom:.8rem;padding:.3rem .65rem;font-size:.76rem;font-weight:600;display:inline-flex}.about-timeline-content h3{letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.15rem}.about-timeline-subtitle{color:var(--text-soft);margin-bottom:.85rem;font-size:.92rem;display:inline-block}.about-timeline-content p{color:var(--text-soft);margin:0;line-height:1.75}.about-background-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about-background-card{min-height:250px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);padding:1.5rem}.about-background-card:hover{border-color:#7c5cff38;box-shadow:0 16px 30px #00000047}.about-background-card h3{letter-spacing:-.02em;margin:1rem 0 .75rem;font-size:1.2rem}.about-background-card p{color:var(--text-soft);margin:0;line-height:1.7}.about-manifesto{background:radial-gradient(circle at 100% 0,#7c5cff1f,#0000 32%),#121a2be6;max-width:920px;margin:0 auto;padding:2rem}.about-manifesto-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem;font-size:.82rem;display:inline-flex}.about-manifesto p{color:var(--text);margin:0;font-size:clamp(1.2rem,2vw,1.7rem);line-height:1.7}@media (width<=960px){.about-profile-layout,.about-intro-grid,.about-pillars-grid,.about-build-grid,.about-background-grid{grid-template-columns:1fr}.about-portrait-card{justify-self:start;width:min(100%,320px)}}.about-timeline-content .about-timeline-mission{border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text);background:#7c5cff12;border-left:2px solid #7c5cffb3;margin-top:1rem;padding:.9rem 1rem}@media (width<=720px){.about-profile-section{padding-top:4rem}.about-profile-content h1{max-width:100%}.about-portrait-card{width:min(82vw,300px)}.about-timeline-item{grid-template-columns:24px minmax(0,1fr);gap:1rem}.about-timeline-date{grid-column:2;margin-bottom:.25rem;padding-top:0}.about-timeline-rail{grid-area:1/1/span 2}.about-timeline-rail:before{top:0;bottom:-1.5rem}.about-timeline-item:last-child .about-timeline-rail:before{bottom:calc(100% - .45rem)}.about-timeline-marker{margin-top:.4rem}.about-timeline-content{grid-column:2}}.case-study-hero{padding-top:6rem}.case-study-hero-inner{max-width:var(--container-reading)}.case-study-back{color:var(--text-soft);margin-bottom:2rem;display:inline-flex}.case-study-back:hover{color:var(--text)}.case-study-hero h1{letter-spacing:-.04em;max-width:17ch;margin:1rem 0;font-size:clamp(2.6rem,6vw,5rem);line-height:1.02}.case-study-hero p{max-width:65ch;color:var(--text-soft);font-size:1.12rem;line-height:1.75}.case-study-meta{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.case-study-meta span{border:1px solid var(--border);color:var(--text-soft);background:#ffffff06;border-radius:999px;padding:.55rem .8rem}.case-study-content{grid-template-columns:minmax(0, var(--container-reading)) minmax(280px, 340px);justify-content:space-between;align-items:start;gap:clamp(2rem,5vw,5rem);display:grid}.case-study-sections{gap:1rem;display:grid}.case-study-section{border-bottom:1px solid var(--border);padding:1.6rem}.case-study-section h2{margin-bottom:.7rem;font-size:1.35rem}.case-study-section p{max-width:72ch;color:var(--text-soft);margin:0;line-height:1.75}.case-study-visual-content{margin-top:clamp(3rem,6vw,6rem)}.case-study-visual-content>.case-study-section{padding-inline:0}.case-study-public-link{background:linear-gradient(90deg, var(--accent), #8f67ff);width:100%;margin:1.75rem 0 0}.case-study-public-link:hover{background:linear-gradient(90deg, var(--accent-hover), #8059f7)}.case-study-summary{gap:.55rem;padding:1.5rem;display:grid;position:sticky;top:108px}.case-study-summary>span{color:var(--text-soft);margin-top:.7rem;font-size:.85rem}.case-study-summary-stack{flex-wrap:wrap;gap:.5rem;display:flex}.case-study-summary-stack strong,.case-study-technologies span{border:1px solid var(--border);border-radius:999px;padding:.45rem .7rem;font-size:.86rem}.case-study-label{color:#a99aff;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.45rem;font-size:.82rem;font-weight:700;display:block}.case-study-technologies{flex-wrap:wrap;gap:.55rem;display:flex}.dtnum-deep-dive{gap:clamp(4rem,8vw,7rem);margin-top:clamp(4rem,8vw,7rem);display:grid}.dtnum-deep-section{min-width:0}.dtnum-deep-heading{max-width:var(--container-reading);margin-bottom:clamp(1.5rem,3vw,2.5rem)}.dtnum-deep-heading h2{letter-spacing:-.035em;margin-bottom:.8rem;font-size:clamp(2rem,4vw,3.2rem);line-height:1.08}.dtnum-deep-heading p,.dtnum-learning-card p,.dtnum-exploration p,.dtnum-progression p{color:var(--text-soft);margin:0;line-height:1.72}.dtnum-learning-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);display:grid}.dtnum-learning-card{min-height:240px;transition:transform var(--transition), border-color var(--transition), background var(--transition);padding:clamp(1.35rem,2.5vw,2rem)}.dtnum-learning-card:hover{background:#121a2bf0;border-color:#7c5cff47;transform:translateY(-3px)}.dtnum-learning-card h3,.dtnum-exploration h3,.dtnum-progression h3{margin-bottom:.65rem;font-size:1.18rem}.dtnum-symfony-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:radial-gradient(circle at 88% 10%,#7c5cff29,#0000 32%),#121a2bad;padding:clamp(1.5rem,4vw,3.5rem);overflow:hidden}.dtnum-symfony-skills{flex-wrap:wrap;gap:.7rem;display:flex}.dtnum-symfony-skills span{border-radius:var(--radius-sm);color:var(--text);background:#7c5cff14;border:1px solid #7c5cff33;padding:.7rem .95rem;font-size:.92rem;font-weight:600}.dtnum-exploration{border-radius:var(--radius-md);background:#080d1794;border:1px solid #a99aff47;grid-template-columns:minmax(150px,.35fr) minmax(0,1fr);gap:clamp(1rem,3vw,3rem);margin-top:clamp(2rem,4vw,3.5rem);padding:clamp(1.25rem,3vw,2rem);display:grid}.dtnum-exploration>span{color:#c7bdff;letter-spacing:.04em;text-transform:uppercase;background:#7c5cff1a;border:1px solid #a99aff40;border-radius:999px;width:fit-content;height:fit-content;padding:.45rem .7rem;font-size:.76rem;font-weight:700}.dtnum-workflow{scrollbar-width:thin;grid-template-columns:repeat(7,minmax(110px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid;overflow-x:auto}.dtnum-workflow li{border:1px solid var(--border);border-radius:var(--radius-sm);min-height:86px;color:var(--text);text-align:center;background:#121a2bb8;place-items:center;padding:1rem;font-size:.84rem;font-weight:650;display:grid;position:relative}.dtnum-workflow li:not(:last-child):after{content:"→";z-index:1;color:#a99aff;position:absolute;right:-.75rem;transform:translate(50%)}.dtnum-workflow-note{color:var(--text-soft);margin:1rem 0 0;font-size:.82rem;font-style:italic}.dtnum-progression{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);margin:0;padding:0;list-style:none;display:grid}.dtnum-progression li{padding:clamp(1.4rem,3vw,2.2rem);position:relative;overflow:hidden}.dtnum-progression li:before{content:"";background:linear-gradient(90deg, var(--accent), transparent);width:100%;height:3px;position:absolute;top:0;left:0}.dtnum-progression-index{float:right;color:#a99aff4d;font-size:2.4rem;font-weight:750;line-height:1}.dtnum-progression-label{color:#a99aff;letter-spacing:.09em;text-transform:uppercase;margin-bottom:1.25rem;font-size:.75rem;font-weight:700;display:block}.project-gallery,.project-comparison{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(1rem,2vw,2rem);display:grid}.project-gallery-item{margin:0}.project-gallery-item.is-featured,.project-gallery-item:only-child{grid-column:1/-1}.project-gallery-link{border-radius:var(--radius-md);display:block}.project-gallery-link img{border-radius:var(--radius-md);border:1px solid var(--border);width:100%;height:auto}.project-gallery-item.mobile{max-width:280px}.project-gallery-preview{border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:inherit;cursor:zoom-in;background:#121a2be6;padding:0;display:block;overflow:hidden;box-shadow:0 16px 32px #0003}.project-gallery-preview:hover{border-color:#7c5cff6b}.project-gallery-preview-frame{aspect-ratio:4/3;display:block;position:relative;overflow:hidden}.desktop-capture.is-featured .project-gallery-preview-frame{aspect-ratio:16/9}.project-gallery-preview img{object-fit:cover;object-position:top center;width:100%;height:100%;transition:transform .3s;display:block}.project-gallery-preview:hover img{transform:scale(1.012)}.project-gallery-expand-hint{color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0b0f19db;border:1px solid #ffffff1f;border-radius:999px;padding:.45rem .7rem;font-size:.76rem;font-weight:700;position:absolute;bottom:.85rem;right:.85rem}.project-gallery-caption{gap:.35rem;margin-top:.85rem;display:grid}.project-gallery-caption strong{color:var(--text);font-size:1rem}.project-gallery-caption span{color:var(--text-soft);font-size:.9rem;line-height:1.6}.project-gallery-badge{color:#c7bdff;letter-spacing:.03em;background:#7c5cff1a;border:1px solid #7c5cff4d;border-radius:999px;width:fit-content;margin-bottom:.75rem;padding:.4rem .7rem;font-size:.76rem;font-weight:700;display:inline-flex}.desktop-capture.is-backoffice{border-radius:var(--radius-lg);background:radial-gradient(circle at 100% 0,#7c5cff1f,#0000 34%),#121a2bb8;border:1px solid #7c5cff33;padding:1rem}.mobile-device-capture{flex-direction:column;align-items:center;display:flex}.mobile-device-capture .project-gallery-caption{align-self:stretch;width:100%;margin:0 0 .85rem}.project-phone{background:linear-gradient(145deg,#171d2b,#080b12);border:1px solid #ffffff1f;border-radius:34px;width:min(100%,292px);padding:20px 10px 10px;position:relative;box-shadow:0 22px 44px #0000005c,0 0 28px #7c5cff14}.project-phone-speaker{background:#fff3;border-radius:999px;width:44px;height:4px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.project-phone-screen{scrollbar-width:thin;scrollbar-color:#7c5cff8c transparent;touch-action:pan-y;background:#fff;border:1px solid #ffffff14;border-radius:23px;width:100%;overflow:hidden auto}.project-phone-screen img{width:100%;height:auto;display:block}.project-phone-instruction{max-width:30ch;color:var(--text-soft);text-align:center;margin-top:.75rem;line-height:1.5}.project-lightbox-backdrop{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#04070de6;place-items:center;padding:clamp(.75rem,3vw,2rem);display:grid;position:fixed;inset:0}.project-lightbox{width:min(var(--container-wide), 100%);border-radius:var(--radius-lg);background:#0d1320;border:1px solid #7c5cff4d;grid-template-rows:auto minmax(0,1fr);height:min(92vh,900px);display:grid;overflow:hidden;box-shadow:0 30px 80px #00000094}.project-lightbox-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem .9rem 1.25rem;display:flex}.project-lightbox-header h2{margin:0;font-size:clamp(1rem,2vw,1.25rem)}.project-lightbox-close{border:1px solid var(--border);width:42px;height:42px;color:var(--text);cursor:pointer;background:#ffffff0a;border-radius:50%;flex:none;font-size:1.6rem;line-height:1}.project-lightbox-close:hover{background:#7c5cff1f;border-color:#7c5cff73}.project-lightbox-viewport{background:#f7f4ef;min-width:0;overflow:auto}.project-lightbox-viewport img{width:100%;height:auto;display:block}.project-lightbox.is-contain{height:auto;max-height:92vh}.project-lightbox.is-contain .project-lightbox-viewport{background:#090e18;place-items:center;display:grid;overflow:hidden}.project-lightbox.is-contain .project-lightbox-viewport img{object-fit:contain;width:auto;max-width:100%;max-height:calc(92vh - 68px)}.project-gallery-item.is-placeholder{min-height:220px}.project-gallery-placeholder{width:100%;height:100%;min-height:inherit;border-radius:var(--radius-md);color:var(--text);text-align:center;background:radial-gradient(circle,#7c5cff1a,#0000 52%),#ffffff05;border:1px dashed #7c5cff4d;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;padding:1.5rem;display:flex}.project-gallery-placeholder small,.project-gallery-item figcaption{color:var(--text-soft)}.project-gallery-item figcaption{margin-top:.65rem;font-size:.9rem}.desktop-capture.is-backoffice .project-gallery-caption span{white-space:pre-line}.project-comparison{margin-top:1rem}.project-comparison>div>strong{margin-bottom:.65rem;display:block}@media (width<=800px){.case-study-hero{padding-top:4rem}.case-study-content,.project-gallery,.project-comparison{grid-template-columns:1fr}.project-gallery-item.mobile{max-width:min(100%,260px)}.project-gallery-item.is-featured{grid-column:auto}.desktop-capture.is-featured .project-gallery-preview-frame,.project-gallery-preview-frame{aspect-ratio:4/3}.project-phone{width:min(100%,280px)}.project-lightbox-backdrop{padding:.5rem}.project-lightbox{border-radius:var(--radius-md);height:calc(100dvh - 1rem)}.project-lightbox.is-contain{height:auto;max-height:calc(100dvh - 1rem)}.project-lightbox.is-contain .project-lightbox-viewport img{max-height:calc(100dvh - 5.5rem)}.case-study-summary{position:static}.dtnum-learning-grid,.dtnum-progression,.dtnum-exploration{grid-template-columns:1fr}.dtnum-learning-card{min-height:0}.dtnum-workflow{grid-template-columns:1fr;overflow:visible}.dtnum-workflow li{min-height:64px}.dtnum-workflow li:not(:last-child):after{bottom:-.85rem;right:50%;transform:translate(50%,50%)rotate(90deg)}}.privacy-page{padding-top:1rem}.privacy-content{gap:0;display:grid}.privacy-section{border-bottom:1px solid var(--border);padding:2rem 0}.privacy-section.card{border-bottom:1px solid var(--border);margin-bottom:.5rem;padding:1.75rem}.privacy-section h2{margin-bottom:.8rem;font-size:clamp(1.2rem,2vw,1.5rem)}.privacy-section p{max-width:72ch;color:var(--text-soft);line-height:1.75}.privacy-section a,.privacy-updated{color:#c7bdff}.privacy-section a:hover{color:var(--text)}.privacy-updated{margin-top:2rem;font-size:.9rem}
