/* Violet / silver. Images carry the atmosphere; content remains semantic HTML. */
:root { color-scheme:light; --bg:#f6f5f8; --surface:#eeebf3; --surface-2:#e5e0ee; --ink:#282234; --muted:#625b70; --subtle:#60536d; --line:#d6d0e0; --line-soft:#d6d0e099; --acid:#6c36c7; --acid-bright:#5723b0; --on-acid:#fff; }
.visual-violet { --paper:#e9e4f1; --paper-ink:#30243f; --paper-muted:#61516f; --radius:1.25rem; background:var(--bg); }
.visual-violet::before { display:none; }
.visual-violet .site-header { background:#f6f5f8d9; border-color:#d6d0e077; }
.visual-violet .site-header.is-scrolled { background:#f6f5f8f2; border-color:var(--line); }
.visual-violet .wordmark { font-size:1.65rem; }
.visual-violet .desktop-nav { gap:1.5rem; }
.visual-violet .button,.visual-violet .header-cta { border-radius:999px; font-family:var(--sans); font-weight:750; text-transform:none; letter-spacing:0; font-size:.84rem; }
.visual-violet .button { padding:1rem 1.5rem; gap:1.4rem; min-height:52px; }
.visual-violet .button--primary { background:var(--acid); color:#fff; border-color:var(--acid); box-shadow:0 8px 24px #6c36c71a; }
.visual-violet .button--primary:hover,.visual-violet .header-cta:hover { background:#5723b0; color:white; border-color:#5723b0; }
.visual-violet .button--ghost:hover { background:#e7e0f1; color:var(--ink); }
.visual-violet .menu-panel { background:#f6f5f8; border-color:var(--line); box-shadow:0 16px 40px #3e27551a; }
.visual-violet .lang-switch { background:#ffffff70; }
.motion-toggle { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--acid); background:#ffffff70; cursor:pointer; }
.motion-toggle[hidden] { display:none; }
.motion-toggle[disabled] { cursor:default; opacity:.65; }
.motion-toggle[aria-pressed="true"] .motion-symbol { font-size:0; }
.motion-toggle[aria-pressed="true"] .motion-symbol::after { content:'▶'; font-size:.7rem; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.visual-violet .header-actions { gap:.7rem; }
.visual-violet .hero { padding-top:8rem; padding-bottom:1.5rem; min-height:0; background:#efedf3; }
.visual-violet .hero-kicker { margin-bottom:2rem; color:var(--muted); letter-spacing:.1em; font-weight:500; }
.visual-violet .hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:0 3rem; margin:0; align-items:start; }
.visual-violet .hero-copy-block { display:contents; }
.visual-violet .hero-heading { grid-column:1; grid-row:1; font-size:clamp(3.25rem,5.75vw,5.6rem); line-height:1.07; letter-spacing:-.065em; text-transform:none; font-weight:700; max-width:none; padding-top:1.5rem; }
.visual-violet .hero-heading em { color:#7039bf; font-style:normal; }
.visual-violet .hero-copy { grid-column:1; grid-row:2; font-size:1.05rem; max-width:29rem; margin:1.8rem 0 0; }
.visual-violet .hero-actions { grid-column:1; grid-row:3; margin-top:1.7rem; gap:.7rem; }
.visual-violet .hero-note { grid-column:1; grid-row:4; font-size:.8rem; margin-top:1rem; }
.visual-violet .hero-name { grid-column:1; grid-row:5; font:500 .72rem/1.7 var(--sans); text-transform:none; letter-spacing:0; margin-top:1.2rem; max-width:27rem; }
.visual-violet .hero-art { position:relative; grid-column:2; grid-row:1/6; z-index:1; width:100%; max-width:none; height:100%; min-height:39rem; top:auto; right:auto; margin:0; opacity:1; align-self:stretch; border-radius:1.5rem 1.5rem 1.5rem 9rem; overflow:hidden; background:#d8d0e4; box-shadow:0 24px 65px #3f25551a; transform:perspective(1400px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); }
.visual-violet .hero-art::after { display:none; }
.visual-violet .hero-art img { position:absolute; width:100%; height:110%; max-height:none; object-fit:cover; object-position:62% 50%; top:-5%; transform:translateY(var(--scene-y,0px)) scale(1.025); }
.art-label { position:absolute; z-index:2; padding:.65rem 1rem; border-radius:99px; background:#f7f4f9e8; color:#4a3b60; border:1px solid #ffffffaa; font:.68rem/1.4 var(--sans); font-weight:650; box-shadow:0 8px 30px #4835520d; }
.art-label--top { top:1.4rem; left:1.4rem; letter-spacing:.1em; }
.art-label--bottom { right:1.4rem; bottom:1.4rem; }
.visual-violet .hero-bottom { margin-top:2.5rem; }
.visual-violet .hero-bottom p { color:var(--muted); }
.visual-violet .section-title,.visual-violet .contact-title { font-weight:600; letter-spacing:-.055em; }
.visual-violet .section-title { font-size:clamp(2.75rem,5.25vw,4.9rem); line-height:1.08; }
.visual-violet .section-title em { color:var(--acid); }
.visual-violet .eyebrow::before { background:var(--acid); }
.visual-violet .approach-section { margin:0; padding-block:6rem; background:#e8e2f0; }
.visual-violet .approach-section .section-title em { color:#7039bf; }
.visual-violet .approach-grid { margin-left:calc(21.875% + 3rem); }
.visual-violet .approach-principle { color:#7545ac; font-size:clamp(2rem,3vw,2.9rem); }
.visual-violet .journey li { border-color:#bcb0cc; }
.visual-violet .journey li::before { background:#8b63be; border-radius:50%; transform:none; }
.visual-violet .journey h3 { font-weight:650; }
.visual-violet .service-collection { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem; }
.visual-violet .service-row { display:grid; grid-template-columns:minmax(0,1fr) 3rem; gap:0 1rem; align-items:start; padding:0 0 2rem; border:0; border-bottom:1px solid var(--line); background:none; transform:perspective(1400px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); }
.service-cover { grid-column:1/-1; display:block; width:100%; overflow:hidden; border-radius:1.1rem; aspect-ratio:1.65; margin-bottom:1.5rem; background:var(--surface); }
.service-cover img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.visual-violet .service-row:hover .service-cover img { transform:scale(1.045); }
.visual-violet .service-index { grid-column:1; grid-row:2; margin-bottom:1rem; }
.visual-violet .service-row h2,.visual-violet .service-row h3 { grid-column:1; grid-row:3; font-size:clamp(1.75rem,2.6vw,2.65rem); letter-spacing:-.045em; font-weight:650; }
.visual-violet .service-row p { grid-column:1; grid-row:4; margin-top:1rem; max-width:none; }
.visual-violet .service-arrow { grid-column:2; grid-row:3; display:grid; place-items:center; border:1px solid var(--line); width:44px; height:44px; border-radius:50%; font-size:1.6rem; }
.visual-violet .case-card { border-radius:1.2rem; background:#ebe6f2; border-color:#ded5e9; overflow:hidden; }
.visual-violet .case-card--featured { background:#e6ddee; }
.visual-violet .case-art { min-height:0; height:14rem; margin-top:2rem; border:0; border-radius:.8rem; background:#d4c4e5; overflow:hidden; }
.visual-violet .case-art::before,.visual-violet .case-art::after { display:none; }
.visual-violet .case-art img { width:100%; height:120%; object-fit:cover; margin-top:-5%; transform:translateY(var(--scene-y,0px)); }
.visual-violet .case-card--featured .case-art { height:21rem; }
.visual-interlude { position:relative; isolation:isolate; min-height:44rem; padding-block:7rem; background:#584075; color:white; overflow:hidden; }
.interlude-art { position:absolute; inset:-3rem 0; z-index:-2; }
.interlude-art img { width:100%; height:100%; object-fit:cover; object-position:70% center; transform:translateY(var(--scene-y,0px)) scale(1.04); }
.visual-interlude::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#352149c9,#40215d48 55%,transparent); z-index:-1; }
.interlude-copy h2 { font-size:clamp(3rem,5.8vw,5.5rem); font-weight:600; line-height:1.06; letter-spacing:-.055em; margin:1.6rem 0; }
.interlude-copy h2 em { font-style:normal; color:#e5ccff; }
.interlude-copy p { max-width:30rem; color:#f5edff; font-size:1.1rem; margin-bottom:2rem; }
.visual-interlude .micro-label { color:#ead9fa; }
.visual-violet .visual-interlude .button { background:#fff; color:#562291; border-color:#fff; }
.visual-violet .visual-interlude .button:hover { background:#f0e3ff; }
.visual-violet .visual-interlude :focus-visible { outline-color:white; }
.visual-violet .process-step__num { color:#795295; }
.visual-violet .insight-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem; border:0; }
.visual-violet .insight-card,.visual-violet .insight-card:first-child,.visual-violet .insight-card:nth-child(2) { display:flex; flex-direction:column; align-items:start; grid-column:auto; padding:0 0 2rem; border:0; border-bottom:1px solid var(--line); background:none; }
.guide-cover { display:block; width:100%; aspect-ratio:1.9; position:relative; overflow:hidden; border-radius:1rem; margin-bottom:1.5rem; background:var(--surface); }
.guide-cover img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.visual-violet .insight-card:hover img,.visual-violet .guide-tile:hover img { transform:scale(1.045); }
.visual-violet .insight-card h3,.visual-violet .insight-card:first-child h3 { font-size:clamp(1.75rem,2.6vw,2.55rem); font-weight:650; margin:1rem 0; }
.visual-violet .insight-card:visited h3 { color:#64477e; }
.visual-violet .insight-card:hover h3 { color:var(--acid); }
.visual-violet .insight-card .text-link { margin-top:auto; padding-top:1rem; }
.visual-violet .checklist-panel { background:#e9e1f2; border-radius:1.2rem; }
.visual-violet .about-panel { background:#e3d5f2; color:#523367; border-color:#d7c6e9; border-radius:1.5rem 1.5rem 6rem 1.5rem; }
.visual-violet .about-panel__mark { color:var(--acid); }
.visual-violet .contact-section { background:#eae4f2; }
.visual-violet .contact-action { border-radius:1rem; }
.visual-violet .brief-card { border-radius:1rem; background:#ffffff50; }
.visual-violet .contact-primary { background:#6c36c7; color:white; border-color:#6c36c7; }
.visual-violet .contact-primary:hover { background:#5723b0; }
.visual-violet .contact-primary span { color:inherit; }
.visual-violet .site-footer { background:#e2dbe9; }
.visual-violet .service-hero { overflow:visible; }
.visual-violet .editorial-hero h1,.visual-violet .service-hero h1 { letter-spacing:-.045em; }
.service-art { position:relative; margin:0; border-radius:1.5rem 1.5rem 1.5rem 6rem; overflow:hidden; min-height:30rem; background:var(--surface); transform:perspective(1400px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); }
.service-art img { position:absolute; inset:-8% 0; width:100%; height:116%; object-fit:cover; transform:translateY(var(--scene-y,0px)); }
.article-art { height:clamp(15rem,30vw,27rem); overflow:hidden; }
.article-art img { width:100%; height:116%; object-fit:cover; margin-top:-3%; border-radius:1rem; transform:translateY(var(--scene-y,0px)); }
.visual-violet .service-outcomes { background:#e9e1f2; }
.visual-violet .outcomes-layout li { border-color:#c9bad8; }
.visual-violet .editorial-contact { background:#6b39b4; color:#fff; border-radius:1.2rem; }
.visual-violet .editorial-contact p,.visual-violet .editorial-contact .micro-label { color:#f1e8ff; }
.visual-violet .editorial-contact .button { color:#562291; background:white; border-color:white; }
.visual-violet .editorial-contact .button:hover { background:#e9d9fd; }
.visual-violet .editorial-contact :focus-visible { outline-color:white; }
.visual-violet .guide-library { gap:2.5rem; }
.visual-violet .guide-tile,.visual-violet .guide-tile:nth-child(even) { padding:0 0 2rem; border:0; border-bottom:1px solid var(--line); }
.visual-violet .guide-index { position:absolute; bottom:1rem; left:1rem; margin:0; font-size:1rem; color:#513270; background:#f8f4fcf0; border-radius:99px; padding:.6rem .85rem; letter-spacing:0; }
.visual-violet .guide-tile h2 { margin-top:1rem; }
html[data-visual-motion="off"] { scroll-behavior:auto; }
html[data-visual-motion="off"] .visual-violet *,html[data-visual-motion="off"] .visual-violet *::before,html[data-visual-motion="off"] .visual-violet *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
html[data-visual-motion="off"] [data-visual-scene] img,html[data-visual-motion="off"] [data-tilt],html[data-visual-motion="off"] .service-cover img,html[data-visual-motion="off"] .guide-cover img { transform:none!important; }
@media(min-width:833px) and (prefers-reduced-motion:no-preference) {
 .visual-violet .hero-art img { animation:sculpture-breathe 12s ease-in-out infinite; animation-play-state:var(--scene-play-state,paused); }
 .visual-violet .art-label--top { animation:label-float 6s ease-in-out infinite; animation-play-state:var(--scene-play-state,paused); }
 .visual-violet .art-label--bottom { animation:label-float 7.5s ease-in-out infinite reverse; animation-play-state:var(--scene-play-state,paused); }
 @keyframes label-float { 0%,100% { translate:0 0; } 50% { translate:0 -9px; } }
 @keyframes sculpture-breathe { 0%,100% { scale:1; } 50% { scale:1.035; } }
}
@media(max-width:1200px) {
 .visual-violet .desktop-nav { gap:1rem; }
 .visual-violet .hero-grid { gap:0 2rem; }
 .visual-violet .hero-art { min-height:35rem; }
 .visual-violet .hero-heading { font-size:clamp(3rem,5.6vw,4.6rem); }
 .visual-violet .hero-actions .button { padding-inline:1.1rem; font-size:.77rem; }
 .visual-violet .approach-grid { margin-left:11rem; }
}
@media(max-width:1000px) { .visual-violet .desktop-nav { display:none; } .visual-violet .mobile-menu { display:block; } .visual-violet .header-actions { margin-left:auto; } }
@media(max-width:52rem) {
 .visual-violet .hero { padding-top:6.5rem; }
 .visual-violet .hero-kicker { margin-bottom:1.2rem; }
 .visual-violet .hero-grid { grid-template-columns:1fr; gap:0; }
 .visual-violet .hero-heading { grid-row:1; font-size:clamp(2.8rem,8vw,4.2rem); padding-top:0; max-width:16ch; }
 .visual-violet .hero-heading br:last-child { display:none; }
 .visual-violet .hero-art { grid-column:1; grid-row:2; min-height:0; height:clamp(16rem,56vw,28rem); width:100%; max-width:none; margin-top:1.6rem; border-radius:1rem 1rem 1rem 4rem; }
 .visual-violet .hero-art img { object-position:center 50%; max-height:none; }
 .visual-violet .hero-copy { grid-row:3; max-width:none; margin-top:1.5rem; }
 .visual-violet .hero-actions { grid-row:4; }
 .visual-violet .hero-note { grid-row:5; }
 .visual-violet .hero-name { grid-row:6; }
 .visual-violet .hero-bottom { margin-top:1.5rem; }
 .art-label--top { left:.9rem; top:.9rem; }
 .art-label--bottom { right:.9rem; bottom:.9rem; }
 .visual-violet .approach-section { padding-block:4.5rem; }
 .visual-violet .approach-grid { margin-left:0; }
 .visual-violet .service-collection,.visual-violet .insight-grid { gap:2rem; }
 .visual-violet .service-row h2,.visual-violet .service-row h3 { font-size:1.8rem; }
 .visual-interlude { min-height:35rem; padding-block:5rem; }
 .interlude-copy h2 { font-size:clamp(2.5rem,7vw,4rem); }
 .interlude-art img { object-position:68% center; }
 .visual-interlude::after { background:#35214999; }
 .service-art { min-height:23rem; }
 .visual-violet .service-hero { overflow:hidden; }
 .visual-violet .guide-library { gap:2rem; }
}
@media(max-width:40rem) {
 .visual-violet .header-inner { gap:.5rem; }
 .visual-violet .header-actions { gap:.3rem; }
 .visual-violet .lang-switch { gap:0; padding-inline:.25rem; }
 .visual-violet .lang-switch a { padding-inline:.5rem; }
 .visual-violet .wordmark { font-size:1.4rem; }
 .visual-violet .hero-kicker { font-size:.65rem; }
 .visual-violet .hero-heading { font-size:clamp(2.5rem,10.3vw,3.8rem); line-height:1.1; letter-spacing:-.045em; }
 .visual-violet .hero-art { height:16rem; }
 .art-label { font-size:.6rem; padding:.5rem .7rem; }
 .visual-violet .hero-copy { font-size:.95rem; }
 .visual-violet .hero-actions { flex-wrap:wrap; }
 .visual-violet .hero-actions .button { font-size:.78rem; flex:1 1 auto; justify-content:center; }
 .visual-violet .service-collection,.visual-violet .insight-grid { grid-template-columns:1fr; gap:2.5rem; }
 .visual-violet .section-title { font-size:clamp(2.25rem,9.4vw,3.2rem); }
 .visual-violet .case-card--featured .case-art { height:16rem; }
 .visual-violet .guide-library { grid-template-columns:1fr; }
 .visual-violet .service-hero h1 { font-size:clamp(2.3rem,8vw,3.5rem); }
 .service-art { min-height:19rem; }
 .article-art { height:14rem; }
}
@media(prefers-reduced-motion:reduce) {
 .visual-violet [data-visual-scene] img,.visual-violet [data-tilt],.visual-violet .service-cover img,.visual-violet .guide-cover img { transform:none!important; }
 .visual-violet .art-label { animation:none!important; }
}
