/* FIF Tools: site-wide styles. Square corners and brand colours only (paper, ink, marigold, amber, saffron, ember), like the rest of FIF. */

/* ---------- Nav: Tools gets a small square "new" marker ---------- */
.nav-links a[href$="/tools/"]{position:relative}
.nav-links a[href$="/tools/"]::after{content:"";position:absolute;top:-1px;right:-10px;width:6px;height:6px;background:var(--saffron)}
.m-menu nav a[href$="/tools/"]{font-weight:600}

/* ---------- Mobile bottom bar: six items ---------- */
.b-nav{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
.b-nav a{font-size:10.5px}

/* =========================================================
   Tool cards: a FIF card with a colour bar, icon tile and a live preview
   ========================================================= */
.ft-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.ft-card{
  --a:var(--saffron);--tile:var(--a);--tilefg:var(--ink);--fg:var(--paper);--mut:#C9C0AE;--big:var(--a);--track:#34312B;--gofg:var(--ink);
  position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;gap:16px;
  padding:26px 24px 24px;min-height:330px;border-radius:0;
  background:var(--ink);
  background:radial-gradient(80% 70% at 100% 0%,color-mix(in srgb,var(--a) 26%,transparent),transparent 62%),radial-gradient(60% 50% at 0% 100%,color-mix(in srgb,var(--a) 10%,transparent),transparent 70%),var(--ink);
  color:var(--fg);text-decoration:none;
  border:1px solid #2A2722;border-top:0;box-shadow:0 1px 2px rgba(28,27,25,.2),0 18px 36px -20px rgba(28,27,25,.6);
  transition:transform 220ms var(--ease),box-shadow 220ms var(--ease),border-color 220ms ease
}
/* Colour bar on top, the four-step brand ramp grows from it on hover */
.ft-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--a);transition:height 260ms var(--ease)}
.ft-card::after{content:attr(data-n);position:absolute;right:14px;bottom:-26px;z-index:-1;font-family:var(--mono);font-size:130px;font-weight:700;line-height:1;color:#2A2722;transition:transform 400ms var(--ease),color 300ms ease}
a.ft-card:hover{transform:translateY(-4px);border-color:var(--a);color:var(--fg);box-shadow:0 2px 4px rgba(28,27,25,.2),0 28px 50px -20px color-mix(in srgb,var(--a) 55%,transparent)}
a.ft-card:hover::after{color:#34312B}
a.ft-card:hover::before{height:8px}
a.ft-card:hover::after{transform:translateY(-8px)}
a.ft-card:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.ft-c-top{display:flex;justify-content:space-between;align-items:center}
.ft-ico{width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--tile);color:var(--tilefg);transition:transform 260ms var(--ease)}
a.ft-card:hover .ft-ico{transform:translateY(-2px) rotate(-6deg)}
.ft-c-n{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--mut)}
.ft-c-tx{display:flex;flex-direction:column;gap:6px}
.ft-c-tx .nm{font-size:24px;font-weight:500;letter-spacing:-.015em;line-height:1.15}
.ft-c-tx .tg{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.ft-viz{display:flex;flex-direction:column;gap:8px;margin-top:auto}
.vz-big{font-family:var(--mono);font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.08;color:var(--big);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.vz-l{font-size:13px;line-height:1.45;color:var(--mut)}
.vz-l b{color:var(--fg);font-weight:600}
.vz-bar{display:block;height:10px;background:var(--track);overflow:hidden}
.vz-bar i{display:block;width:4px;height:100%;background:var(--a);animation:vz-blink 1.6s ease-in-out infinite}
.vz-hist{display:flex;align-items:flex-end;gap:5px;height:72px}
.vz-hist i{flex:1;background:var(--track);transform-origin:bottom}
.vz-hist i.on{background:var(--a)}
a.ft-card:hover .vz-hist i{animation:vz-grow 520ms var(--ease) both}
a.ft-card:hover .vz-hist i:nth-child(2){animation-delay:40ms}a.ft-card:hover .vz-hist i:nth-child(3){animation-delay:80ms}a.ft-card:hover .vz-hist i:nth-child(4){animation-delay:120ms}a.ft-card:hover .vz-hist i:nth-child(5){animation-delay:160ms}a.ft-card:hover .vz-hist i:nth-child(6){animation-delay:200ms}a.ft-card:hover .vz-hist i:nth-child(7){animation-delay:240ms}
.vz-vs{display:flex;flex-direction:column;gap:12px}
.vz-vs .r{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 10px;font-size:14px}
.vz-vs em{font-style:normal;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vz-vs b{font-family:var(--mono);font-size:14px}
.vz-vs .t{grid-column:1/-1;height:12px;background:var(--track);overflow:hidden}
.vz-vs .t i{display:block;height:100%;background:linear-gradient(90deg,var(--saffron),var(--ember))}
.vz-vs .r+.r .t i{background:var(--paper)}
.vz-cal{width:76px;background:var(--card);color:var(--ink);text-align:center;border:1px solid var(--edge);box-shadow:var(--shadow);transition:transform 260ms var(--ease)}
a.ft-card:hover .vz-cal{transform:rotate(-4deg)}
.vz-cal .m{display:block;background:var(--ember);color:#fff;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.12em;padding:4px 0}
.vz-cal .d{display:block;font-family:var(--mono);font-size:32px;font-weight:600;line-height:1;padding:8px 0 10px}
.vz-quiz{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.vz-quiz i{height:42px;display:flex;align-items:center;justify-content:center;font-style:normal;font-family:var(--mono);font-size:14px;font-weight:600;background:#24221E;border:1px solid #3A3630;color:var(--paper)}
.vz-quiz i.ok{background:var(--gain);border-color:var(--gain);color:#fff;animation:vz-pulse 2.4s ease-in-out infinite}
.vz-coins{display:flex;align-items:flex-end;gap:5px;height:46px}
.vz-coins i{width:22px;background:repeating-linear-gradient(to top,var(--amber) 0 4px,var(--marigold) 4px 8px)}
.vz-coins i:nth-child(1){height:30%}.vz-coins i:nth-child(2){height:52%}.vz-coins i:nth-child(3){height:40%}.vz-coins i:nth-child(4){height:70%}.vz-coins i:nth-child(5){height:58%}.vz-coins i:nth-child(6){height:100%}
.ft-c-go{display:flex;align-items:center;justify-content:space-between;gap:10px;height:48px;padding:0 16px;background:var(--a);color:var(--gofg);font-size:15px;font-weight:600;transition:background 200ms ease,color 200ms ease}
a.ft-card:hover .ft-c-go{background:var(--paper);color:var(--ink)}
.ft-c-go svg{transition:transform 220ms var(--ease)}
a.ft-card:hover .ft-c-go svg{transform:translateX(4px)}

/* Per-tool colour: every card is FIF ink, each lit by one brand colour */
.ft-c-reality-check{--a:var(--marigold)}
.ft-c-am-i-too-late{--a:var(--saffron)}
.ft-c-head-to-head{--a:var(--ember);--tilefg:var(--paper);--gofg:var(--paper);--big:var(--amber)}
.ft-c-birthday-twins{--a:var(--amber)}
.ft-c-challenge{--a:var(--marigold)}
.ft-c-fortune-cart{--a:var(--saffron)}
.ft-c-revenue-clock{--a:var(--amber);--big:var(--marigold)}
.vz-live{color:var(--marigold)!important}
.ft-c-soon{--a:var(--field);--tile:#2A2722;--tilefg:var(--marigold);background:repeating-linear-gradient(135deg,#1C1B19 0 12px,#22201C 12px 24px);box-shadow:none;border:1px dashed #57534B}
.ft-c-soon::before{background:repeating-linear-gradient(90deg,var(--marigold) 0 10px,transparent 10px 18px)}
.ft-c-soon .ft-c-n{color:var(--marigold)}
.ft-c-soon::after{display:none}

/* Tools page: bento grid in the sand band.
   Row 1: wide + 1 + 1. Row 2: 1 + 1 + wide. Row 3: wide + wide. */
.ft-band,main.dir.ft>.ft-band{display:block;background:none!important;padding:0!important;margin:0!important}
.ft-grid-hub{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (min-width:1181px){
  .ft-grid-hub .ft-c-reality-check,.ft-grid-hub .ft-c-fortune-cart,.ft-grid-hub .ft-c-revenue-clock,.ft-grid-hub .ft-c-soon{grid-column:span 2}
  .ft-grid-hub .ft-card{min-height:360px}
  .ft-grid-hub .ft-c-reality-check .vz-big,.ft-grid-hub .ft-c-fortune-cart .vz-big,.ft-grid-hub .ft-c-revenue-clock .vz-big{font-size:46px}
  .ft-grid-hub .ft-c-reality-check .ft-c-tx .nm,.ft-grid-hub .ft-c-fortune-cart .ft-c-tx .nm,.ft-grid-hub .ft-c-revenue-clock .ft-c-tx .nm{font-size:30px}
  .ft-grid-hub .ft-c-reality-check::after,.ft-grid-hub .ft-c-fortune-cart::after,.ft-grid-hub .ft-c-revenue-clock::after{font-size:190px;bottom:-38px}
  .ft-grid-hub .ft-c-soon{min-height:220px}
}
@media (max-width:1180px){.ft-grid-hub{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ft-grid-hub{grid-template-columns:1fr}}

@keyframes vz-blink{50%{opacity:.35}}
@keyframes vz-pulse{50%{opacity:.75}}
@keyframes vz-grow{from{transform:scaleY(.2)}to{transform:scaleY(1)}}

/* ---------- Homepage strip ---------- */
.h-tools{display:flex;flex-direction:column;gap:20px}
.h-tools-sub{font-size:17px;color:var(--ink2);font-weight:300;margin-top:-6px}
.h-tools-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.h-tl-age,.h-tl-clock{padding:26px 28px;display:flex;flex-direction:column;gap:10px;color:var(--ink);text-decoration:none}
.h-tl-age{border-top:5px solid var(--saffron)}
.h-tl-clock{background:var(--ink);border-color:var(--ink);border-top:5px solid var(--marigold);color:var(--paper)}
.h-tl-clock:hover{color:var(--paper)}
.h-tl-clock .lbl{color:var(--marigold)}
.h-tl-clock mark{background:transparent;color:var(--marigold)}
.h-tl-age .q,.h-tl-clock .q{font-size:24px;font-weight:400;line-height:1.25;letter-spacing:-.01em}
.h-tl-age p{font-size:15px;color:var(--ink2)}
.h-tl-age .row{display:flex;margin-top:auto;padding-top:8px}
.h-tl-age input{width:120px;height:52px;border:1px solid var(--ink);border-right:0;padding:0 14px;font-size:20px;font-family:var(--mono);background:var(--paper);color:var(--ink);border-radius:0}
.h-tl-age button{height:52px;padding:0 20px;border:0;background:var(--ink);color:var(--paper);font-size:15px;font-weight:500;display:flex;align-items:center;gap:8px;border-radius:0}
.h-tl-age button:hover{background:var(--ember)}
.h-tl-clock .tick{font-family:var(--mono);font-size:clamp(30px,4vw,44px);font-weight:600;color:var(--marigold);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.h-tl-clock .s{font-size:14px;color:#C9C0AE}
.h-tl-clock .s b{color:var(--paper)}
.h-tl-clock .go{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;margin-top:auto;padding-top:8px;color:var(--marigold)}
.ft-open{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--ink);margin-top:12px;text-decoration:underline;text-decoration-color:var(--saffron);text-underline-offset:4px}
.ft-open:hover{color:var(--ember)}

@media (max-width:899.98px){
  .h-tools-lead{grid-template-columns:1fr}
  .h-tl-age,.h-tl-clock{padding:20px}
  .h-tl-age .q,.h-tl-clock .q{font-size:20px}
  .h-tl-age input{flex:1;width:auto}
  .ft-grid-home,.ft-grid-more{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:80%;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;scrollbar-width:none;padding:6px 0 18px}
  .ft-grid-home::-webkit-scrollbar,.ft-grid-more::-webkit-scrollbar{display:none}
  .ft-grid-home .ft-card,.ft-grid-more .ft-card{scroll-snap-align:start;min-height:300px}
  .ft-c-tx .nm{font-size:22px}
  .ft-card::after{font-size:110px}
}

/* =========================================================
   Pop-up: a FIF ink card with a light running round its square edge
   ========================================================= */
@property --fift-a{syntax:'<angle>';inherits:false;initial-value:0deg}
.fift-pop{
  position:fixed;z-index:60;right:28px;bottom:28px;width:min(400px,calc(100vw - 32px));
  padding:2px;border-radius:0;isolation:isolate;
  background:conic-gradient(from var(--fift-a),rgba(255,182,39,.12) 0deg,rgba(255,182,39,.12) 200deg,#FFB627 255deg,#FF8A1F 290deg,#E4570E 322deg,rgba(255,182,39,.12) 360deg);
  box-shadow:0 30px 70px -20px rgba(28,27,25,.65);
  animation:fift-spin 3.6s linear infinite;
  opacity:0;transform:translateY(28px);
  transition:opacity 300ms var(--ease),transform 420ms cubic-bezier(.2,1.25,.3,1);
  font-family:var(--sans)
}
.fift-pop.in{opacity:1;transform:none}
.fift-pop.out{opacity:0;transform:translateY(20px);transition-duration:220ms}
.fift-glow{position:absolute;inset:-6px;z-index:-1;pointer-events:none;
  background:conic-gradient(from var(--fift-a),transparent 0deg,transparent 200deg,#FFB627 255deg,#FF8A1F 290deg,#E4570E 322deg,transparent 360deg);
  filter:blur(16px);opacity:.8;animation:fift-spin 3.6s linear infinite}
/* Pop-ups are always dark: colours are fixed here, never taken from a light theme or the visitor's system setting. */
.fift-pop,.fift-pop *{color-scheme:dark}
.fift-card{position:relative;overflow:hidden;min-height:370px;padding:26px 24px 22px;display:flex;flex-direction:column;gap:12px;color:#FCFAF5!important;background:#1C1B19!important}
.fift-card .fift-t{color:#FCFAF5!important}
.fift-card .fift-h{color:#D9D2C3!important}
.fift-card .fift-stat{background:#24221E!important}
.fift-card .fift-x{color:#FCFAF5!important;background:transparent!important}
.fift-card .fift-cta{color:#1C1B19!important;background:#FFB627!important}
.fift-card .fift-cta:hover{background:#FF8A1F!important}
/* the brand ramp along the top, and the big faint numeral like the No. 1 card on Rankings */
.fift-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--marigold) 0 25%,var(--amber) 25% 50%,var(--saffron) 50% 75%,var(--ember) 75% 100%)}
.fift-card::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,226,163,.12),transparent);animation:fift-shine 4.2s ease-in-out 600ms infinite}
.fift-top{position:relative;display:flex;align-items:center;gap:12px;padding-right:44px}
.fift-chip{width:48px;height:48px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--marigold);color:var(--ink)}
.fift-brand{display:flex;flex-direction:column;gap:3px;min-width:0}
.fift-brand b{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.16em;color:var(--marigold)}
.fift-brand b .mark{height:12px;gap:2px}.fift-brand b .mark span{width:3px}
.fift-brand b .mark span:nth-child(1){height:5px}.fift-brand b .mark span:nth-child(2){height:7px}.fift-brand b .mark span:nth-child(3){height:10px}.fift-brand b .mark span:nth-child(4){height:12px}
.fift-brand span.nm{font-size:14px;font-weight:500;color:#D9D2C3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fift-x{position:absolute;top:18px;right:14px;z-index:2;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid #3A3630;border-radius:0;background:transparent;color:var(--paper);transition:background 160ms ease,border-color 160ms ease}
.fift-x:hover{background:#2A2722;border-color:var(--marigold);color:var(--marigold)}
.fift-x:focus-visible{outline:2px solid var(--marigold);outline-offset:2px}
.fift-t{position:relative;font-size:24px;font-weight:500;line-height:1.2;letter-spacing:-.015em;color:var(--paper);margin-top:6px}
.fift-h{position:relative;font-size:15px;line-height:1.55;color:#D9D2C3;margin:0}
.fift-h b{color:var(--paper);font-weight:600}
.fift-h mark{background:none;color:var(--marigold);font-weight:600}
.fift-stat{position:relative;display:flex;flex-direction:column;gap:3px;padding:12px 14px;background:#24221E;border-left:3px solid var(--marigold)}
.fift-stat i{font-style:normal;font-family:var(--mono);font-size:30px;font-weight:600;letter-spacing:-.01em;line-height:1.1;color:var(--marigold);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fift-stat em{font-style:normal;font-size:12px;color:#A8A091}
.fift-cta{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;height:54px;padding:0 18px;margin-top:auto;border-radius:0;text-decoration:none;font-size:16px;font-weight:600;color:var(--ink);background:var(--marigold);transition:background 180ms ease}
.fift-cta:hover{color:var(--ink);background:var(--amber)}
.fift-cta svg{transition:transform 200ms var(--ease)}
.fift-cta:hover svg{transform:translateX(4px)}
@keyframes fift-spin{to{--fift-a:360deg}}
@keyframes fift-shine{0%{left:-60%}35%,100%{left:130%}}
@media (max-width:899.98px){
  .fift-pop{left:12px;right:12px;width:auto;bottom:calc(64px + 14px + env(safe-area-inset-bottom,0px))}
  .fift-card{min-height:0;padding:22px 18px 18px;gap:10px}
  .fift-t{font-size:20px}
  .fift-h{font-size:14px}
  .fift-stat i{font-size:24px}
  .fift-cta{height:50px;margin-top:4px}
}
@media (prefers-reduced-motion:reduce){
  .fift-pop,.fift-glow{animation:none}
  .fift-card::after{display:none}
  .fift-pop,.fift-pop.in,.fift-pop.out{transform:none;transition:opacity 150ms linear}
  .ft-card,.ft-card::before,.ft-card::after,.vz-cal,.ft-ico{transition:none}
  .vz-bar i,.vz-quiz i.ok,a.ft-card:hover .vz-hist i{animation:none}
}
@media print{.fift-pop{display:none}}
