:root{--faq-border:.2rem;--faq-question-size:2.4rem;--faq-answer-size:2.4rem;--faq-radius:2.4rem;--cta-title-size:6.8rem;--cta-radius:3.8rem;--faq-glow:#75caae38}
.b-faq,.b-project-cta{position:relative;isolation:isolate;padding-block:var(--space-75)}
.b-faq__inner{width:142rem;display:grid;grid-template-columns:54.5rem minmax(0,1fr);gap:var(--space-10);align-items:start}
.b-faq__intro .b-title{font-size:5rem;line-height:1.18}
.b-faq__intro .b-title span{font-size:6.6rem}
.b-faq__intro .b-text{font-size:2.7rem;line-height:1.32;max-width:49rem;margin-bottom:var(--space-15)}
.b-faq__illustration{width:38rem;height:auto;margin-inline:auto;animation:faq-float 9s ease-in-out infinite}
.b-faq__list{display:grid;gap:1.6rem}
.b-faq__item{min-width:0;overflow:hidden;border:var(--faq-border) solid var(--purple);border-radius:var(--faq-radius);background:linear-gradient(135deg,var(--surface),var(--paper));transition:border-color .35s,box-shadow .35s,background .35s}
.b-faq__item[open]{border-color:#9cdac5;background:linear-gradient(125deg,#294f44,var(--surface) 50%,#214037);box-shadow:0 0 2.5rem var(--faq-glow),inset 0 .1rem 0 #dae1df55}
.b-faq__question{display:flex;align-items:center;justify-content:space-between;gap:var(--space-20);padding:1.7rem var(--space-40);list-style:none;cursor:pointer;font-size:var(--faq-question-size);line-height:1.25;font-weight:800}
.b-faq__question::-webkit-details-marker{display:none}
.b-faq__question svg{width:2.8rem;height:2rem;flex-shrink:0;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.b-faq__item[open] .b-faq__question svg{transform:rotate(180deg)}
.b-faq__answer{padding:var(--space-5) var(--space-40) var(--space-25);font-size:var(--faq-answer-size);line-height:1.32}
.b-faq__question:hover{color:color-mix(in srgb,var(--ink) 85%,var(--purple))}
.b-faq__question:focus-visible{outline:.25rem solid var(--accent);outline-offset:-.6rem;border-radius:var(--faq-radius)}
@supports(interpolate-size:allow-keywords){.b-faq__item{interpolate-size:allow-keywords}.b-faq__item::details-content{block-size:0;overflow:clip;transition:block-size .4s cubic-bezier(.2,.7,.2,1),content-visibility .4s;transition-behavior:allow-discrete}.b-faq__item[open]::details-content{block-size:auto}}
.b-project-cta__panel{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;width:149rem;min-height:48.6rem;padding:var(--space-30) var(--space-75);border:.25rem solid #83d0b6;border-radius:var(--cta-radius);background:linear-gradient(130deg,#224339,var(--paper) 48%,#294f44);box-shadow:0 0 2.8rem #75caae2e;overflow:hidden}
.b-project-cta__panel::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(50rem circle at var(--cta-x,90%) var(--cta-y,100%),#77cbaf26,transparent 70%);opacity:.5;transition:opacity .5s}
.b-project-cta__panel.is-lit::before{opacity:1}
.b-project-cta__copy{position:relative;z-index:2;max-width:74rem}
.b-project-cta__copy .b-title{font-size:var(--cta-title-size);line-height:1.15;letter-spacing:-.2rem}
.b-project-cta__copy .b-text{font-size:3.2rem;line-height:1.3;max-width:68rem}
.b-project-cta__copy .b-button{min-height:8.6rem;min-width:53.5rem;font-size:var(--font-size-30);justify-content:space-between;gap:var(--space-30);padding-inline:var(--space-50)}
.b-project-cta__wave{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;filter:drop-shadow(0 0 1rem #75caae);opacity:.75}
.b-project-cta__image{position:relative;z-index:1;width:74rem;max-width:calc(100% + 6rem);height:auto;justify-self:end;pointer-events:none;animation:cta-float 11s ease-in-out infinite}
@keyframes faq-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-.8rem) rotate(1deg)}}
@keyframes cta-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-.6rem)}}
[data-theme=light] .b-faq__item{background:linear-gradient(130deg,#ffffff,#f1f4f3)}
[data-theme=light] .b-faq__item[open]{background:linear-gradient(130deg,#f1f4f3,#ffffff);border-color:var(--purple)}
[data-theme=light] .b-project-cta__panel{background:linear-gradient(130deg,#eff2f1,#ffffff 48%,#e5eae9);box-shadow:0 1rem 4rem #57bf9c12}
.is-paused .b-faq__illustration,.is-paused .b-project-cta__image{animation-play-state:paused}
@media(max-width:991px){.b-faq__inner{grid-template-columns:43rem minmax(0,1fr);gap:var(--space-30)}.b-faq__intro .b-title{font-size:4.5rem}.b-faq__intro .b-title span{font-size:5.7rem}.b-faq__question{padding-inline:var(--space-25);font-size:var(--font-size-24)}.b-faq__answer{padding-inline:var(--space-25);font-size:var(--font-size-22)}.b-project-cta__panel{padding:var(--space-40)}.b-project-cta__copy .b-title{font-size:5.8rem}.b-project-cta__copy .b-text{font-size:var(--font-size-30)}.b-project-cta__copy .b-button{font-size:var(--font-size-24);min-width:0;width:100%;padding-inline:var(--space-30)}}
@media(max-width:767px){.b-faq__inner{grid-template-columns:1fr;gap:var(--space-30)}.b-faq__intro{position:relative;padding-right:23rem;min-height:21rem}.b-faq__intro .b-title{font-size:4.5rem}.b-faq__intro .b-title span{font-size:5rem}.b-faq__intro .b-text{font-size:var(--font-size-22)}.b-faq__illustration{position:absolute;right:0;top:0;width:23rem}.b-project-cta__panel{grid-template-columns:1fr;padding:var(--space-40);gap:var(--space-25)}.b-project-cta__copy{max-width:none}.b-project-cta__copy .b-title{font-size:5rem}.b-project-cta__copy .b-text{max-width:none;font-size:var(--font-size-24)}.b-project-cta__copy .b-button{width:auto;min-width:42rem;min-height:7rem}.b-project-cta__image{width:58rem;max-width:100%;justify-self:center}}
@media(max-width:479px){.b-faq,.b-project-cta{padding-block:var(--space-40)}.b-faq__intro{padding-right:0;min-height:0}.b-faq__intro .b-title,.b-faq__intro .b-title span{font-size:3rem}.b-faq__intro .b-text{font-size:var(--font-size-18);margin-bottom:0}.b-faq__illustration{display:none}.b-faq__list{gap:var(--space-15)}.b-faq__question{font-size:var(--font-size-18);padding:var(--space-20);gap:var(--space-15)}.b-faq__question svg{width:2rem;height:1.5rem}.b-faq__answer{font-size:var(--font-size-16);padding-inline:var(--space-20);padding-bottom:var(--space-20)}.b-project-cta__panel{padding:var(--space-25);border-radius:var(--radius-24)}.b-project-cta__copy .b-title{font-size:3.4rem;letter-spacing:-.1rem}.b-project-cta__copy .b-text{font-size:var(--font-size-18)}.b-project-cta__copy .b-button{font-size:var(--font-size-18);width:100%;min-width:0;min-height:6rem;padding-inline:var(--space-20)}}
@media(prefers-reduced-motion:reduce){.b-faq__illustration,.b-project-cta__image{animation:none}.b-faq__item::details-content,.b-faq__question svg{transition:none}}
/* One perimeter pulse per deliberate interaction; the mask keeps text unobscured. */
@property --faq-trace{syntax:"<angle>";initial-value:0deg;inherits:false}
.b-faq__item{position:relative}
.b-faq__item::after,.b-project-cta__panel::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:.22rem;pointer-events:none;background:conic-gradient(from var(--faq-trace),transparent 0deg 275deg,#67c6a688 300deg,#f1f3f3 323deg,#94d7c1 335deg,transparent 350deg);mask:linear-gradient(#000000 0 0) content-box,linear-gradient(#000000 0 0);mask-composite:exclude;opacity:0;z-index:3}
.b-faq__item.is-signaling::after{animation:faq-perimeter 1.25s cubic-bezier(.22,.65,.3,1) both}
.b-project-cta__panel.is-energized::after{animation:faq-perimeter 1.6s cubic-bezier(.22,.65,.3,1) both}
@keyframes faq-perimeter{0%{--faq-trace:-100deg;opacity:0}12%{opacity:1}78%{opacity:1}100%{--faq-trace:260deg;opacity:0}}
.b-project-cta__image{transform-style:preserve-3d;translate:var(--float-x,0rem) var(--float-y,0rem);rotate:1 0 0 var(--tilt-x,0deg)}
.b-project-cta__panel{perspective:110rem}
.b-project-cta__image{transform:rotateY(var(--tilt-y,0deg))}
@keyframes cta-float{0%,100%{transform:rotateY(var(--tilt-y,0deg)) translateY(0)}50%{transform:rotateY(var(--tilt-y,0deg)) translateY(-.6rem)}}
.b-project-cta__wave{transition:filter .8s,opacity .8s;translate:calc(var(--float-x,0rem)*-.8) calc(var(--float-y,0rem)*-.8)}
.b-project-cta__panel.is-lit .b-project-cta__wave{opacity:1;filter:drop-shadow(0 0 1.7rem #9cdac5)}
.b-project-cta__spark{opacity:0;stroke-dasharray:80 1000;stroke-dashoffset:100;filter:drop-shadow(0 0 .5rem #ffffff)}
.is-energized .b-project-cta__spark{animation:cta-wave-spark 1.4s cubic-bezier(.2,.55,.3,1) both}
@keyframes cta-wave-spark{0%{stroke-dashoffset:100;opacity:0}18%{opacity:.9}80%{opacity:1}100%{stroke-dashoffset:-1050;opacity:0}}
[data-theme=light] .b-project-cta__spark{stroke:#57bf9c}
@media(prefers-reduced-motion:reduce){.b-faq__item::after,.b-project-cta__panel::after,.b-project-cta__spark{animation:none!important;opacity:0!important}.b-project-cta__image,.b-project-cta__wave{translate:none;rotate:none;transform:none;transition:none}}
.is-paused .b-faq__item::after,.is-paused .b-project-cta__panel::after,.is-paused .b-project-cta__spark{animation-play-state:paused}
/* Separate dialogue faces and symbols let each response have its own rhythm. */
:root{--faq-bubble-violet:#48ba94;--faq-bubble-pink:#c2f44f;--faq-symbol:#ecefee}
.b-faq__illustration{position:relative;aspect-ratio:380/340;height:auto;perspective:70rem;animation:none}
.b-faq__bubble,.b-faq__reply{position:absolute;display:flex;align-items:center;justify-content:center;border:.3rem solid #bae5d7;border-radius:6rem;background:linear-gradient(135deg,#87d1b8 0%,var(--faq-bubble-violet) 28%,#2d785f 100%);box-shadow:inset .5rem .6rem 1.1rem #e0e5e49c,inset -.9rem -.7rem 1.4rem #23453b88,0 0 2rem #70c9ab70;transform:rotate(-12deg) skewY(-4deg)}
.b-faq__bubble{left:7%;top:6%;width:65%;height:69%;animation:faq-bubble-drift 8s ease-in-out infinite}
.b-faq__bubble::after,.b-faq__reply::after{content:"";position:absolute;bottom:-2rem;left:3rem;width:4rem;height:5rem;background:linear-gradient(135deg,#3ea482,#2e785f);border-left:.3rem solid #9fdac6;border-bottom:.3rem solid #9fdac6;border-radius:0 0 0 1rem;transform:skewY(-38deg);z-index:-1}
.b-faq__mark{font-size:16rem;font-weight:800;line-height:1;color:var(--faq-symbol);text-shadow:.2rem .4rem .2rem #7f9f94,-.15rem -.15rem 0 #ffffff;display:block;transform:rotate(4deg);padding-bottom:1rem}
.b-faq__reply{right:2%;bottom:6%;width:45%;height:40%;gap:1.1rem;border-radius:4rem;transform:rotate(15deg);background:linear-gradient(145deg,#a3dcc9,var(--faq-bubble-pink) 52%,#b5f129);box-shadow:inset .4rem .4rem 1rem #eaedecaa,inset -.6rem -.5rem 1rem #2d574b80,0 0 2rem #c7f55c55;animation:faq-reply-drift 9s ease-in-out infinite}
.b-faq__reply::after{left:auto;right:2rem;background:#baf236;border-color:#cef671;transform:skewY(38deg);width:3rem;height:4rem}
.b-faq__reply span{width:1.8rem;height:1.8rem;border-radius:50%;background:linear-gradient(130deg,#ffffff,#dce2e0);box-shadow:.15rem .25rem .25rem #b7f22e;opacity:1}
.is-asking .b-faq__mark{animation:faq-question-hop 1.5s cubic-bezier(.3,0,.2,1) infinite}
.is-answering .b-faq__reply span{animation:faq-answer-dots 2.8s ease-in-out infinite both}
.is-answering .b-faq__reply span:nth-child(2){animation-delay:.22s}.is-answering .b-faq__reply span:nth-child(3){animation-delay:.44s}
@keyframes faq-question-hop{0%,65%,100%{translate:0 0;rotate:0deg}25%{translate:0 -1.6rem;rotate:-5deg}45%{translate:0 .3rem;rotate:2deg}}
@keyframes faq-answer-dots{0%,8%,90%,100%{opacity:.12;translate:0 .7rem;scale:.65}25%,65%{opacity:1;translate:0 0;scale:1}40%{translate:0 -.55rem}}
@keyframes faq-bubble-drift{50%{translate:0 -.6rem;rotate:-1deg}}
@keyframes faq-reply-drift{50%{translate:.3rem .5rem;rotate:2deg}}
.b-project-cta__cursor{position:absolute;left:86%;top:57%;width:10rem;height:12rem;z-index:4;overflow:visible;pointer-events:none;filter:drop-shadow(0 0 .7rem #94d7c1) drop-shadow(0 0 1.6rem #66c5a599);will-change:translate}
.b-project-cta__panel.is-lit .b-project-cta__cursor{filter:drop-shadow(0 0 .9rem #c1e8db) drop-shadow(0 0 2rem #7ccdb299)}
.is-paused .b-faq__illustration *{animation-play-state:paused!important}
.b-faq__bubble::after,.b-faq__reply::after{bottom:-2.8rem;height:4rem;border:0;clip-path:polygon(0 0,100% 0,12% 100%);border-radius:0;transform:none}
.b-faq__reply::after{clip-path:polygon(0 0,100% 0,85% 100%)}
.b-faq__mark{font-family:Arial,sans-serif}
.b-project-cta__cursor{transform:translate(-12%,-8%)}
@media(max-width:767px){.b-faq__illustration{position:absolute}.b-faq__mark{font-size:10rem}.b-faq__bubble{border-radius:4rem}.b-faq__reply{border-radius:2.5rem;gap:.6rem}.b-faq__reply span{width:1.2rem;height:1.2rem}.b-project-cta__cursor{left:79%;top:76%;width:7rem;height:8.4rem}}
@media(prefers-reduced-motion:reduce){.b-faq__illustration *{animation:none!important}.b-project-cta__cursor{translate:none!important;will-change:auto}}
.b-faq__bubble,.b-faq__reply{border:0;background:none;box-shadow:none;transform:rotate(-7deg)}
.b-faq__bubble{left:13%;top:10%;width:57%;height:59%}
.b-faq__reply{right:8%;bottom:12%;width:40%;height:35%;transform:rotate(13deg)}
.b-faq__bubble::after,.b-faq__reply::after{display:none}
.b-faq__shape{position:absolute;inset:0;width:100%;height:108%;overflow:visible;z-index:-1;filter:drop-shadow(-.25rem -.25rem .35rem #9bd9c499) drop-shadow(.35rem .5rem .3rem #295045) drop-shadow(0 0 .8rem #7dceb344)}
.b-faq__reply .b-faq__shape{filter:drop-shadow(0 0 .65rem #c8f55f77)}
.b-faq__mark{width:34%;height:54%;padding:0;transform:translateY(-.5rem);filter:drop-shadow(.15rem .25rem .1rem #8ca99f) drop-shadow(-.1rem -.1rem 0 #ffffff)}
.b-faq__mark svg{width:100%;height:100%;overflow:visible}
.b-faq__reply span{transition:opacity .35s,translate .35s,scale .35s}
.is-asking .b-faq__reply span{animation:none;opacity:1;translate:0 0;scale:1}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 html:not(.is-paused) .b-project-cta__panel.is-lit,
 html:not(.is-paused) .b-project-cta__panel.is-lit *{cursor:none!important}
}
/* Glossy raster layers from the reference; each cell is independently animated. */
.b-faq__bubble,.b-faq__reply,.b-faq__mark,.b-faq__reply span{background-image:url('../assets/faq-cta/dialogue-layers.webp');background-size:200% 200%;background-repeat:no-repeat;border:0;border-radius:0;box-shadow:none;filter:none;transform:none}
.b-faq__bubble{left:6%;top:1%;width:73%;height:auto;aspect-ratio:1;background-position:0 0}
.b-faq__reply{right:1%;bottom:2%;width:49%;height:auto;aspect-ratio:1;background-position:100% 0;gap:0;padding:0 10% 5% 8%}
.b-faq__mark{position:absolute;left:23%;top:17%;width:53%;height:auto;aspect-ratio:1;background-position:0 100%}
.b-faq__reply span{flex:0 0 4.4rem;width:4.4rem;height:4.4rem;background-position:100% 100%;margin-inline:-.8rem;translate:0 0}
.b-faq__reply span:nth-child(1){margin-top:-1.2rem}.b-faq__reply span:nth-child(3){margin-top:1.2rem}
@media(max-width:767px){.b-faq__reply span{flex-basis:2rem;width:2rem;height:2rem;margin-inline:-.2rem}.b-faq__reply span:nth-child(1){margin-top:-.7rem}.b-faq__reply span:nth-child(3){margin-top:.7rem}}
