/* Fox Alfa v2 — camada de movimento e efeitos.
   Tudo que é animação fica sob html.fx (desativado com "reduzir movimento").
   Efeitos de mouse ficam sob html.fx-fine (só em mouse/trackpad). */

/* ---------- Conversa de IA (base: visível e estática sem .fx) ---------- */
.fx-chat{margin:48px 0 0;max-width:460px;border-radius:26px;padding:0 0 18px;background:linear-gradient(150deg,rgba(255,255,255,.72),rgba(255,255,255,.42));border:1px solid rgba(255,255,255,.85);box-shadow:inset 0 1.5px 0 #fff,0 30px 60px -30px rgba(90,55,25,.35),0 2px 6px rgba(90,55,25,.06);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);overflow:hidden}
.fx-chat-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid rgba(37,35,33,.08)}
.fx-chat-head strong{display:block;font-size:13px;font-weight:600}
.fx-chat-head small{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.fx-chat-head small i{width:7px;height:7px;border-radius:50%;background:var(--orange)}
.fx-chat-head em{margin-left:auto;font-style:normal;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#9e4218;border:1px solid rgba(158,66,24,.3);border-radius:99px;padding:4px 9px}
.fx-chat-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:#fff8f0;font:700 14px/1 var(--display);letter-spacing:.04em}
.fx-chat-log{list-style:none;margin:0;padding:16px 18px 0;display:flex;flex-direction:column;justify-content:flex-end;gap:8px}
.msg{max-width:82%;padding:10px 14px;font-size:13.5px;line-height:1.45;border-radius:18px}
.msg.in{align-self:flex-end;background:#2a2622;color:#f7efe4;border-bottom-right-radius:6px}
.msg.out{align-self:flex-start;background:#fff;color:var(--ink);border-bottom-left-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.msg.sys{align-self:center;max-width:none;font-size:11px;font-weight:600;letter-spacing:.02em;color:#9e4218;background:rgba(230,91,24,.1);border:1px solid rgba(230,91,24,.25);border-radius:99px;padding:7px 13px;margin-top:4px}
.fx-typing{display:none}
.fx-marquee{display:none}
.method h2 .fx-phrase{color:inherit}
.method h2 .fx-phrase.is-muted{color:var(--muted)}
.fx-send-busy{display:none}

/* ---------- Grão de papel/cerâmica ---------- */
.fx.fx-fine body::after{content:'';position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:fx-grain 1.2s steps(6) infinite}
@keyframes fx-grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* ---------- Fundo contínuo entre seções ---------- */
.fx .fx-bg{position:fixed;inset:0;z-index:-1;background:var(--paper);transition:background-color .9s var(--ease)}
@media(min-width:761px){.fx .services,.fx .projects,.fx .method,.fx .ai-section,.fx .about,.fx .contact{background:transparent}}
.fx .projects .button-light{box-shadow:0 0 0 1px rgba(38,29,21,.14)}
.fx footer{background:var(--paper);position:relative}
.fx .ai-section{border-top-color:transparent}

/* ---------- Revelação suave ao rolar ---------- */
.fx [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.fx [data-reveal].is-in{opacity:1;transform:none}

/* ---------- Cursor ---------- */
.fx-fine.fx-cursor-on,.fx-fine.fx-cursor-on body,.fx-fine.fx-cursor-on a,.fx-fine.fx-cursor-on button,.fx-fine.fx-cursor-on summary,.fx-fine.fx-cursor-on label{cursor:none}
.fx-cursor{position:fixed;left:0;top:0;z-index:100;pointer-events:none;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--orange);display:grid;place-items:center;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background-color .3s,opacity .25s;will-change:transform}
.fx-cursor span{font-size:11px;font-weight:600;color:#fff8f0;white-space:nowrap;opacity:0;transform:scale(.6);transition:opacity .2s,transform .3s var(--ease)}
.fx-cursor.is-hover{width:44px;height:44px;margin:-22px 0 0 -22px;background:rgba(230,91,24,.22);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.fx-cursor.has-label{width:84px;height:84px;margin:-42px 0 0 -42px;background:var(--orange)}
.fx-cursor.has-label span{opacity:1;transform:none}
.fx-cursor.on-orange{background:#261d15}.fx-cursor.on-orange.is-hover:not(.has-label){background:rgba(38,29,21,.18)}
.fx-cursor.is-hidden{opacity:0}

/* ---------- 1. O que fazemos ---------- */
.fx .service-list h3{background:linear-gradient(90deg,transparent 0 50%,currentColor 50% 100%);background-size:200% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;-webkit-text-stroke:1.2px transparent;transition:background-position .7s var(--ease),-webkit-text-stroke-color .4s}
.fx .service-list summary:hover h3,.fx .service-list summary:focus-visible h3{background-position:0 0;-webkit-text-stroke-color:#ee884e}
.fx .service-list summary{transition:padding .5s var(--ease)}
.fx-fine .service-list summary:hover{padding-left:14px}
.fx .service-list details.is-closing .plus::after{transform:rotate(90deg)}
.fx .service-body{overflow:hidden}
.fx-preview{position:fixed;left:0;top:0;z-index:40;pointer-events:none;width:300px;height:210px;margin:-105px 0 0 -150px;border-radius:16px;overflow:hidden;clip-path:inset(50% 50% 50% 50% round 16px);transition:clip-path .55s var(--ease);box-shadow:0 30px 60px -20px rgba(0,0,0,.5);will-change:transform}
.fx-preview.is-on{clip-path:inset(0 0 0 0 round 16px)}
.fx-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform .8s var(--ease),opacity .3s}
.fx-preview.is-on img{transform:scale(1)}
.fx-preview.tint::after{content:'';position:absolute;inset:0;background:var(--orange);mix-blend-mode:multiply;opacity:.55}

/* ---------- 2. Bloco laranja ---------- */
.fx .projects{position:relative;overflow:hidden;isolation:isolate}
.fx .fx-marquee{display:block;position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:-1;pointer-events:none;overflow:hidden}
.fx .fx-marquee-track{display:flex;width:max-content;animation:fx-marquee 48s linear infinite}
.fx .fx-marquee span{font:700 clamp(120px,19vw,300px)/1 var(--display);text-transform:uppercase;letter-spacing:-.02em;white-space:nowrap;color:rgba(38,29,21,.075);padding-right:.2em}
@keyframes fx-marquee{to{transform:translateX(-50%)}}
.fx .fx-fill .fx-line{position:relative;display:inline-block;white-space:nowrap;color:transparent;-webkit-text-stroke:1.5px #261d15}
.fx .fx-fill .fx-line::after{content:attr(data-text);position:absolute;left:0;top:0;color:#261d15;-webkit-text-stroke:0;clip-path:inset(-10% calc(100% - var(--p,0) * 100%) -10% 0)}
.fx [data-magnetic]{transition:transform .45s var(--ease),background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease);will-change:transform}

/* ---------- 3. Como trabalhamos ---------- */
.fx .method{align-items:start}
.fx .method-intro{position:sticky;top:140px}
.fx .method h2 .fx-phrase{color:var(--ink);opacity:.18;transition:opacity .6s var(--ease),color .6s var(--ease)}
.fx .method h2 .fx-phrase.is-active{opacity:1}
.fx .method h2 .fx-phrase.is-muted.is-active{color:#b44915}
.fx .method-steps{position:relative;padding-left:44px}
.fx .method-steps::before,.fx .method-steps::after{content:'';position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:var(--line)}
.fx .method-steps::after{background:var(--orange);width:2px;left:4.5px;transform-origin:top;transform:scaleY(var(--p,0))}
.fx .method-steps li{position:relative;padding:58px 0;border-top:1px solid var(--line)}
.fx .method-steps li:first-child{padding-top:0;border-top:0}
.fx .method-steps li::before{content:'';position:absolute;left:-44px;top:64px;width:11px;height:11px;border-radius:50%;background:var(--paper);border:1.5px solid var(--line);z-index:1;transition:background .4s,border-color .4s,transform .5s var(--ease)}
.fx .method-steps li:first-child::before{top:6px}
.fx .method-steps li>div{opacity:.3;transform:translateX(-6px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.fx .method-steps li>span{transition:color .4s}
.fx .method-steps li.is-lit::before{background:var(--orange);border-color:var(--orange);transform:scale(1.25)}
.fx .method-steps li.is-lit>div{opacity:1;transform:none}

/* ---------- 4. Inteligência ---------- */
.fx .ai-section{align-items:start}
.fx .ai-title h2 span{background:linear-gradient(100deg,#b44813 0 42%,#ff9a5a 50%,#b44813 58% 100%);background-size:260% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.fx .ai-title.is-in h2 span{animation:fx-shine 5.5s var(--ease) .4s infinite}
@keyframes fx-shine{0%{background-position:100% 0}45%,100%{background-position:0 0}}
.fx .fx-chat-log{height:360px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 44px);mask-image:linear-gradient(180deg,transparent 0,#000 44px)}
.fx .fx-chat-log>li{display:none}
.fx .fx-chat-log>li.is-shown{display:block;animation:fx-pop .45s var(--ease) both}
.fx .fx-chat-log>li.fx-typing.is-shown{display:flex}
.fx .fx-chat.is-fading .fx-chat-log>li{opacity:0;transition:opacity .5s}
@keyframes fx-pop{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
.fx .fx-typing{align-self:flex-start;gap:4px;background:#fff;border-radius:18px;border-bottom-left-radius:6px;padding:13px 15px}
.fx .fx-typing i{width:6px;height:6px;border-radius:50%;background:#b8aea2;animation:fx-dot 1s infinite}
.fx .fx-typing i:nth-child(2){animation-delay:.15s}.fx .fx-typing i:nth-child(3){animation-delay:.3s}
@keyframes fx-dot{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.fx .ai-content article{transition:opacity .5s var(--ease),transform .5s var(--ease)}
.fx .ai-content.is-live article{opacity:.35}
.fx .ai-content.is-live article.is-active{opacity:1;transform:translateX(8px)}
.fx .ai-content article>span{transition:letter-spacing .5s var(--ease)}
.fx .ai-content.is-live article.is-active>span{letter-spacing:.24em}

/* ---------- 5. Somos a Fox Alfa ---------- */
.fx .about-image{clip-path:ellipse(0% 0% at 78% 88%);transition:clip-path 1.6s cubic-bezier(.7,0,.2,1)}
.fx .about-image.is-in{clip-path:ellipse(150% 150% at 78% 88%)}
.fx .about-image img{transform:translate3d(var(--px,0px),var(--py,0px),0) scale(1.14);transition:transform .9s cubic-bezier(.2,.7,.2,1)}

/* ---------- 6. Contato ---------- */
.fx .contact{position:relative;isolation:isolate;overflow:hidden}
.fx-fine .contact::before{content:'';position:absolute;z-index:-1;width:720px;height:720px;left:var(--mx,70%);top:var(--my,40%);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(230,91,24,.22),rgba(230,91,24,.06) 40%,transparent 68%);pointer-events:none;opacity:0;transition:left .6s cubic-bezier(.2,.7,.2,1),top .6s cubic-bezier(.2,.7,.2,1),opacity .8s var(--ease)}
.fx-fine .contact.is-glow::before{opacity:1}
.fx .interests span{border-radius:99px;border-color:rgba(255,255,255,.2);background:linear-gradient(150deg,rgba(255,255,255,.1),rgba(255,255,255,.03));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.14);padding:11px 18px;transition:transform .35s var(--ease),background .25s,color .25s,border-color .25s}
.fx .interests label:hover span{transform:translateY(-2px);border-color:rgba(255,255,255,.4)}
.fx .interests input:checked+span{background:linear-gradient(150deg,#fffaf2,#efe4d5);color:#292521;border-color:#fff;box-shadow:inset 0 1px 0 #fff,0 10px 24px -10px rgba(230,91,24,.6)}
.fx .fx-send{position:relative;overflow:hidden}
.fx .fx-send.is-busy .fx-send-label{visibility:hidden}
.fx .fx-send.is-busy .fx-send-busy{display:flex;align-items:center;gap:10px;position:absolute;inset:0;justify-content:center}
.fx .fx-send-busy i{width:28px;height:2px;background:currentColor;position:relative;overflow:hidden;opacity:.35}
.fx .fx-send-busy i::after{content:'';position:absolute;inset:0;background:currentColor;animation:fx-load 1s var(--ease) infinite}
@keyframes fx-load{from{transform:translateX(-100%)}to{transform:translateX(100%)}}

/* ---------- Celular ---------- */
@media(max-width:760px){
 .fx-chat{margin-top:36px}
 .fx .fx-chat-log{height:330px}
 .fx .method-intro{position:static}
 .fx .method-steps li{padding:34px 0}
 .fx .method-steps li::before{top:40px}
 .fx .fx-marquee span{font-size:34vw}
 .fx .projects h2.fx-fill{font-size:clamp(44px,16vw,110px)}
 .fx .method h2 .fx-phrase{opacity:1}
 .fx .method h2 .fx-phrase.is-muted{color:var(--muted)}
}
