/* Sabban&Co · opaque, immersive worlds. The reading surface stays still. */
html:root body.service-page[class] { background:#101116; color:#d8d9e0; }
html:root body.service-page[class] :is(.site-header,.site-footer,.related) { background:#101116; color:#d8d9e0; border-color:#ffffff24; }
html:root body.service-page[class] .site-header img { filter:brightness(0) invert(1); opacity:.88; }
html:root body.service-page[class] main > :is(h1,h2) { color:#eeeef4; }
html:root body.service-page[class] :is(.service-section,.service-sections) { border-color:#ffffff24; }
html:root body.service-page[class] .service-section h2 { color:#ddd6ee; }
html:root .project-dialog[class] { --project-ink:#eee9f4; --project-muted:#b1a9bb; --project-line:#ffffff25; }
html:root .project-dialog :is(.project-window,.project-window-header,.project-window-foot) { background:#111018; color:#eee9f4; border-color:#ffffff20; }
html:root .project-dialog[data-current-project=website] :is(.project-window,.project-window-header,.project-window-foot) { background:#000; }
html:root .project-dialog[data-current-project=lerosa] :is(.project-window,.project-window-header,.project-window-foot) { background:#090913; }
html:root .project-dialog[data-current-project=rebranding] :is(.project-window,.project-window-header,.project-window-foot) { background:#081c1e; color:#e8f1e7; }
html:root .project-dialog[data-current-project=software] :is(.project-window,.project-window-header,.project-window-foot) { background:#081522; }
html:root .project-dialog:is([data-current-project=email],[data-current-project=invoices]) :is(.project-window,.project-window-header,.project-window-foot) { background:#0b2222; color:#e4f2ea; }
html .project-window-foot { display:grid; grid-template-columns:1fr auto 1fr; }
html .project-window-foot > :last-child { justify-self:end; }
html .photo-story-panel { background:#181a21; color:#c4c5cf; border-color:#ffffff25; backdrop-filter:none; -webkit-backdrop-filter:none; }
html .contact-drawer { background:#17191f; color:#d7d9e0; --ink:#d7d9e0; backdrop-filter:none; -webkit-backdrop-filter:none; border-color:#ffffff24; }
html .contact-drawer :is(input,textarea) { color:#e8e9ef; border-color:#ffffff35; }

/* BRANDING — saturated plum, ink and shifting identity specimens. */
html:root .showcase-content.branding-world { --sw-ink:#f3eaf7; --sw-muted:#c0adca; --sw-accent:#d0a2f2; --sw-line:#ffffff27; background:#120e1b; color:var(--sw-ink); }
html .branding-world :is(.bw-language,.bw-touchpoints,.bw-delivery) { background:#161020; }
html .branding-world .bw-art-direction { background:radial-gradient(ellipse at 90% 30%,#402342,transparent 70%),#1b1023; --sw-muted:#c7b2d2; }
html .branding-world .bw-positioning { background:#2b1239; --sw-accent:#daaef7; --sw-muted:#c6acd3; }
html .branding-world .bw-process { background:#15131f; }
html .branding-world .bw-closing { background:#271332; --sw-accent:#d4a7ed; }
html .branding-world :is(.bw-identity-card,.bw-specimen-logo,.bw-application-note) { background:#36213f; color:#f0dbf7; }
html .branding-world :is(.bw-identity-card,.bw-specimen-logo,.bw-application-note) img { filter:brightness(0) invert(1); opacity:.9; }
html .branding-world :is(.bw-identity-card,.bw-specimen-logo) > span { color:#c9b4d2; }
html .branding-world .bw-type-card { background:#ad89c9; color:#24132e; }
html .branding-world .bw-art-mark { filter:brightness(0) invert(1); }
html .branding-world .identity-lab { background:radial-gradient(ellipse at var(--polish-x,70%) var(--polish-y,45%),#42224b,transparent 65%),#140e21; }
.branding-world .bw-brand-stage.motion-visible .bw-identity-sheet { animation:brand-sheet-drift 7s ease-in-out infinite; }
.branding-world .bw-brand-stage.motion-visible .bw-type-card { animation:brand-type-drift 5s ease-in-out infinite; }
.identity-stage.motion-visible .identity-primary { animation:identity-breathe 8s ease-in-out infinite; }
.identity-stage.motion-visible .identity-specimen { animation:identity-breathe 6s -3s ease-in-out infinite reverse; }
.identity-stage.motion-visible .identity-swatches { animation:identity-breathe 7s -2s ease-in-out infinite; }
@keyframes brand-sheet-drift { 0%,100%{transform:rotate(7deg) translateZ(5px)}50%{transform:rotate(2deg) translate3d(-10px,-15px,25px)} }
@keyframes brand-type-drift { 0%,100%{transform:rotate(-5deg) translateZ(60px)}50%{transform:rotate(4deg) translate3d(9px,18px,90px)} }
@keyframes identity-breathe { 0%,100%{translate:0 0}50%{translate:0 -20px} }

/* REBRANDING — a living business system, with one short culinary analogy. */
html:root .showcase-content.rebranding-world { --sw-ink:#eaf2e9; --sw-muted:#afc7c3; --sw-accent:#d5e4a4; --sw-line:#d9f2de29; background:#091b1e; color:var(--sw-ink); }
html .rebranding-world .rw-hero { background:radial-gradient(ellipse at 85% 25%,#234a3f,transparent 65%),#081a1e; color:#eef3e9; --sw-muted:#b4c7c1; --sw-accent:#d5e4a4; }
html .rebranding-world .rw-hero-layout { grid-template-columns:1fr 1.08fr; gap:38px; padding:65px 0 70px; min-height:570px; }
html .rebranding-world .rw-hero-copy { max-width:none; }
html .rebranding-world .rw-hero-copy :is(h1,h2) { font-size:clamp(43px,5vw,69px); }
html .rebranding-world .rw-hero-copy > p { color:#b4c7c1; }
html .rebranding-world .rw-approach { background:#122e2f; --sw-accent:#d5e4a4; --sw-muted:#b6c9c3; }
html .rebranding-world .rw-audit-grid :is(span,p) { color:#b6c9c3; }
html .rebranding-world :is(.rw-dosage,.rw-evolutions) { background:#0d2427; }
html .rebranding-world .rw-change-spectrum > div { background:#122f31; border-color:#ffffff25; }
html .rebranding-world .rw-change-spectrum > div:nth-child(2) { background:#1b3b3a; }
html .rebranding-world .rw-change-spectrum > div:nth-child(3) { background:#24483e; }
html .rebranding-world .rw-change-spectrum p { color:#c0d1c9; }
html .rebranding-world .rw-method { background:#0c191e; --sw-accent:#d5e4a4; }
html .rebranding-world .rw-method-list :is(p,li>span) { color:#b6c9c3; }
html .rebranding-world .bw-closing { background:radial-gradient(ellipse at 85% 40%,#2b5645,transparent 70%),#102c2d; --sw-accent:#d5e4a4; }
html .rebranding-world .rw-patisserie { display:grid; grid-template-columns:1fr 1.2fr; align-items:stretch; background:#171a1c; }
html .rebranding-world .rw-patisserie-image > img { height:100%; aspect-ratio:auto; min-height:470px; object-fit:cover; object-position:70% center; opacity:.78; }
html .rebranding-world .rw-patisserie-caption { inset:28px 30px auto; }
html .rebranding-world .rw-patisserie-caption :is(h3,h2.gw-section-heading) { font-size:38px; }
html .rebranding-world .rw-recipe-copy { display:block; padding:45px 38px; }
html .rebranding-world .rw-recipe-quote { font-size:29px; margin-bottom:30px; }
html .rebranding-world .rw-recipe-copy p { font-size:15px; }
html .rebranding-world .recipe-lab { background:#091b1e; color:#eaf2e9; }
html .rebranding-world .recipe-console { background:radial-gradient(ellipse at 80% 25%,#29483c,transparent 70%),#091b1e; }
html .rebranding-world .recipe-console p:not(.sw-kicker) { color:#afc7c3; }
html .rebranding-world .recipe-scale { border-color:#c1deb23d; background:linear-gradient(135deg,#24443d,#102528); }
html .rebranding-world .recipe-scale :is(header>span,header small,output,footer) { color:#c5dbaa; }
html .rebranding-world .recipe-ingredient b { background:linear-gradient(90deg,#65a58d,#d5e4a4); }
html .rebranding-world .polish-tabs button[aria-pressed=true] { background:#d5e4a4; color:#15312e; border-color:#d5e4a4; }
.business-stage { position:relative; min-width:0; color:#eaf2e9; border:1px solid #abd5bd35; background:linear-gradient(135deg,#1b3a35,#0a1c22); box-shadow:0 35px 80px #0005; padding:22px; border-radius:8px; }
.business-stage-head { display:flex; justify-content:space-between; gap:20px; color:#b8cebe; font-size:10px; line-height:1.6; letter-spacing:.1em; }
.business-stage-head > :last-child { text-align:right; max-width:130px; }
.business-constellation { position:relative; height:390px; }
.business-connections { position:absolute; inset:0; width:100%; height:100%; fill:none; stroke:#b4d0a780; stroke-width:1; stroke-dasharray:8 15; }
.business-stage.motion-visible .business-connections { animation:business-flow 5s linear infinite; }
.business-core { position:absolute; inset:21% 22% 18%; border:1px solid #c8dfae30; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; background:radial-gradient(#7189554a,#1a3a3200 72%); }
.business-core > img { width:52%; max-height:150px; filter:brightness(0) invert(1); opacity:.85; }
.business-core > span { font-size:10px; text-align:center; letter-spacing:.13em; margin-top:20px; line-height:1.7; }
.business-node { position:absolute; z-index:1; padding:18px; border:1px solid #b8d8c044; background:#19332f; box-shadow:0 15px 30px #0004; transition:background .6s,border-color .6s,box-shadow .6s; }
.business-node small { display:block; font-size:10px; letter-spacing:.1em; color:#bad0bd; }
.business-node strong { display:block; font-size:22px; line-height:1.12; font-weight:300; margin:12px 0; letter-spacing:-.025em; }
.business-node > span { font-size:10px; color:#b0c7bb; }
.node-position { left:-8%; top:6%; rotate:-6deg; }
.node-identity { right:-7%; top:33%; rotate:5deg; }
.node-experience { left:2%; bottom:0; rotate:-3deg; }
.business-stage[data-business-step="0"] .node-position,.business-stage[data-business-step="1"] .node-identity,.business-stage[data-business-step="2"] .node-experience { background:#36553b; border-color:#d5e4a4; box-shadow:0 10px 45px #b2d77b20; }
.business-stage.motion-visible .business-node { animation:identity-breathe 6s ease-in-out infinite; }
.business-stage.motion-visible .node-identity { animation-delay:-2s; }.business-stage.motion-visible .node-experience { animation-delay:-4s; }
.business-stage-footer { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:28px; font-size:11px; min-height:44px; }
.business-phase-buttons { display:flex; gap:6px; }.business-phase-buttons button { font:inherit; color:#c6d9c4; border:1px solid #b5d6b438; background:#0b2523; width:36px; height:44px; cursor:pointer; border-radius:5px; }
.business-phase-buttons button[aria-pressed=true] { background:#d5e4a4; color:#142d27; }
.business-progress { height:2px; background:#ffffff12; margin-top:18px; overflow:hidden; }.business-progress i { display:block; height:100%; width:35%; background:#d5e4a4; }
.business-stage.motion-visible .business-progress i { animation:business-progress 4.2s ease-in-out infinite; }
@keyframes business-flow { to{stroke-dashoffset:-115} }@keyframes business-progress { from{translate:-110% 0}to{translate:390% 0} }
.rw-sector-tabs { display:flex; flex-wrap:wrap; gap:10px; margin-top:40px; }
.rw-sector-tabs button { background:#102d2e; border:1px solid #ffffff30; color:#d8e7dd; font:inherit; font-size:14px; padding:12px 18px; min-height:44px; cursor:pointer; border-radius:40px; transition:background .3s; }
.rw-sector-tabs button[aria-pressed=true] { background:#d5e4a4; color:#18362b; border-color:#d5e4a4; }
.rw-evolution-gallery .rw-example-grid { display:block; margin-top:35px; }
.rw-evolution-gallery .rw-example { border:1px solid #adccb538; padding:35px; background:#122d2e; animation:business-panel .4s ease both; }
.rw-evolution-gallery .rw-example[hidden] { display:none; }
.rw-evolution-gallery .rw-example-heading { color:#abc5b4; }.rw-evolution-gallery .rw-example :is(h4,h3.gw-detail-heading) { font-size:36px; max-width:700px; }
.rw-evolution-comparison { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.rw-evolution-gallery .rw-before,.rw-evolution-gallery .rw-after { padding:25px; margin:0; border:1px solid #ffffff1c; background:#102226; color:#b5c4c4; }
.rw-evolution-gallery .rw-after { background:#254637; color:#e3efd4; }
.rebranding-world .rw-example-purpose { color:#d5e4a4; }.rebranding-world .rw-example-note { color:#aac2bc; }
.business-signal { display:flex; align-items:center; height:55px; gap:8px; margin-top:25px; }.business-signal i { height:5px; flex:1; background:#809b95; }.business-signal.fragmented i:nth-child(2n) { translate:0 -15px; width:15%; flex:none; opacity:.4; }.business-signal.fragmented i:nth-child(3n) { translate:0 12px; }.business-signal.aligned i { background:#d5e4a4; transform-origin:left; animation:business-align 3s ease-in-out infinite; }.business-signal.aligned i:nth-child(2){animation-delay:.25s}.business-signal.aligned i:nth-child(3){animation-delay:.5s}.business-signal.aligned i:nth-child(4){animation-delay:.75s}.business-signal.aligned i:nth-child(5){animation-delay:1s}
@keyframes business-align { 0%,100%{scale:.75 1;opacity:.5}50%{scale:1 1;opacity:1} }@keyframes business-panel{from{opacity:.4;translate:0 8px}to{opacity:1;translate:0 0}}

/* APP — solid black, the three LEROSA colors and real foreground screens. */
html:root .showcase-content.lerosa-showcase { background:#090913; color:#edeaf4; }
html .lerosa-showcase .lerosa-hero { background:radial-gradient(ellipse at 100% 10%,#242038 0,transparent 58%),#090913; }
html .lerosa-showcase .experience-section { background-color:#090913; }
.lerosa-showcase .app-hero-visual.motion-visible .hero-phone { animation:lerosa-phone-drift 7s ease-in-out infinite; }
.lerosa-showcase .app-hero-visual.motion-visible .hero-watch { animation:identity-breathe 5.5s -2s ease-in-out infinite reverse; }
.lerosa-showcase .hero-pop { border-color:#b591e17a; box-shadow:0 18px 45px #0008,0 0 38px #b393f720; }
.lerosa-showcase .app-hero-tags > span { border-bottom:2px solid #6ddbea; padding-block:8px; }.lerosa-showcase .app-hero-tags > span:nth-child(2){border-color:#b393f7}.lerosa-showcase .app-hero-tags > span:nth-child(3){border-color:#e882f2}
@keyframes lerosa-phone-drift { 0%,100%{transform:rotateY(-12deg) rotateZ(5deg) translateY(0)}50%{transform:rotateY(0deg) rotateZ(1deg) translateY(-20px)} }

/* Software, product intelligence and business messaging stay in their own dark worlds. */
html .software-world :is(.sw-angle-section,.sw-review-section) { background:#102838; color:#e1edf4; --sw-accent:#a1d1e7; --sw-muted:#b4c9d6; }
html .software-world .sw-review-line { border-color:#ffffff30; }
.software-world .sw-studio-stage.motion-visible .sw-hero-print { animation:identity-breathe 7s ease-in-out infinite; }
.software-world .sw-hero-print::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(110deg,transparent 30%,#b5e6ff50 49%,transparent 68%); opacity:0; }
.software-world .sw-studio-stage.motion-visible .sw-hero-print::after { animation:studio-inspection 6s ease-in-out infinite; }
@keyframes studio-inspection { 0%,15%,100%{clip-path:inset(0 100% 0 0);opacity:0}25%{opacity:1}70%{clip-path:inset(0 0 0 100%);opacity:1} }
html:root .showcase-content.ai-experience { background:#14121b; color:#eee3eb; }
html .ai-jewelry :is(.aj-heading,.aj-close-look,.aj-connection) { background:#17131d; color:#eee3eb; }
html .aj-heading>div>p:last-child { color:#baabb9; }
html .ai-jewelry .aj-collection { background:#251923; --lab-line:#ffffff35; --lab-accent:#e4b7c9; }
html .aj-switch { background:#16151e; border-color:#ffffff30; }
html .aj-switch button { background:#16151e; color:#e5dae4; }
html .aj-switch button[aria-pressed=true] { background:#61253d; color:#fff0f5; }
html .aj-customer { background:#191b26; color:#e6dfea; }html .aj-professional { background:#4c1c31; color:#f2e4ed; }
html .aj-film figcaption { background:#211b25; color:#c6b7c5; }
html .ai-jewelry .lab-collection-images { background:#241d28; }.ai-jewelry .lab-collection figcaption { color:#cbbccc; }
html:root .showcase-content.ai-office { background:#0c2022; color:#dfefe7; }
html .ai-office .ai-office-hero { background:radial-gradient(ellipse at 5% 0%,#255342,transparent 65%),#0c2022; }
html .ai-office :is(.ai-briefing-section,.ai-office-details,.ai-invoice-section) { background:#132e2c; color:#ddecdf; }
html .ai-office :is(.ai-briefing-card,.ai-invoice-document) { background:#1c3933; color:#ddecdf; border-color:#9ddbb73d; }
html .ai-office .lab-office-result { background:#152f2e; color:#dfefe7; border:1px solid #c4e5c23b; }
html .ai-office .lab-request { background:#254b3d; color:#e1f0e1; }
html .ai-invoices .lab-office-result { background:#272436; color:#e6dff0; }html .ai-invoices .lab-request { background:#3d3451; }
html .ai-solutions-intro { background:#15121d; color:#e9dde8; }
html .ai-office :is(.ai-lead,.ai-office-details p,.ai-briefing-copy>p,.ai-invoice-copy>p) { color:#b7cdc2; }

/* A continuous typographic current ties each world to its own subject. */
.universe-stream { overflow:hidden; border-block:1px solid #ffffff20; background:#101018; color:#c7a4df; padding:22px 0; }
.universe-stream>div { display:flex; width:max-content; gap:50px; animation:universe-stream 28s linear infinite; animation-play-state:paused; }
.universe-stream.motion-visible>div { animation-play-state:running; }
.universe-stream span { display:inline-flex; align-items:center; gap:50px; font-size:clamp(22px,3vw,38px); font-weight:200; letter-spacing:-.025em; white-space:nowrap; }
.universe-stream span::after { content:'&'; font-family:Georgia,serif; font-style:italic; opacity:.35; }
[data-universe=rebirth]>.universe-stream { background:#102c2b; color:#d5e4a4; }[data-universe=software]>.universe-stream { background:#0c1c2c; color:#94cde2; }[data-universe=web]>.universe-stream { background:#000; color:#b9b9c0; }[data-universe=app]>.universe-stream { background:#100d1c; color:#c5afe8; }[data-universe=jewelry]>.universe-stream { background:#341627; color:#e2b2c9; }[data-universe=office]>.universe-stream { background:#112e29; color:#a1d8b8; }[data-universe=social]>.universe-stream { background:#101425; color:#a9b9f9; }
@keyframes universe-stream { to{transform:translateX(calc(-50% - 25px))} }
@media(max-width:800px){html .rebranding-world .rw-hero-layout{grid-template-columns:1fr;gap:55px}.business-stage{max-width:600px;width:100%;margin:auto}.business-constellation{height:390px}.node-position{left:0}.node-identity{right:0}.node-experience{left:5%}html .rebranding-world .rw-patisserie{grid-template-columns:1fr}html .rebranding-world .rw-patisserie-image>img{height:320px;min-height:0;object-position:center 65%}.rw-evolution-comparison{grid-template-columns:1fr}.rw-evolution-gallery .rw-example{padding:25px}.business-stage-head{font-size:10px}.business-core>span{font-size:9px}html .rebranding-world .rw-hero-copy :is(h1,h2){font-size:clamp(42px,9vw,66px)}}
@media(max-width:480px){.business-stage{padding:16px}.business-node{padding:14px}.business-node strong{font-size:19px}.business-node>span{font-size:9px}.business-constellation{height:390px}.business-core{inset:24% 17% 22%}.business-stage-head>:last-child{max-width:100px}.business-stage-footer{font-size:10px}.business-phase-buttons{gap:3px}.business-phase-buttons button{width:31px}.rw-sector-tabs{gap:7px}.rw-sector-tabs button{font-size:13px;padding:11px 13px}.rw-evolution-gallery .rw-example :is(h4,h3.gw-detail-heading){font-size:29px}.rw-evolution-gallery .rw-before,.rw-evolution-gallery .rw-after{padding:20px}}
.motion-paused :is(.business-node,.business-connections,.business-progress i,.business-signal i,.universe-stream>div,.identity-primary,.identity-specimen,.identity-swatches,.bw-identity-sheet,.bw-type-card,.hero-phone,.hero-watch,.sw-hero-print),.motion-paused .sw-hero-print::after { animation-play-state:paused!important; }
@media(prefers-reduced-motion:reduce){.business-node,.business-connections,.business-progress i,.business-signal i,.universe-stream>div,.identity-primary,.identity-specimen,.identity-swatches,.bw-brand-stage .bw-identity-sheet,.bw-brand-stage .bw-type-card,.lerosa-showcase .hero-phone,.lerosa-showcase .hero-watch,.software-world .sw-hero-print,.software-world .sw-hero-print::after{animation:none!important}.rw-evolution-gallery .rw-example{animation:none}.universe-stream>div{flex-wrap:wrap;width:100%;justify-content:center;gap:20px}.universe-stream span:nth-child(n+6){display:none}}
/* Text remains readable when moving the former light panels into dark worlds. */
html:root .ai-office .ai-office-copy > p,
html:root .ai-office .ai-section-copy > p:not(.ai-kicker),
html:root .ai-office .ai-office-details p { color:#b7cdc2; }
html:root .service-page .ai-solutions-intro h1 { color:#eee4ee; }
html:root .ai-solutions-intro :is(nav a,p) { color:#c3aec1; }
html:root .ai-jewelry .aj-connection :is(p,.sw-contact),
html:root .ai-jewelry .lab-close-copy p:not(.ai-kicker) { color:#c8b7c6; }
html:root .ai-jewelry .aj-heading::after { filter:brightness(0) invert(1); opacity:.05; }
html:root .ai-office :is(.ai-office-signature,.ai-office-copy h2 em) { color:#b9d5c1; }
html:root .ai-office :is(.ai-briefing-card>header,.ai-briefing-card>footer,.ai-mail-counts span,.ai-priority>span,.ai-invoice-document>p,.ai-invoice-detail>span,.ai-invoice-top>small) { color:#b3cdbd; }
html:root .ai-office :is(.ai-priority,.ai-office-features>div,.ai-invoice-detail,.ai-briefing-card>footer) { border-color:#c1dec82e; }
@keyframes ai-stage { 0%,24%{color:#e0f3bc;border-color:#d6eaaa}25%,100%{color:#97b4a7;border-color:#58796b} }
html:root body.service-page[class] :is(.related h2,.service-gallery h2) { color:#e1dcea; }
html:root .contact-drawer { background:#17191f; color:#d7d9e0; }
.business-signal.aligned i { animation-play-state:paused; }.rw-evolutions.motion-visible .business-signal.aligned i { animation-play-state:running; }
html:root body.document-page { background:#101116; color:#d8d9e0; }
html:root .document-page .document-content { color:#b9bbc6; }
html:root .document-page :is(.document-content h1,.document-content h2,.document-content h3) { color:#e4daef; }
html:root .document-page :is(.document-content a,.document-navigation a,.document-service-links,.document-breadcrumb) { color:#c4b5d9; }
html:root .document-page .brand-logo { filter:brightness(1.6); }
