/* FlipForge homepage visual proof — product-native, restrained, and evidence-led. */
:root{--ff-vp-gold:#d8b64a;--ff-vp-silver:#c7cbd2;--ff-vp-ink:#05070b;--ff-vp-panel:#090d14;--ff-vp-line:rgba(255,255,255,.09)}

/* Hero becomes a visual product theatre instead of a text card. */
.ff-home-focused .ff-decision-motion{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);gap:18px;max-width:780px;padding:16px;align-items:stretch;background:radial-gradient(circle at 18% 14%,rgba(216,182,74,.12),transparent 27%),linear-gradient(145deg,#0b1019,#03060b 72%)}
.ff-card-stage{position:relative;min-height:500px;border:1px solid rgba(255,255,255,.07);border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 32%,rgba(216,182,74,.1),transparent 32%),linear-gradient(180deg,#090d14,#05070b)}
.ff-card-stage::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to bottom,#000,transparent 88%)}
.ff-card-stage-label{position:absolute;z-index:3;top:14px;left:14px;color:#8f96a1;font-size:8px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.ff-card-slab{position:absolute;z-index:2;top:64px;left:50%;width:154px;height:236px;padding:9px;transform:translateX(-50%) rotate(-4deg);border:1px solid rgba(235,238,242,.42);border-radius:13px;background:linear-gradient(145deg,rgba(239,241,245,.16),rgba(255,255,255,.04));box-shadow:0 26px 55px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.08);backdrop-filter:blur(5px)}
.ff-slab-label{height:40px;padding:6px 7px;border-radius:6px;background:#f3f4f5;color:#11151b;box-sizing:border-box}
.ff-slab-label span{display:block;font-size:7px;font-weight:900;letter-spacing:.07em}.ff-slab-label strong{display:block;margin-top:2px;font-size:10px;letter-spacing:-.01em}
.ff-card-face{position:relative;height:180px;margin-top:7px;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,#111722 0 34%,#25200f 34% 48%,#0b0f16 48% 100%);box-shadow:inset 0 0 0 1px rgba(216,182,74,.27)}
.ff-card-face::before{content:"";position:absolute;inset:-20% -45%;transform:rotate(-28deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),rgba(216,182,74,.22),rgba(255,255,255,.06),transparent)}
.ff-card-face::after{content:"";position:absolute;inset:12px;border:1px solid rgba(216,182,74,.3);border-radius:5px}
.ff-card-mark{position:absolute;z-index:2;top:46px;left:50%;width:62px;height:62px;transform:translateX(-50%);filter:drop-shadow(0 12px 18px rgba(0,0,0,.45))}
.ff-card-face .ff-card-type{position:absolute;z-index:2;left:14px;bottom:28px;color:#d7dbe1;font-size:7px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.ff-card-face .ff-card-serial{position:absolute;z-index:2;right:14px;bottom:12px;color:var(--ff-vp-gold);font-size:12px;font-weight:900}.ff-card-face .ff-card-line{position:absolute;z-index:2;left:14px;bottom:12px;width:55px;height:2px;background:linear-gradient(90deg,var(--ff-vp-gold),transparent)}
.ff-scan-bracket{position:absolute;z-index:4;width:28px;height:28px;border-color:var(--ff-vp-gold);border-style:solid;opacity:.76}.ff-scan-bracket.tl{top:51px;left:24px;border-width:2px 0 0 2px}.ff-scan-bracket.tr{top:51px;right:24px;border-width:2px 2px 0 0}.ff-scan-bracket.bl{top:286px;left:24px;border-width:0 0 2px 2px}.ff-scan-bracket.br{top:286px;right:24px;border-width:0 2px 2px 0}
.ff-evidence-ticket{position:absolute;z-index:3;left:14px;right:14px;display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(6,10,16,.88);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.ff-evidence-ticket::before{content:"";width:6px;height:6px;border-radius:50%;background:#6f7782}.ff-evidence-ticket small{display:block;color:#737b87;font-size:6px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.ff-evidence-ticket strong{display:block;margin-top:2px;color:#e9ebee;font-size:9px;line-height:1.2}.ff-evidence-ticket em{font-style:normal;color:#8f96a1;font-size:6px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.ff-evidence-ticket.exact{top:338px;border-color:rgba(216,182,74,.28)}.ff-evidence-ticket.exact::before{background:var(--ff-vp-gold);box-shadow:0 0 15px rgba(216,182,74,.45)}.ff-evidence-ticket.exact em{color:var(--ff-vp-gold)}
.ff-evidence-ticket.mismatch{top:393px}.ff-evidence-ticket.mismatch::before{background:#b76f62}.ff-evidence-ticket.mismatch em{color:#d69a90}
.ff-evidence-ticket.context{top:448px}.ff-evidence-ticket.context::before{background:#78879b}.ff-evidence-ticket.context em{color:#aeb9c7}
.ff-motion-console{position:relative;z-index:2;min-width:0;padding:2px 2px 0}

.ff-decision-motion.is-replaying .ff-card-slab{animation:ff-vp-card-settle 1.1s cubic-bezier(.16,.8,.25,1) both}
.ff-decision-motion.is-replaying .ff-scan-bracket{animation:ff-vp-bracket 1.3s ease 1.05s both}
.ff-decision-motion.is-replaying .ff-evidence-ticket{animation:ff-vp-ticket .65s ease both}.ff-decision-motion.is-replaying .ff-evidence-ticket.exact{animation-delay:1.8s}.ff-decision-motion.is-replaying .ff-evidence-ticket.mismatch{animation-delay:2.55s}.ff-decision-motion.is-replaying .ff-evidence-ticket.context{animation-delay:3.25s}
@keyframes ff-vp-card-settle{0%{opacity:0;transform:translateX(-50%) translateY(28px) rotate(-8deg) scale(.94)}100%{opacity:1;transform:translateX(-50%) translateY(0) rotate(-4deg) scale(1)}}
@keyframes ff-vp-bracket{0%{opacity:0;transform:scale(1.3)}45%{opacity:1;transform:scale(.94)}100%{opacity:.76;transform:scale(1)}}
@keyframes ff-vp-ticket{0%{opacity:0;transform:translateX(-12px)}100%{opacity:1;transform:translateX(0)}}

/* Product-native visual gallery. */
.ff-visual-showcase{max-width:1180px;margin:64px auto 0;padding:0 24px}
.ff-visual-showcase-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.65fr);gap:28px;align-items:end;margin-bottom:20px}.ff-visual-showcase-head h2{margin:6px 0 0;max-width:700px;color:#fff;font-size:clamp(32px,4.4vw,54px);line-height:1;letter-spacing:-.045em}.ff-visual-showcase-head p{margin:0;color:#9ea6b1;line-height:1.6}
.ff-visual-mosaic{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:14px}.ff-visual-mosaic-stack{display:grid;gap:14px}
.ff-visual-shot{position:relative;margin:0;min-height:0;border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden;background:#070a10;box-shadow:0 26px 70px rgba(0,0,0,.3)}.ff-visual-shot::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 62%,rgba(3,5,8,.88))}.ff-visual-shot img{display:block;width:100%;height:100%;min-height:250px;object-fit:cover;filter:saturate(.86) contrast(1.03)}.ff-visual-shot.large img{min-height:520px}.ff-visual-shot figcaption{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;color:#fff}.ff-visual-shot figcaption span{display:block;color:var(--ff-vp-gold);font-size:8px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.ff-visual-shot figcaption strong{display:block;margin-top:5px;font-size:17px;line-height:1.25}

/* False Confidence gets an actual visual grammar. */
.ff-home-focused.ff-aw-home .ff-problem-grid article:nth-child(2){display:block!important}.ff-home-focused.ff-aw-home .ff-problem-grid{grid-template-columns:repeat(3,1fr)!important}
.ff-false-confidence .ff-problem-grid article{position:relative;padding-top:118px!important;overflow:hidden}
.ff-false-confidence .ff-problem-grid article::before,.ff-false-confidence .ff-problem-grid article::after{content:"";position:absolute}
.ff-false-confidence .ff-problem-grid article:nth-child(1)::before{top:28px;left:34px;width:52px;height:68px;border:1px solid rgba(216,182,74,.55);border-radius:7px;transform:rotate(-7deg);box-shadow:18px 8px 0 -1px #0a0f17,18px 8px 0 0 rgba(255,255,255,.16)}
.ff-false-confidence .ff-problem-grid article:nth-child(1)::after{top:44px;left:96px;width:36px;height:2px;background:#b76f62;box-shadow:0 10px 0 #b76f62,0 20px 0 #b76f62}
.ff-false-confidence .ff-problem-grid article:nth-child(2)::before{top:38px;left:34px;width:10px;height:55px;border-radius:4px;background:var(--ff-vp-gold);box-shadow:22px 20px 0 rgba(255,255,255,.1),44px 30px 0 rgba(255,255,255,.07),66px 34px 0 rgba(255,255,255,.05)}
.ff-false-confidence .ff-problem-grid article:nth-child(2)::after{top:89px;left:30px;width:96px;height:1px;background:rgba(255,255,255,.13)}
.ff-false-confidence .ff-problem-grid article:nth-child(3)::before{top:30px;left:34px;width:104px;height:64px;border-left:1px solid rgba(255,255,255,.13);border-bottom:1px solid rgba(255,255,255,.13);background:linear-gradient(150deg,transparent 0 48%,rgba(216,182,74,.8) 49% 51%,transparent 52%)}
.ff-false-confidence .ff-problem-grid article:nth-child(3)::after{top:41px;left:112px;width:24px;height:24px;border:1px solid rgba(216,182,74,.6);border-radius:50%;box-shadow:0 0 0 5px rgba(216,182,74,.05)}

/* Busted Comp reads like evidence tickets, not buttons. */
.ff-aw-comp-button{position:relative;min-height:150px;padding:64px 18px 18px;overflow:hidden}.ff-aw-comp-button::before{content:"";position:absolute;top:14px;left:18px;width:34px;height:42px;border:1px solid rgba(255,255,255,.16);border-radius:4px;background:linear-gradient(135deg,#111824,#2a2410)}.ff-aw-comp-button::after{content:"SALE";position:absolute;top:27px;left:65px;color:#5f6772;font-size:8px;font-weight:900;letter-spacing:.16em}.ff-aw-comp-button span{font-size:12px;color:var(--ff-vp-gold)}.ff-aw-comp-button strong{font-size:16px}.ff-aw-comp-button.is-selected{transform:translateY(-3px);box-shadow:0 16px 34px rgba(0,0,0,.22)}

/* Proof numbers become visual signals. */
.ff-validation-grid article{position:relative;overflow:hidden}.ff-validation-grid article::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:var(--ff-proof-width,100%);background:linear-gradient(90deg,var(--ff-vp-gold),rgba(216,182,74,.12))}.ff-validation-grid article:nth-child(1){--ff-proof-width:100%}.ff-validation-grid article:nth-child(2){--ff-proof-width:74%}.ff-validation-grid article:nth-child(3){--ff-proof-width:26%}.ff-validation-grid article:nth-child(4){--ff-proof-width:18%}

/* Outcome review gets a continuous visual timeline. */
.ff-aw-accountability .ff-aw-question-grid{position:relative;grid-template-columns:repeat(4,1fr);gap:10px}.ff-aw-accountability .ff-aw-question-grid::before{content:"";position:absolute;z-index:0;top:30px;left:8%;right:8%;height:1px;background:linear-gradient(90deg,rgba(216,182,74,.15),rgba(216,182,74,.75),rgba(216,182,74,.15))}.ff-aw-accountability .ff-aw-question{z-index:1;min-height:220px;padding-top:58px}.ff-aw-accountability .ff-aw-question::after{content:"";position:absolute;top:22px;left:28px;width:16px;height:16px;border:2px solid var(--ff-vp-gold);border-radius:50%;background:#080b10;box-shadow:0 0 0 6px rgba(216,182,74,.06)}

/* Final conversion gets depth without stock imagery. */
.ff-final-cta .callout{position:relative;overflow:hidden}.ff-final-cta .callout::before,.ff-final-cta .callout::after{content:"";position:absolute;right:6%;top:50%;width:118px;height:172px;border:1px solid rgba(216,182,74,.28);border-radius:12px;background:linear-gradient(145deg,rgba(216,182,74,.08),rgba(255,255,255,.02));transform-origin:center;pointer-events:none}.ff-final-cta .callout::before{transform:translateY(-50%) rotate(-11deg)}.ff-final-cta .callout::after{transform:translate(38px,-46%) rotate(8deg);border-color:rgba(255,255,255,.12)}.ff-final-cta .callout>div,.ff-final-cta .callout>a{position:relative;z-index:2}

@media(max-width:980px){.ff-home-focused .ff-decision-motion{grid-template-columns:1fr;max-width:680px}.ff-card-stage{min-height:350px}.ff-card-slab{top:50px}.ff-scan-bracket.tl,.ff-scan-bracket.tr{top:40px}.ff-scan-bracket.bl,.ff-scan-bracket.br{top:274px}.ff-evidence-ticket{left:auto;width:min(46%,260px)}.ff-evidence-ticket.exact{top:72px;right:18px}.ff-evidence-ticket.mismatch{top:132px;right:18px}.ff-evidence-ticket.context{top:192px;right:18px}.ff-visual-showcase-head,.ff-visual-mosaic{grid-template-columns:1fr}.ff-visual-mosaic-stack{grid-template-columns:1fr 1fr}.ff-visual-shot.large img{min-height:420px}.ff-aw-accountability .ff-aw-question-grid{grid-template-columns:repeat(2,1fr)}.ff-aw-accountability .ff-aw-question-grid::before{display:none}}
@media(max-width:700px){.ff-home-focused .ff-decision-motion{padding:11px;gap:11px}.ff-card-stage{min-height:282px}.ff-card-slab{top:42px;width:118px;height:184px;padding:7px}.ff-slab-label{height:33px;padding:5px}.ff-slab-label span{font-size:5px}.ff-slab-label strong{font-size:8px}.ff-card-face{height:138px;margin-top:5px}.ff-card-mark{top:33px;width:48px;height:48px}.ff-card-face .ff-card-type{font-size:5px;left:10px;bottom:23px}.ff-card-face .ff-card-serial{font-size:9px;right:10px;bottom:9px}.ff-card-face .ff-card-line{left:10px;bottom:9px;width:40px}.ff-scan-bracket{width:20px;height:20px}.ff-scan-bracket.tl{top:34px;left:16px}.ff-scan-bracket.tr{top:34px;right:16px}.ff-scan-bracket.bl{top:224px;left:16px}.ff-scan-bracket.br{top:224px;right:16px}.ff-evidence-ticket{right:10px;width:41%;padding:7px;grid-template-columns:6px 1fr}.ff-evidence-ticket em{display:none}.ff-evidence-ticket small{font-size:5px}.ff-evidence-ticket strong{font-size:7px}.ff-evidence-ticket.exact{top:52px}.ff-evidence-ticket.mismatch{top:102px}.ff-evidence-ticket.context{top:152px}.ff-visual-showcase{padding:0 18px;margin-top:44px}.ff-visual-showcase-head{gap:10px}.ff-visual-mosaic-stack{grid-template-columns:1fr}.ff-visual-shot.large img,.ff-visual-shot img{min-height:280px}.ff-home-focused.ff-aw-home .ff-problem-grid{grid-template-columns:1fr!important}.ff-aw-accountability .ff-aw-question-grid{grid-template-columns:1fr}.ff-final-cta .callout::before,.ff-final-cta .callout::after{opacity:.28;right:-35px}}
@media(prefers-reduced-motion:reduce){.ff-decision-motion.is-replaying .ff-card-slab,.ff-decision-motion.is-replaying .ff-scan-bracket,.ff-decision-motion.is-replaying .ff-evidence-ticket{animation:none!important;opacity:1!important}}
