:root{--bg:#24051f;--surface:#160713;--text:#f8f1ea;--muted:#c3afbe;--border:#a28c9c;--footer:#412039;--logo-color:#bca9b9;--glow-opacity:.55;--aubergine:#37153c;--rust:#b65a2e;--cyan:#3cc7e6;--avocado:#a7b342;color-scheme:dark;font-family:Roboto,Arial,sans-serif;font-weight:300;color:var(--text);background:var(--bg)}
:root[data-theme=light]{--bg:#f7f0eb;--surface:#faf1eb;--text:#2b0825;--muted:#654d61;--border:#816b7b;--footer:#fcf8f5;--logo-color:#4d394a;--glow-opacity:.42;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;overflow-x:clip;background:var(--bg);color:var(--text)}body,header,footer,input,textarea,button,.experience,.access-panel{transition:background-color .5s,color .5s,border-color .5s}a{color:inherit;text-underline-offset:3px}button,input,textarea{font:inherit;color:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}button{background:none;border:1px solid var(--border)}.wrap{width:80%;max-width:1520px;margin-inline:auto}.header{height:140px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:5}.brand{display:flex;align-items:center;min-height:44px}.brand-mark{width:130px;height:41px;display:block;background:var(--text);mask:url('../assets/Firefly_logo.svg') center/contain no-repeat;transition:background .5s}.tagline{position:absolute;left:50%;transform:translateX(-50%);font:italic 400 23px 'minion-pro',Georgia,serif;white-space:nowrap}.header nav{display:flex;gap:23px;align-items:center}.pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid currentColor;border-radius:40px;padding:10px 29px;min-height:44px;text-decoration:none;font-size:20px;font-weight:600;transition:background .3s,color .3s}.pill:hover{background:var(--text);color:var(--bg)}.theme-toggle{width:56px;height:48px;border:0;padding:0}.theme-toggle svg{width:100%;height:100%;overflow:visible}.circle-outline{fill:#24051fba;stroke:var(--text);stroke-width:1}.circle-solid{fill:#f8f1eaba;fill-opacity:.88;stroke:#5c412ea6;stroke-width:1}.theme-toggle circle{transition:transform .5s,fill .5s}.theme-toggle:hover .circle-outline{transform:translateX(13px)}.theme-toggle:hover .circle-solid{transform:translateX(-13px)}
h1,h2,h3,p{margin:0}h1{font-size:clamp(40px,5.18vw,98px);font-weight:600;line-height:1.17;letter-spacing:-.035em}h2{font-size:clamp(36px,3.8vw,72px);line-height:1.05;font-weight:600;letter-spacing:-.035em}em{font-family:'minion-pro',Georgia,serif;font-weight:400;letter-spacing:-.025em}.gradient{font-size:1.17em;background:linear-gradient(100deg,var(--avocado) 5%,#78bd88 45%,#22d7df 100%);background-clip:text;-webkit-background-clip:text;color:transparent}.hero{padding-top:70px;position:relative;padding-bottom:180px}.headline-line{display:block}.hero h1{position:relative;z-index:1}.intro{width:49%;margin:76px 14% 0 36.5%;font-size:clamp(18px,1.58vw,30px);line-height:1.42;position:relative;z-index:1}.typing .intro{opacity:0;transform:translateY(15px)}.intro{transition:opacity .8s,transform .8s}.char-hidden{visibility:hidden}.glows{position:absolute;pointer-events:none;inset:0;z-index:0;overflow:visible}.glow{position:absolute;width:440px;aspect-ratio:1;border-radius:50%;filter:blur(65px);opacity:var(--glow-opacity);will-change:transform;transition:opacity .5s}.glow:after{content:'';position:absolute;inset:0;border-radius:inherit;background:inherit;animation:breathe 9s ease-in-out infinite alternate}.cyan{background:radial-gradient(circle,var(--cyan),transparent 68%);left:73%;top:0}.rust{background:radial-gradient(circle,var(--rust),transparent 68%);left:69%;top:290px}.avocado{background:radial-gradient(circle,var(--avocado),transparent 68%);left:85%;top:200px}.rust:after{animation-duration:13s}.avocado:after{animation-duration:11s}@keyframes breathe{to{transform:scale(1.16) translate(12px,-18px);opacity:.7}}
.services{position:relative}.service-list{margin:68px 14% 0 20%;display:grid;gap:40px}.service{display:grid;grid-template-columns:145px 1fr;gap:95px}.service h3{text-align:right;font-size:22px;line-height:1.15;font-weight:600;padding-top:4px}.service p,.experience p,.contact p{font-size:clamp(18px,1.58vw,30px);line-height:1.42}.clients{padding-top:185px;padding-bottom:225px}.logo-grid{display:grid;grid-template-columns:1fr 1fr;row-gap:72px;column-gap:55px;margin-top:102px}.logo-row{display:flex;align-items:center;justify-content:space-between;gap:28px;min-width:0}.client-logo{display:block;width:var(--width);max-width:23%;height:62px;flex-shrink:1;background:var(--logo-color);mask:var(--logo) center/contain no-repeat;transition:background .5s}.experience-region{position:relative}.experience-region .glows{inset:-170px 0 -200px}.experience-region .cyan{left:20%;top:0}.experience-region .avocado{left:36%;top:90px}.experience-region .rust{left:48%;top:230px}.experience{position:relative;background:var(--surface);padding:70px 0 76px}.experience-grid{display:grid;grid-template-columns:36% 47%;gap:5%}.experience p+p{margin-top:16px}.experience h2 em{font-size:1.03em}.contact{position:relative;display:grid;grid-template-columns:43% 52%;gap:7%;padding-block:140px 150px}.contact p{margin-top:43px}.contact .contact-details{margin-top:45px;display:flex;flex-wrap:wrap;gap:18px;font-family:'minion-pro',Georgia,serif}.contact-details a:last-child{text-decoration:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:38px;row-gap:45px}.field label{display:block;font-size:26px;font-weight:400}.field input,.field textarea{width:100%;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;min-height:52px;font-size:24px;padding:8px 0;outline-offset:2px}.field textarea{resize:vertical;min-height:86px}.error{color:#ffb6a0;display:block;font-size:16px;line-height:1.4;margin-top:7px}[data-theme=light] .error{color:#982c16}.error:empty{display:none}[aria-invalid=true]{border-color:#ff967c!important}.consent{display:flex;align-items:center;gap:12px;margin-top:28px;font-size:18px;min-height:44px}.consent input{width:22px;height:22px;accent-color:var(--avocado);flex-shrink:0}.submit{margin-top:20px}.submit:disabled{opacity:.55;cursor:wait}.contact #form-status{font-size:18px;margin-top:16px;min-height:28px}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}footer{background:var(--footer);padding-block:32px;font-size:18px;color:var(--muted)}footer span{padding-inline:8px}.access-wrap{position:absolute;bottom:174px;left:0;z-index:10}.access-trigger{width:48px;height:48px;border:0;padding:6px}.access-trigger span{display:block;width:100%;height:100%;background:var(--text);mask:url('../assets/Accessibility_Icon.svg') center/contain no-repeat}.access-panel{position:absolute;left:0;top:56px;width:320px;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 60px #0004}.access-panel[hidden]{display:none}.panel-heading{display:flex;align-items:start;gap:12px}.panel-heading h2{font-size:24px;letter-spacing:-.02em}.close-access{font-size:28px;border:0;min-width:44px;min-height:44px}.access-panel>button{display:block;width:100%;padding:12px;text-align:left;margin-top:9px;border-radius:5px;font-size:16px}.access-panel button[aria-pressed=true]{background:var(--text);color:var(--bg)}.access-panel>a{display:block;margin-top:16px;font-size:16px}.skip{position:fixed;top:12px;left:12px;transform:translateY(-180%);z-index:99;background:var(--text);color:var(--bg);padding:14px}.skip:focus{transform:none}.reveal{opacity:1}.motion-ready .reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.65,.3,1)}.motion-ready .reveal.visible{opacity:1;transform:none}.service p.reveal{transition-delay:90ms}.logo-row:nth-child(even){transition-delay:140ms}.legal{position:relative;max-width:1050px;padding-block:60px 120px;min-height:75vh}.legal h1{margin:40px 0}.legal h2{font-size:30px;margin-top:38px;margin-bottom:12px}.legal p{font-size:20px;line-height:1.65;margin-block:12px}.legal-note{color:var(--muted)}.legal .access-wrap{position:relative;bottom:auto;margin-top:35px}.legal .access-panel{top:auto;bottom:56px}.a11y-links a{text-decoration:underline!important;text-decoration-thickness:2px}.a11y-readable em{font-family:Roboto,Arial,sans-serif;font-style:normal}.a11y-large p,.a11y-large label,.a11y-large input,.a11y-large textarea{font-size:1.3em!important}.a11y-contrast{--text:#fff;--muted:#fff;--logo-color:#fff;--border:#fff;--glow-opacity:0}.a11y-contrast[data-theme=light]{--text:#180014;--muted:#180014;--logo-color:#180014;--border:#180014}.a11y-contrast .gradient{background:none;color:var(--text)}.reduced-motion *{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reduced-motion .glow{transform:none!important}.reduced-motion .reveal{opacity:1;transform:none}
/* Include italic glyph overhang in the gradient paint area without shifting adjacent text. */
.gradient{font-weight:600}
.gradient{padding-inline:.12em .18em;margin-inline:-.12em -.18em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
main{overflow:clip}.contact{grid-template-columns:43% 50%}
/* Equal logo columns preserve the supplied individual sizes and align both rows. */
.logo-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));justify-items:center;align-items:center}
.client-logo{max-width:100%}
.experience-grid{grid-template-columns:36% 48.6%}
.hero h1{line-height:1.05}
.hero .glow{opacity:calc(var(--glow-opacity) * 1.1)}
.hero .rust{left:64%}
@media(max-width:700px){.hero .rust{left:35%}}
.experience p{text-wrap:pretty}
/* Keep focus on the underline, including keyboard focus, without a layout shift. */
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:#fff!important;box-shadow:0 1px 0 #fff}
[data-theme=light] .field input:focus,[data-theme=light] .field textarea:focus{border-bottom-color:var(--text)!important;box-shadow:0 1px 0 var(--text)}
@media(min-width:1600px){.glow{width:650px;filter:blur(85px)}}
@media(max-width:1200px){.header{height:100px}.brand-mark{width:90px;height:30px}.tagline{font-size:18px}.pill{font-size:15px;padding:7px 21px}.header nav{gap:15px}.hero{padding-top:45px;padding-bottom:105px}.intro{margin-top:45px}.access-wrap{bottom:100px}.service-list{margin-top:45px;gap:27px}.service{grid-template-columns:100px 1fr;gap:50px}.service h3{font-size:15px}.clients{padding-top:120px;padding-bottom:145px}.logo-grid{margin-top:65px;column-gap:38px;row-gap:45px}.logo-row{gap:20px}.client-logo{height:40px;width:calc(var(--width)*.65)}.experience{padding-block:45px}.contact{padding-block:90px}.contact p{margin-top:28px}.field label{font-size:18px}.field input,.field textarea{font-size:18px}.form-grid{gap:28px 25px}.consent{font-size:14px}.contact .contact-details{gap:12px;margin-top:28px}footer{font-size:13px;padding-block:24px}}
@media(max-width:700px){.wrap{width:86%}.header{height:96px;align-items:flex-start;padding-top:22px}.brand-mark{width:88px}.tagline{left:0;transform:none;top:63px;font-size:16px}.header nav{gap:9px}.theme-toggle{width:44px;height:44px}.pill{padding-inline:18px}.hero{padding-top:48px;padding-bottom:95px}h1{font-size:clamp(35px,6.8vw,48px);line-height:1.16}.headline-line{display:inline}.headline-line:after{content:' '}.intro{width:92%;margin:36px 0 0 auto;font-size:18px;line-height:1.5}.hero .glows{overflow:clip;inset:-30px -8vw -40px}.glow{width:330px;filter:blur(45px)}.cyan{left:50%;top:20px}.avocado{left:70%;top:180px}.rust{left:40%;top:230px}.access-wrap{bottom:30px}.access-panel{width:min(320px,86vw)}h2{font-size:36px}.service-list{margin:36px 0 0;gap:28px}.service{grid-template-columns:1fr;gap:10px}.service h3{text-align:left;font-size:17px}.service h3 br{display:none}.service p{font-size:18px}.clients{padding-block:95px 110px}.clients h2{font-size:32px}.clients h2 br{display:none}.logo-grid{grid-template-columns:1fr;margin-top:44px;row-gap:26px}.client-logo{height:40px;width:calc(var(--width)*.65)}.logo-row{gap:30px}.experience{padding-block:42px}.experience-grid{grid-template-columns:1fr;gap:28px}.experience-grid h2 br:first-child{display:none}.experience p{font-size:18px}.experience-region .glows{inset:-70px 0 -80px;overflow:clip}.contact{grid-template-columns:1fr;gap:40px;padding-block:65px 70px}.contact h2 br{display:none}.contact p{font-size:18px;margin-top:20px}.contact .contact-details{font-size:19px}.field label{font-size:16px}.field input,.field textarea{font-size:18px}.form-grid{column-gap:20px}.consent{font-size:15px}footer{font-size:11px}footer span{padding-inline:3px}.legal{padding-top:35px}.legal h1{font-size:43px}.legal p{font-size:18px}.desktop-break{display:none}}
.a11y-large .intro,.a11y-large .service p,.a11y-large .experience p,.a11y-large .contact p{font-size:clamp(22px,1.9vw,36px)!important}.a11y-large .field label,.a11y-large .field input,.a11y-large .field textarea{font-size:clamp(22px,1.8vw,32px)!important}.a11y-large .consent label{font-size:20px!important}.a11y-large .legal p{font-size:25px!important}.a11y-large .tagline{font-size:24px!important}
@media(min-width:701px){.logo-row:nth-child(2){transition-delay:0s}.logo-row:nth-child(3),.logo-row:nth-child(4){transition-delay:150ms}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}}
.access-wrap,.legal .access-wrap{position:fixed;left:max(20px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));margin:0;z-index:50}
.access-trigger{background:var(--bg);border-radius:50%}
.access-panel,.legal .access-panel{top:auto;bottom:60px;max-height:calc(100dvh - 110px);overflow-y:auto;width:min(320px,calc(100vw - 40px))}
.service-toggle{display:none}
.field-wide{grid-column:1/-1}
.select-wrap{position:relative}
.field select{display:block;width:100%;min-width:0;min-height:52px;padding:8px 32px 8px 0;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:inherit;font:inherit;font-size:24px;appearance:none;cursor:pointer;transition:background-color .5s,color .5s,border-color .5s}
.field select option{background:var(--bg);color:var(--text)}
.select-wrap svg{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;pointer-events:none}
.field select:focus{outline:none;border-bottom-color:#fff!important;box-shadow:0 1px 0 #fff}
[data-theme=light] .field select:focus{border-bottom-color:var(--text)!important;box-shadow:0 1px 0 var(--text)}
.form-grid>.field{min-width:0}
.a11y-large .field select{font-size:clamp(22px,1.8vw,32px)!important}
@media(max-width:1200px){.field select{font-size:18px}}
@media(max-width:700px){#contact-form .form-grid{grid-template-columns:1fr}.field select{font-size:18px}}
@media(min-width:701px){
 .service h3{margin-inline-start:-40px}
 .service-desktop-title{white-space:nowrap}
}
/* Desktop header stays in flow while the full-width glass layer blurs content beneath it. */
@media(min-width:701px){
 html{scroll-padding-top:175px}
 main{overflow-clip-margin:180px}
 .header{position:sticky;top:0;z-index:40;isolation:isolate}
 .header::before{content:'';position:absolute;inset:0;left:50%;width:100vw;transform:translateX(-50%);z-index:-1;pointer-events:none;background:transparent;transition:background-color .5s,backdrop-filter .5s,-webkit-backdrop-filter .5s}
 .header-scrolled .header::before{background:color-mix(in srgb,var(--bg) 10%,transparent)}
 @supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .header::before{backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}
  .header-scrolled .header::before{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
 }
}
@media(min-width:701px) and (max-width:1200px){html{scroll-padding-top:135px}}
.service-panel,.service-panel-inner{display:contents}
@media(max-width:700px){
 .services-enhanced .service-list{gap:0}
 .services-enhanced .service{display:block;border-bottom:1px solid var(--border)}
 .services-enhanced .service:last-child{border-bottom:0}
 .services-enhanced .service h3{padding:0}
 .services-enhanced .service-desktop-title{display:none}
 .services-enhanced .service-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:52px;padding:14px 0;border:0;text-align:left;font-size:17px;font-weight:600;line-height:1.3}
 .service-toggle svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:var(--cyan);stroke-width:2;transition:transform .35s ease}
 .service-open .service-toggle svg{transform:rotate(90deg)}
 .services-enhanced .service-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .4s ease,opacity .3s ease}
 .services-enhanced .service-open .service-panel{grid-template-rows:1fr;opacity:1}
 .services-enhanced .service-panel-inner{display:block;min-height:0;overflow:hidden}
 .services-enhanced .service-panel p.reveal{opacity:1;transform:none;transition:none;padding-bottom:18px;line-height:1.5}
}
