/*
 * GFunnel homepage v2 (inc/gf_home_v2.inc.php + template/page_home_v2.html).
 * Everything is scoped under .gfv so the shared nav and footer (gf_home.css)
 * are untouched. Light page; one dark AI section; one gradient close.
 */

.gfv {
    --gfv-ink: #090c1d;
    --gfv-text: #292d34;
    --gfv-soft: #8a8d99;
    --gfv-mute: #646464;
    --gfv-line: #e8e8ed;
    --gfv-bg2: #f7f7f9;
    --gfv-o: #f97316;
    --gfv-p: #ec4899;
    --gfv-v: #7c3aed;
    --gfv-b: #3b82f6;
    --gfv-head: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --gfv-body: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
    --gfv-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;
    background: #fff;
    color: var(--gfv-text);
    font-family: var(--gfv-body);
    font-size: 16px;
    line-height: 1.5;
    overflow-x: clip;
}
.gfv *, .gfv *::before, .gfv *::after { box-sizing: border-box; }
.gfv a { color: inherit; text-decoration: none; }
.gfv img { max-width: 100%; display: block; }
.gfv button { font: inherit; color: inherit; cursor: pointer; }
.gfv-wrap { width: 100%; max-width: 1128px; margin: 0 auto; padding: 0 24px; }
.gfv-center { text-align: center; }
.gfv-ic { flex: none; }

/* ---- type ---- */
.gfv .gfv-title {
    font-family: var(--gfv-head);
    font-weight: 700;
    color: var(--gfv-ink);
    font-size: clamp(34px, 4.6vw, 54px);
    line-height: 1.08;
    letter-spacing: -0.04em;
    margin: 0;
}
.gfv .gfv-soft { color: var(--gfv-soft); }
.gfv .gfv-mega { font-size: clamp(42px, 6.4vw, 80px); line-height: 1.02; letter-spacing: -0.045em; }
.gfv-sub { font-size: 16px; color: var(--gfv-mute); margin: 14px auto 0; max-width: 620px; letter-spacing: -0.01em; }
.gfv-mono { font-family: var(--gfv-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #8b8d97; }
.gfv-mono-v { color: var(--gfv-v); }

/* ---- buttons ---- */
.gfv-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    height: 46px; padding: 0 20px; border-radius: 10px;
    font-family: var(--gfv-head); font-weight: 700; font-size: 15px; letter-spacing: -0.01em;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
    white-space: nowrap;
}
.gfv-btn:hover { transform: translateY(-1px); }
.gfv-btn-dark { background: var(--gfv-ink); color: #fff !important; box-shadow: 0 1px 2px rgba(9,12,29,.2), inset 0 1px 0 rgba(255,255,255,.12); }
.gfv-btn-dark:hover { box-shadow: 0 8px 22px rgba(9,12,29,.22); }
.gfv-btn-soft { background: #ececf0; color: var(--gfv-ink) !important; }
.gfv-btn-soft:hover { background: #e2e2e8; }
.gfv-btn-white { background: #fff; color: var(--gfv-ink) !important; box-shadow: 0 6px 20px rgba(0,0,0,.18); }
.gfv-btn-sm { height: 40px; padding: 0 16px; font-size: 14px; }
.gfv-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.gfv-cta-c { justify-content: center; }
.gfv-sec { padding: 120px 0 0; }

/* ---- reveal (JS-gated; content stays visible without the script) ---- */
.gfv-js .gfv .gfv-in { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.gfv-js .gfv .gfv-in.is-in { opacity: 1; transform: none; }
/* Endless animations run only while their section is on screen: the script
   marks a section .is-vis as it comes into view and unmarks it as it leaves.
   Without the script nothing is marked and nothing is paused. */
.gfv-run > :not(.is-vis) *, .gfv-run > :not(.is-vis) *::before { animation-play-state: paused !important; }

@media (prefers-reduced-motion: reduce) {
    .gfv-js .gfv .gfv-in { opacity: 1; transform: none; transition: none; }
    .gfv * { animation: none !important; }
}

/* ================= hero ================= */
.gfv-hero { padding: 64px 0 0; }
.gfv-pill {
    position: relative; isolation: isolate; overflow: hidden;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 10px; border-radius: 8px; font-size: 12.5px; font-weight: 600; color: var(--gfv-ink) !important;
    background: #fff; box-shadow: 0 2px 8px rgba(124,58,237,.12);
    transition: box-shadow .2s;
}
/* The ring turns: a conic gradient spinning behind a white face 1.5px in.
   Only a transform animates, so it costs the compositor and nothing else. */
.gfv-pill::before { content: ""; position: absolute; left: 50%; top: 50%; width: 300%; aspect-ratio: 1; margin: -150% 0 0 -150%; z-index: -2;
    background: conic-gradient(from 0deg, var(--gfv-o), var(--gfv-p), var(--gfv-v), var(--gfv-b), var(--gfv-o)); animation: gfv-spin 4s linear infinite; }
.gfv-pill::after { content: ""; position: absolute; inset: 1.5px; border-radius: 6.5px; background: #fff; z-index: -1; }
.gfv-pill:hover { box-shadow: 0 4px 16px rgba(236,72,153,.25); }
.gfv-pill span { display: inline-flex; transition: transform .2s; }
.gfv-pill:hover span { transform: translateX(3px); }
.gfv .gfv-h1 {
    font-family: var(--gfv-head); font-weight: 700; color: var(--gfv-ink);
    font-size: clamp(38px, 4.7vw, 60px); line-height: 1.04; letter-spacing: -0.045em;
    margin: 22px 0 0; max-width: 980px;
}
/* two lines: what it is, then what it is for (the second in the context heading's grey) */
.gfv .gfv-h1-a, .gfv .gfv-h1-b { display: block; }
.gfv-lead { font-size: 18px; line-height: 1.45; color: #4b4f5c; max-width: 560px; margin: 20px 0 0; letter-spacing: -0.015em; }
.gfv-fine { font-size: 12px; color: #8b8d97; margin: 10px 0 0 4px; }

/* ---- the app window (hero + final) ---- */
.gfv-app {
    margin: 44px 0 0; border: 1px solid var(--gfv-line); border-radius: 16px; background: #fff;
    box-shadow: 0 30px 80px -30px rgba(17,24,39,.25), 0 2px 6px rgba(17,24,39,.05);
    overflow: hidden; text-align: left; font-size: 12.5px; color: #2f3340;
}
.gfv-app-body { display: grid; grid-template-columns: 64px minmax(0, 1fr) 300px; height: 440px; }
.gfv-pane { padding: 14px 18px; overflow: hidden; min-width: 0; }
.gfv-pane-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.gfv-pane-h > b { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--gfv-ink); }
.gfv-sq { width: 14px; height: 14px; border-radius: 4px; background: var(--gfv-o); display: inline-block; }
.gfv-views { display: flex; align-items: center; gap: 4px; }
.gfv-views button { display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; padding: 5px 8px; border-radius: 6px; color: #6b6f7c; font-size: 12px; border-bottom: 2px solid transparent; }
.gfv-views button.is-on { color: var(--gfv-ink); border-bottom-color: var(--gfv-ink); border-radius: 6px 6px 0 0; }
.gfv-views span { color: #a3a5ae; font-size: 12px; padding-left: 6px; }
.gfv-list { margin-top: 10px; }
.gfv-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) 30px 70px 84px; align-items: center; gap: 6px; height: 36px; padding: 0 6px; border-radius: 8px; transition: background .15s; }
.gfv-row:hover { background: #f6f6f8; }
.gfv-row-h { height: 28px; color: #9a9ca6; font-size: 11.5px; border-bottom: 1px solid #f0f0f3; border-radius: 0; }
.gfv-row-h:hover { background: none; }
.gfv-row-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gfv-row-due { color: #6b6f7c; }
.gfv-row-pri { display: inline-flex; align-items: center; gap: 5px; color: #6b6f7c; }
.gfv-pri-high .gfv-ic { color: #f97316; }
.gfv-pri-normal .gfv-ic { color: #3b82f6; }
.gfv-pri-low .gfv-ic { color: #9ca3af; }
.gfv-tick { width: 16px; height: 16px; border-radius: 50%; border: 1.5px dashed #b8bac3; background: #fff; display: grid; place-items: center; padding: 0; color: transparent; transition: all .2s; }
.gfv-tick:hover { border-style: solid; border-color: #22c55e; color: #22c55e; }
.gfv-row.is-done .gfv-tick { background: #22c55e; border: 1.5px solid #22c55e; color: #fff; }
.gfv-row.is-done .gfv-row-name { color: #9a9ca6; text-decoration: line-through; }
.gfv-grp { margin-top: 8px; }
.gfv-grp-h { display: inline-flex; align-items: center; gap: 7px; border: 0; background: transparent; padding: 4px 2px; font-size: 11.5px; }
.gfv-grp-h .gfv-ic { color: #9a9ca6; transition: transform .2s; }
.gfv-grp-h em { font-style: normal; color: #9a9ca6; }
.gfv-grp.is-folded .gfv-grp-h .gfv-ic { transform: rotate(-90deg); }
.gfv-grp.is-folded .gfv-grp-b { display: none; }
.gfv-status { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 6px; font-weight: 600; font-size: 11px; }
.gfv-st-progress { background: #2563eb; color: #fff; }
.gfv-st-open { background: #eef0f3; color: #4b5563; }
.gfv-st-done { background: #16a34a; color: #fff; }
.gfv-av { width: 22px; height: 22px; border-radius: 50%; display: inline-grid; place-items: center; font-size: 10px; font-weight: 700; color: #fff; flex: none; }
.gfv-av-a { background: linear-gradient(135deg, #fb923c, #f43f5e); }
.gfv-av-b { background: linear-gradient(135deg, #a78bfa, #6366f1); }
.gfv-av-c { background: linear-gradient(135deg, #34d399, #0ea5e9); }
.gfv-av-d { background: linear-gradient(135deg, #facc15, #f97316); }
.gfv-av-ai { background: linear-gradient(135deg, var(--gfv-o), var(--gfv-p) 55%, var(--gfv-v)); }
.gfv-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.gfv-board[hidden] { display: none; }
.gfv-col { background: #f6f6f8; border-radius: 10px; padding: 8px; display: flex; flex-direction: column; gap: 7px; align-items: flex-start; }
.gfv-card { width: 100%; background: #fff; border: 1px solid var(--gfv-line); border-radius: 8px; padding: 8px 9px; display: flex; flex-direction: column; gap: 6px; transition: transform .2s, box-shadow .2s; }
.gfv-card:hover { transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,.07); }
.gfv-card b { font-weight: 600; font-size: 12px; }
.gfv-card > span { display: flex; align-items: center; gap: 6px; color: #6b6f7c; font-size: 11px; }
.gfv-card .gfv-av { width: 18px; height: 18px; font-size: 9px; }
@keyframes gfv-blink { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
@keyframes gfv-pop { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.gfv-grp-progress, .gfv-grp-open, .gfv-grp-done { position: relative; }
.gfv-pp-ai { flex-direction: column; }
.gfv-dark-head, .gfv-band-in, .gfv-tabs-w, .gfv-wss-h { position: relative; }

/* ================= apps strip ================= */
.gfv-strip { padding: 44px 0 0; }
.gfv-strip-in { display: flex; align-items: center; gap: 36px; }
.gfv-strip-in .gfv-mono { flex: none; transition: color .2s; }
.gfv-strip-in .gfv-mono:hover { color: var(--gfv-ink); }
.gfv-marks { flex: 1; display: flex; justify-content: space-between; gap: 22px; overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.gfv-mark { font-family: var(--gfv-head); font-weight: 800; font-size: 15px; color: #a2a4ad; letter-spacing: -0.02em; white-space: nowrap; transition: color .2s; }
.gfv-mark:hover { color: var(--gfv-ink); }

/* ================= context ================= */
.gfv-ctx { padding-top: 150px; }
.gfv-knot { position: relative; height: 300px; margin-top: 40px; }
/* 150% of the content width, so the rope overhangs both sides and fades out */
.gfv-knot > svg { position: absolute; top: 0; left: -25%; width: 150%; height: 100%; overflow: visible;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent); mask-image: linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent); }
/* A solid stroke, never url(#...): the page's <base href> would point that at another document. */
.gfv-rope { fill: none; stroke: #dcdce2; stroke-width: 30; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.gfv-rope-s { stroke: rgba(17,24,39,.06); stroke-width: 34; transform: translateY(7px); }
.gfv-rope-h { stroke: #ececf0; stroke-width: 7; transform: translate(-1px, -5px); }
/* The rope is revealed by a left-to-right wipe of the whole svg, never by a dash
   offset: Safari and Firefox do not scale a dash by pathLength under a
   non-scaling stroke, so the dash trick left the rope invisible there. */
.gfv-run .gfv-knot > svg { clip-path: inset(0 100% 0 0); }
.gfv-run .gfv-knot.is-in > svg { animation: gfv-draw 2.4s ease forwards; }
@keyframes gfv-draw { to { clip-path: inset(0 0 0 0); } }
/* Reduced motion switches every animation off, so the rope is simply shown.
   After the rules above and stronger than them, so it cannot lose to them. */
@media (prefers-reduced-motion: reduce) {
    .gfv.gfv-run .gfv-knot > svg { clip-path: none; }
}
.gfv-bub { position: absolute; z-index: 1; width: 44px; height: 44px; margin: -22px 0 0 -22px; border-radius: 50%; background: #fff; display: grid; place-items: center; box-shadow: 0 6px 18px rgba(0,0,0,.1); animation: gfv-float 5s ease-in-out infinite; animation-delay: var(--d); }
.gfv-bub-c1 { color: #3b82f6; } .gfv-bub-c2 { color: #2563eb; } .gfv-bub-c3 { color: #ef4444; } .gfv-bub-c4 { color: #8b5cf6; } .gfv-bub-c5 { color: #f59e0b; }
.gfv-bub-c6 { color: #3b82f6; } .gfv-bub-c7 { color: #f97316; } .gfv-bub-c8 { color: #111; } .gfv-bub-c9 { color: #10b981; }
.gfv-bub img { width: 22px; height: 22px; object-fit: contain; }
.gfv-say { position: absolute; z-index: 1; white-space: nowrap; font-size: 13px; color: #444; background: #fff; border: 1px solid var(--gfv-line); border-radius: 10px; padding: 7px 12px; box-shadow: 0 8px 20px rgba(0,0,0,.06); transform: translate(-50%, -50%); animation: gfv-float 6s ease-in-out infinite; animation-delay: var(--d); }
@keyframes gfv-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
.gfv-ctx-cols { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 6px; }
/* each column hangs from its knot by a short diagonal, as in the reference */
.gfv-ctx-col { position: relative; padding: 56px 28px 6px; border-left: 1px solid var(--gfv-line); }
.gfv-ctx-col::before { content: ""; position: absolute; left: -1px; top: -40px; width: 40px; height: 40px;
    background: linear-gradient(to bottom right, transparent calc(50% - .6px), var(--gfv-line) 50%, transparent calc(50% + .6px)); }
.gfv-ctx-col p b { color: var(--gfv-ink); font-weight: 600; }
.gfv .gfv-bal { text-wrap: balance; max-width: 980px; margin-left: auto; margin-right: auto; }
.gfv-center > .gfv-sub { margin-left: auto; margin-right: auto; text-align: center; }
.gfv-ctx-col h3 { font-family: var(--gfv-head); font-size: 22px; font-weight: 700; color: var(--gfv-ink); letter-spacing: -0.03em; margin: 0; }
.gfv-ctx-col p { margin: 6px 0 0; font-size: 14px; color: var(--gfv-mute); max-width: 260px; }

/* ================= wall ================= */
.gfv-wallsec { padding-top: 150px; }
.gfv-wall {
    display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); grid-auto-rows: 104px;
    max-width: 1440px; margin: 56px auto 0; position: relative;
    -webkit-mask: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%), linear-gradient(#000 70%, transparent);
    -webkit-mask-composite: source-in;
    mask: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%), linear-gradient(#000 70%, transparent);
    mask-composite: intersect;
}
.gfv-tile {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
    border-right: 1px solid #efeff3; border-bottom: 1px solid #efeff3; font-size: 13px; color: #6b6f7c; text-align: center;
    transition: background .25s, color .25s; position: relative;
}
.gfv-tile .gfv-ic { color: #8b8f9c; transition: transform .25s, color .25s; }
.gfv-tile:hover { background: linear-gradient(180deg, #fff7ed, #fdf2f8); color: var(--gfv-ink); }
.gfv-tile:hover .gfv-ic { color: var(--gfv-o); transform: translateY(-2px) scale(1.12); }
.gfv-tile.is-lit { background: #fafafc; }
.gfv-tile.is-lit .gfv-ic { color: var(--gfv-p); }
.gfv-big {
    border-right: 1px solid #efeff3; border-bottom: 1px solid #efeff3; position: relative; overflow: hidden;
    display: flex; flex-direction: column; justify-content: flex-end; align-items: center; padding: 16px; outline: 0;
    transition: transform .3s;
}
.gfv-big::before { content: ""; position: absolute; inset: 0; opacity: .9; transition: opacity .3s; }
.gfv-big-sales::before { background: radial-gradient(100% 80% at 50% 0%, #ffedd5, #fff 75%); }
.gfv-big-proj::before { background: radial-gradient(100% 80% at 50% 0%, #e0e7ff, #fff 75%); }
.gfv-big-ai::before { background: radial-gradient(100% 80% at 50% 0%, #fce7f3, #fff 75%); }
.gfv-big-chat::before { background: radial-gradient(100% 80% at 50% 0%, #ede9fe, #fff 75%); }
.gfv-big > * { position: relative; }
.gfv-big > b { display: inline-flex; align-items: center; gap: 8px; font-family: var(--gfv-head); font-size: 22px; letter-spacing: -0.03em; color: var(--gfv-ink); }
.gfv-big-sales > b .gfv-ic { color: var(--gfv-o); } .gfv-big-proj > b .gfv-ic { color: #4f46e5; } .gfv-big-ai > b .gfv-ic { color: var(--gfv-p); } .gfv-big-chat > b .gfv-ic { color: var(--gfv-v); }
.gfv-big-sub { font-size: 12.5px; color: var(--gfv-mute); max-height: 0; opacity: 0; overflow: hidden; transition: max-height .3s, opacity .3s, margin .3s; }
.gfv-big:hover .gfv-big-sub, .gfv-big:focus .gfv-big-sub { max-height: 40px; opacity: 1; margin-top: 4px; }
.gfv-big-pic { flex: 1; width: 100%; display: grid; place-items: center; }
.gfv-pp { width: 78%; background: #fff; border: 1px solid var(--gfv-line); border-radius: 10px; padding: 10px; display: flex; flex-wrap: wrap; gap: 6px; box-shadow: 0 10px 24px -12px rgba(0,0,0,.18); transition: transform .35s cubic-bezier(.2,.7,.2,1); }
.gfv-big:hover .gfv-pp, .gfv-big:focus .gfv-pp { transform: translateY(-6px) rotate(-1deg); }
.gfv-pp i { display: block; width: 100%; height: 7px; border-radius: 4px; background: #eef0f3; }
.gfv-pp i.gfv-short { width: 60%; }
.gfv-chip { font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 5px; background: #eef0f3; color: #4b5563; }
.gfv-chip-o { background: #fff1e6; color: #c2410c; } .gfv-chip-g { background: #dcfce7; color: #15803d; } .gfv-chip-b { background: #dbeafe; color: #1d4ed8; }
.gfv-q { font-size: 11px; color: #4b4f5c; padding: 5px 8px; border-radius: 8px; background: #faf5ff; width: 100%; }
.gfv-pp-chat { flex-direction: column; }
.gfv-bubl { width: 62%; height: 16px; border-radius: 8px; background: #ede9fe; }
.gfv-bubl-r { align-self: flex-end; background: #fce7f3; width: 48%; }

/* ================= agents ================= */
.gfv-agents { padding-top: 160px; }
.gfv-agents-stage { position: relative; margin: 64px 12px 0; }
.gfv-portrait {
    position: relative; border-radius: 28px; overflow: hidden; aspect-ratio: 1600 / 893;
    background: linear-gradient(180deg, #fff 0%, #fde4d6 30%, #fbc9b1 100%);
}
/* The full frame, uncropped, so the visor's percentages land on the face. */
.gfv-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
/* The soft figure: a filter that is set once and never animated; only its
   opacity moves, which the compositor does without repainting. */
.gfv-por-sharp { z-index: 0; }
.gfv-por-soft { filter: blur(18px) saturate(1.6) brightness(1.08); transform: scale(1.04); opacity: 0; }
.gfv-portrait::before { content: ""; position: absolute; inset: 0 0 auto; height: 22%; background: linear-gradient(#fff, transparent); z-index: 1; pointer-events: none; }
.gfv-portrait-cta { position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%); z-index: 3; }
.gfv-portrait-cta:hover { transform: translateX(-50%) translateY(-1px); }
.gfv-glyphs { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.gfv-glyphs span { position: absolute; left: var(--x); top: var(--y); font-family: var(--gfv-mono); font-size: 12px; letter-spacing: .04em; color: rgba(124,45,18,.55); white-space: nowrap; opacity: .9; }
/* The visor that comes down onto the face. At rest it is hidden: the
   photograph already has one. The script shows it only while it travels. */
.gfv-visor {
    position: absolute; left: 37.9%; top: 42%; width: 24.1%; height: 15.1%; z-index: 4;
    padding: .55%; border-radius: 22% / 46%; opacity: 0; pointer-events: none;
    background: linear-gradient(180deg, #f5f5f7 0%, #9ca3af 38%, #ffffff 55%, #6b7280 100%);
    box-shadow: 0 18px 40px -12px rgba(124,58,237,.45), 0 4px 10px rgba(0,0,0,.18);
    transform-origin: 50% 50%; will-change: transform, opacity;
}
.gfv-visor i { display: block; width: 100%; height: 100%; border-radius: 20% / 44%;
    background: linear-gradient(90deg, #fb923c 0%, #ec4899 42%, #a21caf 62%, #3b82f6 100%);
    box-shadow: inset 0 6px 10px rgba(255,255,255,.45), inset 0 -6px 12px rgba(30,0,60,.3); }
/* The GFunnel mark in the lens: turned white and blended into the glass so it
   reads as projected on it, not stuck on top. The photo's lens is centred at
   50% / 49.4%; the travelling visor carries its own copy, so the mark is on the
   glass the whole way down. */
.gfv .gfv-por-logo, .gfv .gfv-visor i img {
    position: absolute; left: 50%; top: 49.4%; right: auto; bottom: auto; height: 7.4%; width: auto;
    transform: translate(-50%, -50%); z-index: 1; pointer-events: none;
    /* the logo is white strokes on an orange hexagon: keep the white, push the
       orange to black, and a screen blend lets the black vanish into the lens */
    filter: grayscale(1) brightness(.7) contrast(6);
    mix-blend-mode: screen; opacity: .82;
}
.gfv .gfv-visor i { position: relative; }
.gfv .gfv-visor i img { top: 50%; height: 62%; }
.gfv-scrub-on .gfv-portrait-cta { will-change: opacity; }

/* ================= dark AI ================= */
.gfv-dark {
    position: relative; margin: 12px 6px 0; border-radius: 28px 28px 0 0; background: #000; color: #e7e7ea;
    padding: 130px 0 120px; overflow: hidden; isolation: isolate;
}
.gfv-dark-glow { position: absolute; inset: -20% -10% auto; height: 760px; z-index: -1; pointer-events: none; will-change: transform; transition: transform .6s cubic-bezier(.2,.7,.2,1);
    background: radial-gradient(40% 40% at 50% 70%, rgba(124,58,237,.55), transparent 70%), radial-gradient(30% 30% at calc(50% - 15%) 80%, rgba(249,115,22,.35), transparent 70%), radial-gradient(30% 30% at calc(50% + 18%) 78%, rgba(59,130,246,.4), transparent 70%);
    transition: background .2s;
}
.gfv-dark .gfv-title { color: #fff; }
.gfv-dark .gfv-title em { font-style: italic; background: linear-gradient(90deg, #fff, #c4b5fd); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .06em; }
.gfv-dark .gfv-sub { color: #a1a1aa; }
.gfv-brand { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 22px; font-family: var(--gfv-head); font-size: 40px; font-weight: 700; color: #fff; letter-spacing: -0.03em; }
.gfv-brand img { width: 44px; height: 44px; border-radius: 11px; }
.gfv-brand b { background: linear-gradient(90deg, var(--gfv-o), var(--gfv-p), var(--gfv-v)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gfv-where { display: flex; justify-content: center; align-items: center; gap: 8px; flex-wrap: wrap; margin: 22px 0 0; font-family: var(--gfv-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #6e6e78; }
.gfv-where span { margin-right: 10px; }
.gfv-where .gfv-ic { margin-left: 10px; }
.gfv-where .gfv-where-vr { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.gfv-where .gfv-where-vr:hover { color: #fff; }
.gfv-dgrid { display: grid; border: 1px solid #222228; margin-top: 64px; }
.gfv-dgrid-3 { grid-template-columns: repeat(3, 1fr); }
.gfv-dgrid-6 { grid-template-columns: repeat(3, 1fr); margin-top: 48px; }
.gfv-dcard { padding: 22px 22px 0; border-right: 1px solid #222228; border-bottom: 1px solid #222228; min-height: 360px; display: flex; flex-direction: column; position: relative; overflow: hidden; transition: background .3s; }
.gfv-dcard:hover { background: linear-gradient(180deg, rgba(255,255,255,.03), transparent); }
.gfv-dgrid-3 .gfv-dcard:nth-child(3n), .gfv-dgrid-6 .gfv-dcard:nth-child(3n) { border-right: 0; }
.gfv-dgrid-3 .gfv-dcard { border-bottom: 0; }
.gfv-dgrid-6 .gfv-dcard:nth-child(n+4) { border-bottom: 0; }
.gfv-dcard h3 { font-family: var(--gfv-head); font-size: 18px; color: #fff; margin: 0; letter-spacing: -0.02em; }
.gfv-dcard p { font-size: 13.5px; color: #a1a1aa; margin: 8px 0 0; line-height: 1.45; }
.gfv-dcard-6 { min-height: 320px; }
.gfv-mono-d { color: #e4e4e7; }
.gfv-dpic { flex: 1; display: grid; place-items: center; padding: 24px 0; }
.gfv-dark-head2 { margin-top: 150px; }
.gfv-wins { position: relative; width: 82%; height: 150px; }
.gfv-win { position: absolute; width: 70%; height: 80px; border-radius: 10px; border: 1px solid #2a2a33; background: #0e0e13; transition: transform .4s; }
.gfv-win:nth-child(1) { left: 0; top: 0; } .gfv-win:nth-child(2) { left: 12%; top: 26px; }
.gfv-win-f { left: 24%; top: 54px; display: flex; align-items: center; gap: 10px; padding: 0 12px; color: #d4d4d8; font-size: 12px; background: #15151c; }
.gfv-dcard:hover .gfv-win:nth-child(1) { transform: translate(-6px, -6px); } .gfv-dcard:hover .gfv-win-f { transform: translate(6px, 4px); }
.gfv-orb { width: 22px; height: 22px; border-radius: 50%; flex: none; background: conic-gradient(from 0deg, var(--gfv-o), var(--gfv-p), var(--gfv-v), var(--gfv-b), var(--gfv-o)); animation: gfv-spin 3s linear infinite; }
@keyframes gfv-spin { to { transform: rotate(360deg); } }
.gfv-menu { width: 80%; border: 1px solid #2a2a33; border-radius: 12px; background: #0e0e13; padding: 8px; display: flex; flex-direction: column; gap: 2px; font-size: 12.5px; }
.gfv-menu-h { color: #71717a; font-size: 11px; padding: 4px 8px; }
.gfv-menu > span:not(.gfv-menu-h) { display: flex; align-items: center; gap: 8px; padding: 7px 8px; border-radius: 8px; color: #d4d4d8; transition: background .2s; }
.gfv-menu > span.is-on { background: #1c1c24; }
.gfv-menu > span .gfv-ic { margin-left: auto; }
.gfv-dotc { width: 8px; height: 8px; border-radius: 50%; }
.gfv-dot-o { background: var(--gfv-o); } .gfv-dot-v { background: var(--gfv-v); } .gfv-dot-g { background: #22c55e; }
.gfv-kv { width: 92%; border: 1px solid #2a2a33; border-radius: 12px 0 0 12px; border-right: 0; background: #0b0b10; padding: 6px 0; font-family: var(--gfv-mono); font-size: 11px; margin-left: auto; margin-right: -22px; }
.gfv-kv span { display: flex; gap: 14px; padding: 8px 14px; border-bottom: 1px solid #1c1c22; white-space: nowrap; }
.gfv-kv span:last-child { border-bottom: 0; }
.gfv-kv b { color: #e4e4e7; width: 70px; flex: none; font-weight: 600; }
.gfv-kv em { color: #a78bfa; font-style: normal; overflow: hidden; text-overflow: ellipsis; }
.gfv-glass { border: 1px solid #2a2a33; background: linear-gradient(180deg, #18181f, #0e0e13); border-radius: 14px; padding: 12px 16px; color: #fff; font-family: var(--gfv-head); font-size: 17px; box-shadow: 0 20px 40px -10px rgba(124,58,237,.35); display: flex; flex-direction: column; gap: 3px; }
.gfv-glass small { font-family: var(--gfv-mono); font-size: 9.5px; letter-spacing: .12em; text-transform: uppercase; color: #71717a; }
.gfv-glass-row { flex-direction: row; align-items: center; gap: 10px; font-size: 14px; border-radius: 99px; padding: 8px 16px 8px 8px; }
.gfv-live { width: 12px; height: 12px; border-radius: 50%; border: 3px solid #14532d; background: #22c55e; margin-left: 10px; animation: gfv-blink 2s infinite; }
.gfv-glass-wide { width: 86%; font-size: 14px; }
.gfv-bar { display: block; height: 5px; background: #23232b; border-radius: 3px; margin-top: 10px; overflow: hidden; }
.gfv-bar i { display: block; height: 100%; width: 40%; background: linear-gradient(90deg, #22c55e, #86efac); animation: gfv-load 3s ease-in-out infinite; }
@keyframes gfv-load { 0% { width: 8%; } 70% { width: 92%; } 100% { width: 92%; } }
.gfv-yn { display: flex; gap: 8px; margin-top: 10px; }
.gfv-yn b, .gfv-yn i { font-size: 12px; font-style: normal; padding: 5px 12px; border-radius: 7px; font-family: var(--gfv-body); }
.gfv-yn b { background: #fff; color: #000; } .gfv-yn i { border: 1px solid #333; color: #a1a1aa; }
.gfv-stackp { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.gfv-stackp span { padding: 6px 18px; border-radius: 99px; border: 1px solid #2a2a33; color: #52525b; font-size: 13px; transition: all .3s; }
.gfv-stackp span.is-on { color: #fff; background: #1c1c24; border-color: #3f3f46; box-shadow: 0 0 0 4px rgba(124,58,237,.18); font-size: 15px; padding: 8px 24px; }
.gfv-hubpic { position: relative; width: 180px; height: 150px; display: grid; place-items: center; }
.gfv-hub-c { width: 64px; height: 64px; border-radius: 16px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, var(--gfv-o), var(--gfv-p), var(--gfv-v)); box-shadow: 0 0 40px rgba(236,72,153,.5); z-index: 1; }
.gfv-hubpic i { position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px; border-radius: 50%; background: #3f3f46; transform: rotate(var(--a)) translateX(68px); animation: gfv-orbit 12s linear infinite; }
@keyframes gfv-orbit { from { transform: rotate(var(--a)) translateX(68px); } to { transform: rotate(calc(var(--a) + 360deg)) translateX(68px); } }
.gfv-hubpic em { position: absolute; bottom: -14px; font-family: var(--gfv-mono); font-style: normal; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: #a1a1aa; background: #18181f; border: 1px solid #2a2a33; border-radius: 99px; padding: 3px 10px; }

/* ================= gradient band ================= */
.gfv-band { position: relative; margin: 0 6px; padding: 120px 0 130px; border-radius: 0 0 28px 28px; overflow: hidden; isolation: isolate;
    background: radial-gradient(60% 90% at var(--mx, 50%) 100%, #2563eb 0%, transparent 70%), radial-gradient(50% 80% at 15% 100%, #7c3aed, transparent 70%), linear-gradient(180deg, #000 0%, #0b0520 40%, #1e0b4b 100%); }
.gfv-band .gfv-title { color: #fff; max-width: 900px; margin: 0 auto; }
.gfv-band-more { display: inline-block; margin-top: 16px; color: #d4d4d8 !important; font-size: 14px; text-decoration: underline !important; text-underline-offset: 3px; }
.gfv-band-dots { position: absolute; inset: auto 0 0; height: 60%; z-index: -1; opacity: .45;
    background-image: radial-gradient(rgba(255,255,255,.55) 1px, transparent 1.4px); background-size: 14px 14px;
    -webkit-mask: linear-gradient(transparent, #000); mask: linear-gradient(transparent, #000); }

/* ================= teams ================= */
.gfv-teams { padding-top: 140px; }
.gfv-tab-r { position: absolute; opacity: 0; pointer-events: none; }
.gfv-tabs { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 30px 0 22px; }
.gfv-tab { padding: 6px 14px; border-radius: 99px; border: 1px solid #e1e1e7; font-size: 13.5px; color: #4b4f5c; cursor: pointer; transition: all .2s; user-select: none; }
.gfv-tab:hover { border-color: #c9cad3; color: var(--gfv-ink); }
.gfv-tab-all { color: #4b4f5c; }
#gfv-tab-0:checked ~ .gfv-tabs [data-gfv-tab="0"], #gfv-tab-1:checked ~ .gfv-tabs [data-gfv-tab="1"], #gfv-tab-2:checked ~ .gfv-tabs [data-gfv-tab="2"],
#gfv-tab-3:checked ~ .gfv-tabs [data-gfv-tab="3"], #gfv-tab-4:checked ~ .gfv-tabs [data-gfv-tab="4"], #gfv-tab-5:checked ~ .gfv-tabs [data-gfv-tab="5"] {
    border-color: #3b82f6; color: #1d4ed8; background: #eff6ff; box-shadow: 0 0 0 3px rgba(59,130,246,.15);
}
.gfv-panels { position: relative; background: #f7f7f9; border: 1px solid #eeeef2; border-radius: 22px; overflow: hidden; }
.gfv-panel { display: none; grid-template-columns: 1.05fr 1fr; gap: 40px; padding: 44px 48px; }
#gfv-tab-0:checked ~ .gfv-panels .gfv-panel-0, #gfv-tab-1:checked ~ .gfv-panels .gfv-panel-1, #gfv-tab-2:checked ~ .gfv-panels .gfv-panel-2,
#gfv-tab-3:checked ~ .gfv-panels .gfv-panel-3, #gfv-tab-4:checked ~ .gfv-panels .gfv-panel-4, #gfv-tab-5:checked ~ .gfv-panels .gfv-panel-5 { display: grid; animation: gfv-pop .45s ease both; }
.gfv-panel .gfv-title { font-size: clamp(28px, 3vw, 38px); line-height: 1.1; }
.gfv-panel-l p { margin: 14px 0 0; font-size: 15px; color: #3f4350; max-width: 420px; }
.gfv-brings { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 18px; }
.gfv-brings .gfv-mono { margin-right: 6px; }
.gfv-brings > span:not(.gfv-mono) { font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 6px; background: #fff; border: 1px solid #e6e6ec; color: #3f4350; }
.gfv-checks { list-style: none; padding: 0; margin: 16px 0 24px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: #3f4350; }
.gfv-checks li { display: flex; align-items: center; gap: 8px; }
.gfv-checks .gfv-ic { color: #16a34a; }
.gfv-panel-r .gfv-mono { display: block; margin-bottom: 10px; }
.gfv-agentlist { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.gfv-agentlist li { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: #fff; border-radius: 12px; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 6px 16px -8px rgba(0,0,0,.08); font-size: 14px; color: var(--gfv-ink); animation: gfv-pop .45s ease both; animation-delay: calc(var(--i) * .08s + .1s); transition: transform .2s; }
.gfv-agentlist li:hover { transform: translateX(4px); }
.gfv-agentlist .gfv-av { width: 30px; height: 30px; }

/* ================= numbers ================= */
.gfv-nums { padding-top: 150px; }
.gfv-nums .gfv-title, .gfv-wss .gfv-title { font-size: clamp(32px, 3.9vw, 46px); }
.gfv-nums-h { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.gfv-nums-h .gfv-sub { margin-left: 0; }
.gfv-nums-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); border-top: 1px solid var(--gfv-line); margin-top: 40px; }
.gfv-num { padding: 16px 20px 20px 0; border-right: 1px solid var(--gfv-line); margin-right: 20px; min-height: 230px; display: flex; flex-direction: column; transition: background .2s; }
.gfv-num:last-child { border-right: 0; }
.gfv-num b { font-family: var(--gfv-head); font-size: 40px; font-weight: 600; color: var(--gfv-ink); letter-spacing: -0.04em; margin-top: 12px; font-variant-numeric: tabular-nums; }
.gfv-num p { margin: auto 0 0; font-size: 12.5px; color: var(--gfv-mute); max-width: 230px; }
.gfv-num:hover b { background: linear-gradient(90deg, var(--gfv-o), var(--gfv-p), var(--gfv-v)); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ================= workspaces ================= */
.gfv-wss { padding-top: 150px; }
.gfv-wss-g { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 40px; }
.gfv-ws { position: relative; border-radius: 18px; overflow: hidden; aspect-ratio: 9 / 16; max-height: 620px; width: 100%; background: #111; display: block; }
.gfv-ws img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.gfv-ws:hover img { transform: scale(1.05); }
.gfv-ws::after { content: ""; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgba(0,0,0,.8)); }
.gfv-ws-t { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 22px; color: #fff; display: flex; flex-direction: column; gap: 12px; }
.gfv-ws-t b { font-size: 17px; font-weight: 600; line-height: 1.35; }
.gfv-ws-t > span { display: flex; justify-content: space-between; align-items: center; font-size: 13px; }
.gfv-ws-t em { font-style: normal; color: #d4d4d8; }
.gfv-ws-t i { font-style: normal; font-family: var(--gfv-head); font-weight: 700; display: inline-flex; align-items: center; gap: 6px; transition: gap .2s; }
.gfv-ws:hover .gfv-ws-t i { gap: 10px; }

/* ================= methodology ================= */
.gfv-meth { padding-top: 150px; }
.gfv-meth-g { display: grid; grid-template-columns: 1fr 1fr; }
.gfv-meth-a, .gfv-meth-b, .gfv-meth-c, .gfv-meth-d { padding: 34px; min-height: 360px; }
.gfv-meth-a { border-right: 1px solid var(--gfv-line); border-bottom: 1px solid var(--gfv-line); display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.gfv-meth-a .gfv-title { font-size: 36px; max-width: 380px; }
.gfv-meth-a .gfv-btn { margin-top: auto; }
.gfv-meth-b { border-bottom: 1px solid var(--gfv-line); display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; align-content: center; perspective: 800px; }
.gfv-badge { position: relative; padding: 14px 8px 18px; text-align: center; background: #fff; border: 1px solid #ececf2; border-radius: 10px 10px 50% 50% / 10px 10px 18% 18%; box-shadow: 0 6px 14px -8px rgba(0,0,0,.18); display: flex; flex-direction: column; gap: 3px; transition: transform .3s; animation: gfv-pop .5s ease both; animation-delay: calc(var(--i) * .06s); }
.gfv-badge::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; border-radius: 10px 10px 0 0; background: linear-gradient(90deg, var(--gfv-o), var(--gfv-p), var(--gfv-v)); }
.gfv-badge:hover { transform: translateY(-4px) rotateX(8deg); }
.gfv-badge small { font-family: var(--gfv-mono); font-size: 8.5px; letter-spacing: .12em; text-transform: uppercase; color: #9a9ca6; }
.gfv-badge b { font-family: var(--gfv-head); font-size: 13.5px; color: var(--gfv-ink); letter-spacing: -0.02em; }
.gfv-badge i { font-style: normal; font-size: 10px; color: var(--gfv-o); font-weight: 700; }
.gfv-meth-c { border-right: 1px solid var(--gfv-line); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; }
.gfv-dots { display: grid; grid-template-columns: repeat(16, 10px); gap: 6px; }
.gfv-dots i { width: 10px; height: 10px; border-radius: 3px; background: var(--gfv-v); transition: transform .3s, background .3s; }
.gfv-dots i.is-off { background: #ececf2; }
.gfv-dots i:hover { transform: scale(1.5); background: var(--gfv-p); }
.gfv-meth-c .gfv-mono { text-align: center; }
.gfv-meth-d { display: flex; flex-direction: column; gap: 12px; }
.gfv-meth-d .gfv-title { font-size: 34px; max-width: 360px; }
.gfv-meth-n { margin-top: auto; display: flex; gap: 40px; }
.gfv-meth-n span { display: flex; flex-direction: column; font-size: 12.5px; color: var(--gfv-mute); max-width: 160px; }
.gfv-meth-n b { font-family: var(--gfv-head); font-size: 34px; font-weight: 600; color: var(--gfv-ink); letter-spacing: -0.04em; }

/* ================= trust ================= */
.gfv-trust { padding-top: 130px; }
.gfv-trust-g { display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.gfv-trust-g .gfv-title { font-size: 36px; }
.gfv-trust-g .gfv-sub { margin-left: 0; max-width: 440px; }
.gfv-seals { display: flex; gap: 0; }
.gfv-seal { width: 110px; height: 110px; display: grid; place-items: center; border-left: 1px solid var(--gfv-line); color: #6b6f7c; }
.gfv-seal .gfv-ic { width: 54px; height: 54px; padding: 12px; border-radius: 50%; border: 1.5px solid #c9cad3; transition: all .3s; }
.gfv-seal:hover .gfv-ic { color: var(--gfv-o); border-color: var(--gfv-o); transform: rotate(-8deg) scale(1.08); }
.gfv-trust-l { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-top: 1px solid var(--gfv-line); margin-top: 22px; padding-top: 14px; font-family: var(--gfv-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: #8b8d97; }
.gfv-trust-l > span { display: inline-flex; align-items: center; gap: 8px; }
.gfv-trust-l > div { display: flex; }
.gfv-trust-l > div span { width: 110px; text-align: center; }

/* ================= final ================= */
.gfv-final { position: relative; margin: 110px 12px 0; border-radius: 28px; overflow: hidden; padding: 80px 0 0; isolation: isolate;
    background: radial-gradient(70% 60% at var(--mx, 50%) 0%, #f472b6, transparent 70%), linear-gradient(115deg, #f97316 0%, #ec4899 38%, #8b5cf6 68%, #3b82f6 100%); }
.gfv-final .gfv-title { color: #fff; max-width: 900px; margin: 0 auto; }
.gfv-final-logo { display: inline-grid; place-items: center; width: 92px; height: 92px; border-radius: 24px; background: #fff; box-shadow: 0 18px 40px rgba(0,0,0,.2); margin-bottom: 26px; transition: transform .4s; }
.gfv-final-logo:hover { transform: rotate(-6deg) scale(1.05); }
.gfv-final-logo img { width: 60px; height: 60px; }
.gfv-final-pic { position: relative; max-width: 1020px; margin: 50px auto 0; padding-bottom: 0; height: 380px; overflow: hidden; }
.gfv-wk-final { margin: 0; border-radius: 16px 16px 0 0; border-color: rgba(255,255,255,.4); }
.gfv-wk-final .gfv-wk-body { height: 460px; }
.gfv-app-final { flex: 1; min-height: 0; margin: 0; border: 0; border-radius: 0; box-shadow: none; }
.gfv-app-final .gfv-app-body { grid-template-columns: minmax(0, 1fr); height: 100%; }
.gfv-app-final .gfv-pane { padding-right: 250px; } /* the phone stands over the right of the window */
.gfv-crumb { color: #9a9ca6; font-weight: 500; margin-right: 2px; }
.gfv-wk-sub > span.is-on { color: var(--wk-ink); font-weight: 600; box-shadow: inset 0 -2px 0 var(--wk-acc); align-self: stretch; }
.gfv-phone { position: absolute; right: 2%; top: 24px; width: 210px; height: 352px; border-radius: 34px; background: #111; padding: 8px; box-shadow: 0 30px 60px rgba(0,0,0,.35); transition: transform .5s; }
.gfv-final-pic:hover .gfv-phone { transform: translateY(-10px) rotate(1.5deg); }
.gfv-phone-in { position: relative; height: 100%; border-radius: 27px; background: #f3f4f7; color: #11132a; padding: 10px 10px 0; display: flex; flex-direction: column; gap: 8px; font-size: 10.5px; text-align: left; overflow: hidden; }
.gfv-phone-t { font-weight: 700; font-size: 11px; padding-left: 6px; }
.gfv-ph-top { display: flex; align-items: center; gap: 8px; color: #11132a; }
.gfv-ph-ws { flex: 1; display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 11.5px; }
.gfv-ph-ws .gfv-wk-cm { width: 18px; height: 18px; font-size: 10px; border-radius: 5px; }
.gfv-ph-top .gfv-av { width: 20px; height: 20px; font-size: 9px; }
.gfv-ph-timer { display: flex; align-items: center; gap: 7px; background: #fff; border: 1px solid #e6e8ec; border-radius: 11px; padding: 6px 8px; }
.gfv-ph-timer > i { width: 7px; height: 7px; border-radius: 99px; background: #22c55e; box-shadow: 0 0 0 3px rgba(34,197,94,.18); flex: none; }
.gfv-ph-timer span { flex: 1; display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.gfv-ph-timer small { color: #6b7280; font-size: 9px; }
.gfv-ph-timer em { font-style: normal; font-family: var(--gfv-mono); font-size: 10px; }
.gfv-ph-apps { background: #fff; border-radius: 13px; overflow: hidden; border: 1px solid #e6e8ec; }
.gfv-ph-apps-h { display: flex; align-items: baseline; justify-content: space-between; padding: 8px 10px; background: linear-gradient(135deg, #11132a, #1e2a78); color: #fff; }
.gfv-ph-apps-h small { color: rgba(255,255,255,.7); font-size: 9px; }
.gfv-ph-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 4px; padding: 9px 6px; }
.gfv-ph-tile { display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 8.5px; color: #374151; }
.gfv-ph-tile i { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; }
.gfv-ph-h0 { background: #e3edff; color: #1d4ed8; } .gfv-ph-h1 { background: #dcfce7; color: #15803d; } .gfv-ph-h2 { background: #ffedd5; color: #c2410c; }
.gfv-ph-h3 { background: #fce7f3; color: #be185d; } .gfv-ph-h4 { background: #ede9fe; color: #6d28d9; } .gfv-ph-h6 { background: #cffafe; color: #0e7490; }
.gfv-ph-card { background: #fff; border: 1px solid #e6e8ec; border-radius: 13px; padding: 8px 10px; display: flex; flex-direction: column; gap: 6px; }
.gfv-ph-card span { display: flex; align-items: center; gap: 6px; color: #374151; }
.gfv-ph-card span i { width: 10px; height: 10px; border-radius: 99px; border: 1.5px solid #c5c9d6; flex: none; }
.gfv-ph-bar { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-around; align-items: flex-end; background: #fff; border-top: 1px solid #e6e8ec; padding: 6px 4px 12px; }
.gfv-ph-bar span { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 8px; color: #6b7280; }
.gfv-ph-bar span.is-on { color: #11132a; }
.gfv-ph-bar em { position: absolute; top: -4px; right: 2px; background: #ef4444; color: #fff; font-style: normal; font-size: 7.5px; font-weight: 700; border-radius: 99px; padding: 0 3px; line-height: 11px; }
.gfv-ph-cap i { width: 28px; height: 28px; border-radius: 99px; background: #f97316; color: #fff; display: grid; place-items: center; margin-top: -10px; }

/* ================= responsive ================= */
@media (max-width: 1080px) {
    .gfv-app-body { grid-template-columns: 58px minmax(0, 1fr); }
    .gfv-wall { grid-template-columns: repeat(8, minmax(0, 1fr)); }
    .gfv-tile-edge { display: none; }
    .gfv-wall .gfv-tile, .gfv-wall .gfv-big { grid-column: auto !important; grid-row: auto !important; }
    .gfv-wall .gfv-big { grid-column: span 2 !important; grid-row: span 2 !important; }
    .gfv-wall { grid-auto-flow: dense; }
}
@media (max-width: 860px) {
    .gfv-sec { padding-top: 90px; }
    .gfv-strip-in { flex-direction: column; align-items: flex-start; gap: 14px; }
    .gfv-marks { width: 100%; justify-content: flex-start; flex-wrap: nowrap; animation: gfv-marquee 18s linear infinite; }
    .gfv-ctx-cols { grid-template-columns: 1fr; gap: 22px; }
    .gfv-ctx-col { border-left: 0; padding: 0; text-align: center; }
    .gfv-ctx-col::before { display: none; }
    .gfv-ctx-col p { margin-left: auto; margin-right: auto; }
    .gfv-knot { height: 220px; }
    .gfv-say { font-size: 11px; padding: 5px 9px; }
    .gfv-wall { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 92px; }
    .gfv-dgrid-3, .gfv-dgrid-6 { grid-template-columns: 1fr; }
    .gfv-dcard { border-right: 0 !important; border-bottom: 1px solid #222228 !important; min-height: 300px; }
    .gfv-dcard:last-child { border-bottom: 0 !important; }
    .gfv-panel { grid-template-columns: 1fr; padding: 28px 22px; gap: 28px; }
    .gfv-nums-h { flex-direction: column; align-items: flex-start; }
    .gfv-nums-g { grid-template-columns: 1fr 1fr; }
    .gfv-num { min-height: 170px; border-right: 0; border-bottom: 1px solid var(--gfv-line); margin-right: 0; padding-right: 12px; }
    .gfv-wss-g { grid-template-columns: 1fr; }
    .gfv-ws { aspect-ratio: 4 / 5; }
    .gfv-meth-g { grid-template-columns: 1fr; }
    .gfv-meth-a, .gfv-meth-b, .gfv-meth-c, .gfv-meth-d { border-right: 0; min-height: 0; padding: 26px 4px; }
    .gfv-meth-c { border-bottom: 1px solid var(--gfv-line); }
    .gfv-dots { grid-template-columns: repeat(14, 9px); gap: 5px; }
    .gfv-dots i { width: 9px; height: 9px; }
    .gfv-trust-g { flex-direction: column; align-items: flex-start; }
    .gfv-seals { width: 100%; }
    .gfv-seal { flex: 1; width: auto; height: 90px; }
    .gfv-seal:first-child { border-left: 0; }
    .gfv-trust-l { flex-direction: column; align-items: flex-start; }
    .gfv-trust-l > div { width: 100%; }
    .gfv-trust-l > div span { flex: 1; width: auto; font-size: 9px; }
    .gfv-phone { display: none; }
    .gfv-app-final .gfv-pane { padding-right: 18px; }
    .gfv-final-pic { height: 300px; }
}
@keyframes gfv-marquee { from { transform: translateX(0); } to { transform: translateX(-40%); } }
@media (max-width: 560px) {
    .gfv-hero { padding-top: 36px; }
    .gfv-lead { font-size: 16px; }
    .gfv-cta .gfv-btn { flex: 1; }
    .gfv-app-body { grid-template-columns: minmax(0, 1fr); height: 380px; }
    .gfv-row { grid-template-columns: 22px minmax(0, 1fr) 24px 52px; }
    .gfv-row > :nth-child(5) { display: none; }
    .gfv-board { grid-template-columns: minmax(0, 1fr); }
    .gfv-board .gfv-col:nth-child(n+2) { display: none; }
    .gfv-say:nth-of-type(2) { display: none; }
    .gfv-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 86px; }
    .gfv-wall .gfv-big { grid-column: span 3 !important; grid-row: span 2 !important; }
    .gfv-wall .gfv-tile:nth-child(n+20) { display: none; }
    .gfv-views span { display: none; }
    .gfv-pane-h > b { white-space: nowrap; }
    .gfv-tile { font-size: 11.5px; }
    .gfv-big > b { font-size: 17px; }
    .gfv-agents-stage { margin: 40px 0 0; }
    .gfv-portrait { aspect-ratio: auto; height: 420px; border-radius: 20px; }
    .gfv-portrait img { object-fit: cover; object-position: 50% 30%; }
    .gfv-visor, .gfv-glyphs span:nth-child(n+3) { display: none; }
    .gfv-dark { margin: 8px 0 0; border-radius: 20px 20px 0 0; padding: 90px 0 80px; }
    .gfv-band { margin: 0; }
    .gfv-brand { font-size: 30px; }
    .gfv-meth-b { grid-template-columns: repeat(2, 1fr); }
    .gfv-nums-g { grid-template-columns: 1fr; }
    .gfv-final { margin: 80px 0 0; border-radius: 20px; padding-top: 56px; }
}

.gfv-br { display: block; }
@media (max-width: 860px) { .gfv-br { display: inline; } }

/* ================= the hero's workspace demo (gfHomeV2WorkMock) =================
   The GFunnel workspace home as members see it: strip, header, hub tabs and
   the three columns. Sized as a still at full width and scaled by a container
   query below, so it reads as the real screen rather than a sketch. */
.gfv-wk {
    --wk-navy: #151a45; --wk-ink: #1d2233; --wk-mute: #6b7080; --wk-line: #e4e6ee; --wk-ground: #eef0f6; --wk-acc: #f97316;
    margin: 44px 0 0; border: 1px solid var(--gfv-line); border-radius: 16px; overflow: hidden; background: #fff; text-align: left;
    box-shadow: 0 30px 80px -30px rgba(17,24,39,.28), 0 2px 6px rgba(17,24,39,.05);
    font-size: 12px; line-height: 1.4; color: var(--wk-ink); container-type: inline-size;
}
.gfv-wk button, .gfv-wk input { font: inherit; color: inherit; }
.gfv-wk-top { display: flex; align-items: center; gap: 12px; height: 46px; padding: 0 14px 0 0; border-bottom: 1px solid var(--wk-line); background: #fff; }
.gfv-wk-burger { width: 52px; display: grid; place-items: center; gap: 3px; flex: none; }
.gfv-wk-burger i { display: block; width: 15px; height: 2px; border-radius: 2px; background: #3b3f4f; }
.gfv-wk-switch { display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--wk-line); border-radius: 9px; padding: 5px 9px; font-weight: 600; white-space: nowrap; }
.gfv-wk-switch b { max-width: 130px; overflow: hidden; text-overflow: ellipsis; }
.gfv-wk-cm { width: 20px; height: 20px; border-radius: 6px; background: linear-gradient(135deg, #f59e0b, #e11d48); color: #fff; font-style: normal; font-weight: 700; font-size: 11px; display: inline-grid; place-items: center; flex: none; }
.gfv-wk-search { flex: 1; max-width: 520px; display: inline-flex; align-items: center; gap: 8px; color: #9a9da9; border: 1px solid var(--wk-line); border-radius: 99px; padding: 7px 12px; background: #f8f9fc; }
.gfv-wk-search kbd { margin-left: auto; font: 10px var(--gfv-body); color: #a5a8b3; border: 1px solid var(--wk-line); border-radius: 5px; padding: 1px 5px; }
.gfv-wk-timer { margin-left: auto; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--wk-line); border-radius: 99px; padding: 5px 11px; color: var(--wk-mute); cursor: pointer; white-space: nowrap; user-select: none; }
.gfv-wk-timer i { width: 0; height: 0; border-left: 7px solid #3b3f4f; border-top: 4px solid transparent; border-bottom: 4px solid transparent; }
.gfv-wk-timer b { font-family: var(--gfv-mono); color: var(--wk-ink); font-weight: 500; }
.gfv-wk-timer.is-run { border-color: #fdba74; background: #fff7ed; color: #c2410c; }
.gfv-wk-timer.is-run i { width: 8px; height: 8px; border: 0; background: #ea580c; border-radius: 2px; }
.gfv-wk-new { background: #fff1e6; color: #ea580c; border-radius: 8px; padding: 5px 10px; font-weight: 600; white-space: nowrap; }
.gfv-wk-icons { display: inline-flex; align-items: center; gap: 14px; color: #3b3f4f; }
.gfv-wk-bell { position: relative; display: inline-flex; }
.gfv-wk-bell em { position: absolute; top: -6px; right: -7px; background: #ef4444; color: #fff; font-style: normal; font-size: 8.5px; font-weight: 700; border-radius: 99px; padding: 0 4px; line-height: 13px; }
.gfv-wk-me { width: 28px; height: 28px; font-size: 11px; }
.gfv-wk-body { display: grid; grid-template-columns: 52px minmax(0, 1fr); height: 640px; }
.gfv-wk-strip { border-right: 1px solid var(--wk-line); background: #fff; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 10px 0; }
.gfv-wk-brand img { width: 22px; height: 22px; object-fit: contain; margin-bottom: 4px; }
.gfv-wk-ws { width: 30px; height: 30px; border-radius: 9px; border: 0; color: #fff; font-weight: 700; font-size: 12px; cursor: pointer; position: relative; transition: transform .15s; }
.gfv-wk-ws:hover { transform: scale(1.06); }
.gfv-wk-ws.is-on::before { content: ""; position: absolute; left: -11px; top: 6px; bottom: 6px; width: 3px; border-radius: 0 3px 3px 0; background: var(--wk-ink); }
.gfv-wk-ws.is-on { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #c7cbe0; }
.gfv-wk-cm, .gfv-wk-ws.gfv-wk-cm { background: linear-gradient(135deg, #f59e0b, #e11d48); }
.gfv-wk-cr { background: linear-gradient(135deg, #111827, #4b5563); }
.gfv-wk-cn { background: linear-gradient(135deg, #a855f7, #6366f1); }
.gfv-wk-cl { background: linear-gradient(135deg, #fb923c, #ef4444); }
.gfv-wk-ck { background: linear-gradient(135deg, #22c55e, #059669); }
.gfv-wk-ce { background: linear-gradient(135deg, #14b8a6, #0ea5e9); }
.gfv-wk-cb { background: linear-gradient(135deg, #84cc16, #16a34a); }
.gfv-wk-wsadd { width: 30px; height: 30px; border-radius: 9px; border: 1.5px dashed #c5c9d6; display: grid; place-items: center; color: #8a8e9c; }
.gfv-wk-main { position: relative; display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; background: var(--wk-ground); }
.gfv-wk-sub { display: flex; align-items: center; gap: 22px; height: 36px; padding: 0 18px; background: #fff; border-bottom: 1px solid var(--wk-line); color: #3b3f4f; white-space: nowrap; overflow: hidden; }
.gfv-wk-sub > span { display: inline-flex; align-items: center; gap: 6px; }
.gfv-wk-addtab { color: var(--wk-mute); }
.gfv-wk-clock { margin-left: auto; color: var(--wk-mute); }
.gfv-wk-clock b { font-weight: 500; }
.gfv-wk-tabs { display: flex; justify-content: center; padding-top: 12px; }
.gfv-wk-tabs span { font-weight: 600; padding: 0 22px 8px; border-bottom: 2px solid #3b5bdb; }
.gfv-wk-tools { display: flex; justify-content: flex-end; gap: 16px; padding: 10px 18px 8px; color: #3b3f4f; font-size: 11.5px; }
.gfv-wk-tools span { display: inline-flex; align-items: center; gap: 5px; }
.gfv-wk-grid { flex: 1; min-height: 0; display: grid; grid-template-columns: 220px minmax(0, 1fr) 230px; gap: 14px; padding: 0 18px; }
.gfv-wk-col { display: flex; flex-direction: column; gap: 12px; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; padding-bottom: 14px; }
.gfv-wk-col::-webkit-scrollbar { display: none; }
.gfv-wk-mid { min-width: 0; }
.gfv-wk-card { background: #fff; border-radius: 12px; padding: 13px 14px; box-shadow: 0 1px 2px rgba(17,24,39,.05); flex: none; }
.gfv-wk-h { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--wk-ink); }
.gfv-wk-h em { font-style: normal; font-weight: 600; font-size: 10px; background: #eef0f6; border-radius: 99px; padding: 1px 6px; color: var(--wk-mute); }
.gfv-wk-hs { display: block; color: var(--wk-mute); font-size: 10.5px; margin-top: 2px; }
.gfv-wk-hrow { display: flex; align-items: center; justify-content: space-between; }
.gfv-wk-act { color: var(--wk-acc); font-weight: 600; font-size: 11px; }
.gfv-wk-add { display: inline-block; margin-top: 8px; color: var(--wk-acc); font-weight: 600; font-size: 11px; }
/* profile card */
.gfv-wk-pc { padding: 0 0 12px; overflow: hidden; text-align: center; }
.gfv-wk-cover { height: 70px; position: relative; background: linear-gradient(120deg, #fde68a, #fca5a5 45%, #a5f3fc); }
.gfv-wk-cover span { position: absolute; top: 7px; right: 8px; background: #fff; border-radius: 99px; padding: 2px 8px; font-size: 9.5px; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.gfv-wk-avatar { display: inline-grid; place-items: center; margin-top: -30px; width: 60px; height: 60px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.12); position: relative; }
.gfv-wk-avatar .gfv-wk-cm { width: 52px; height: 52px; border-radius: 50%; font-size: 22px; }
.gfv-wk-pname { display: block; font-size: 16px; font-weight: 700; margin-top: 4px; font-family: var(--gfv-head); }
.gfv-wk-fol { display: inline-flex; align-items: center; gap: 6px; color: var(--wk-mute); font-size: 11px; margin-top: 3px; }
.gfv-wk-stack { display: inline-flex; }
.gfv-wk-stack .gfv-av { width: 18px; height: 18px; font-size: 8.5px; font-style: normal; margin-left: -5px; box-shadow: 0 0 0 2px #fff; }
.gfv-wk-stack .gfv-av:first-child { margin-left: 0; }
.gfv-wk-pcta { display: flex; gap: 6px; padding: 10px 12px 0; }
.gfv-wk-vc { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: #1c2a6b; color: #fff; border-radius: 8px; padding: 7px; font-weight: 600; }
.gfv-wk-dots { display: inline-grid; place-items: center; width: 30px; border: 1px solid var(--wk-line); border-radius: 8px; }
/* links */
.gfv-wk-links { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.gfv-wk-links li { display: flex; align-items: center; gap: 8px; color: #353a4a; }
.gfv-wk-links li i { width: 11px; height: 11px; border: 1.5px solid #9aa0b0; border-radius: 3px; }
.gfv-wk-links li svg { width: 15px; height: 15px; flex: none; color: #6b7080; }
.gfv-wk-links .gfv-wk-lk-facebook svg { color: #1877f2; } .gfv-wk-links .gfv-wk-lk-youtube svg { color: #ff0000; }
.gfv-wk-links .gfv-wk-lk-linkedin svg { color: #0a66c2; } .gfv-wk-links .gfv-wk-lk-instagram svg { color: #d62976; } .gfv-wk-links .gfv-wk-lk-website svg { color: #0f766e; }
.gfv-wk-ql li i { border-radius: 50%; border-color: var(--wk-acc); }
/* members */
.gfv-wk-seg { display: flex; gap: 2px; background: #f1f2f7; border-radius: 8px; padding: 3px; margin-top: 9px; }
.gfv-wk-seg button { flex: 1; border: 0; background: transparent; border-radius: 6px; padding: 4px 0; font-size: 10.5px; color: var(--wk-mute); cursor: pointer; }
.gfv-wk-seg button.is-on { background: #fff; color: var(--wk-ink); font-weight: 600; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.gfv-wk-people { list-style: none; margin: 9px 0 0; padding: 0; display: grid; gap: 8px; }
.gfv-wk-people[hidden] { display: none; }
.gfv-wk-people li { display: flex; align-items: center; gap: 8px; color: #9aa0b0; }
.gfv-wk-pav { position: relative; display: inline-flex; }
.gfv-wk-pav .gfv-av { width: 26px; height: 26px; }
.gfv-wk-dot { position: absolute; right: -1px; bottom: -1px; width: 8px; height: 8px; border-radius: 50%; box-shadow: 0 0 0 2px #fff; }
.gfv-wk-dot-on { background: #22c55e; }
.gfv-wk-dot-off { background: #fff; border: 1.5px solid #a3a7b4; }
.gfv-wk-dot-help { background: #ef4444; }
.gfv-wk-who { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.gfv-wk-who b { color: var(--wk-ink); font-weight: 600; font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gfv-wk-who small { color: var(--wk-mute); font-size: 10px; }
/* applications */
.gfv-wk-apps { padding: 0; overflow: hidden; }
.gfv-wk-appsh { display: flex; align-items: center; gap: 12px; background: var(--wk-navy); color: #fff; padding: 12px 14px; }
.gfv-wk-appsh b { font-size: 14px; font-family: var(--gfv-head); }
.gfv-wk-appsh input { flex: 1; min-width: 0; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.14); border-radius: 9px; padding: 7px 11px; color: #fff; outline: none; }
.gfv-wk-appsh input::placeholder { color: rgba(255,255,255,.6); }
.gfv-wk-appsh input:focus { border-color: rgba(255,255,255,.45); }
.gfv-wk-manage { border: 1px solid rgba(255,255,255,.55); border-radius: 8px; padding: 5px 11px; font-weight: 600; }
.gfv-wk-scope { display: inline-flex; gap: 2px; margin: 11px 14px 0; background: #f1f2f7; border-radius: 8px; padding: 3px; }
.gfv-wk-scope button { border: 0; background: transparent; border-radius: 6px; padding: 4px 10px; font-size: 10.5px; color: var(--wk-mute); cursor: pointer; }
.gfv-wk-scope button.is-on { background: #1c2a6b; color: #fff; font-weight: 600; }
.gfv-wk-tiles { display: flex; flex-wrap: wrap; gap: 14px; padding: 12px 14px 4px; }
.gfv-wk-tile { width: 68px; display: flex; flex-direction: column; align-items: center; gap: 5px; font-size: 10px; color: #4b5060; text-align: center; white-space: nowrap; }
.gfv-wk-tile[hidden] { display: none; }
.gfv-wk-tile i { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; box-shadow: 0 1px 3px rgba(17,24,39,.1), inset 0 0 0 1px #eef0f4; background: #fff; transition: transform .15s, box-shadow .15s; }
.gfv-wk-tile i img { width: 26px; height: 26px; object-fit: contain; }
.gfv-wk a.gfv-wk-tile:hover i { transform: translateY(-2px); box-shadow: 0 6px 14px -6px rgba(17,24,39,.3), inset 0 0 0 1px #e1e4ec; }
.gfv-wk a.gfv-wk-tile:hover { color: var(--wk-ink); }
.gfv-wk-tadd i { box-shadow: inset 0 0 0 1.5px #d9dce6; color: #8a8e9c; }
.gfv-wk-tlogo { background: #fff; }
.gfv-wk-tc-o { color: #ea580c; } .gfv-wk-tc-r { color: #2563eb; } .gfv-wk-tc-g { color: #16a34a; }
.gfv-wk-tc-p { color: #db2777; } .gfv-wk-tc-k { color: #111827; } .gfv-wk-tc-b { color: #7c3aed; } .gfv-wk-tc-y { color: #ca8a04; }
.gfv-wk-none { margin: 4px 14px 8px; color: var(--wk-mute); font-size: 11px; }
.gfv-wk-browse { display: block; text-align: center; border-top: 1px solid var(--wk-line); padding: 9px; font-weight: 600; color: #1c2a6b; margin-top: 8px; }
/* composer + feed */
.gfv-wk-compose { padding-bottom: 12px; }
.gfv-wk-form { display: flex; align-items: center; gap: 9px; margin-top: 9px; border: 1px solid var(--wk-line); border-radius: 10px; padding: 7px 7px 7px 10px; background: #fbfbfd; }
.gfv-wk-form .gfv-av { width: 26px; height: 26px; }
.gfv-wk-form input { flex: 1; min-width: 0; border: 0; background: transparent; outline: none; font-size: 12.5px; }
.gfv-wk-form button { border: 0; background: #1c2a6b; color: #fff; border-radius: 7px; padding: 5px 12px; font-weight: 600; cursor: pointer; }
.gfv-wk-feed { display: flex; flex-direction: column; gap: 12px; }
.gfv-wk-ph { display: flex; align-items: center; gap: 9px; }
.gfv-wk-ph .gfv-av { width: 30px; height: 30px; font-size: 12px; }
.gfv-wk-pt { display: block; font-size: 14px; font-weight: 700; margin-top: 9px; font-family: var(--gfv-head); }
.gfv-wk-pb { margin: 4px 0 0; color: #4b5060; font-size: 12px; }
.gfv-wk-pa { display: flex; gap: 18px; border-top: 1px solid var(--wk-line); margin-top: 10px; padding-top: 8px; color: #4b5060; }
.gfv-wk-pa > * { display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; padding: 0; cursor: pointer; }
.gfv-wk-pa em { font-style: normal; color: var(--wk-mute); }
.gfv-wk-pa .is-on { color: #2563eb; font-weight: 600; }
.gfv-wk-post.is-new { animation: gfv-pop .4s ease both; }
/* calendar + tasks */
.gfv-wk-cal { list-style: none; margin: 9px 0 0; padding: 0; display: grid; gap: 8px; }
.gfv-wk-cal li { display: flex; gap: 9px; align-items: center; }
.gfv-wk-cal li > span { width: 36px; flex: none; text-align: center; border-radius: 8px; background: #f3f4f9; padding: 3px 0; font-size: 14px; font-weight: 700; line-height: 1.1; }
.gfv-wk-cal li > span b { display: block; font-size: 8.5px; color: var(--wk-acc); letter-spacing: .06em; }
.gfv-wk-cal li div { display: flex; flex-direction: column; min-width: 0; }
.gfv-wk-cal li div b { font-weight: 600; font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gfv-wk-cal li div small { color: var(--wk-mute); font-size: 10px; }
.gfv-wk-tasks { list-style: none; margin: 9px 0 0; padding: 0; display: grid; gap: 7px; }
.gfv-wk-tasks li { display: flex; align-items: center; gap: 8px; }
.gfv-wk-tick { width: 15px; height: 15px; flex: none; border-radius: 50%; border: 1.5px solid #b9bdca; background: #fff; display: grid; place-items: center; color: transparent; cursor: pointer; padding: 0; }
.gfv-wk-tasks li.is-done .gfv-wk-tick { background: #22c55e; border-color: #22c55e; color: #fff; }
.gfv-wk-tasks li.is-done span { color: #9aa0b0; text-decoration: line-through; }
.gfv-wk-toast { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); max-width: min(460px, 90%); background: #141833; color: #fff; border-radius: 10px; padding: 9px 14px; font-size: 11.5px; box-shadow: 0 10px 24px -8px rgba(0,0,0,.35); animation: gfv-pop .3s ease both; z-index: 2; }
.gfv-wk-toast a { color: #fdba74; font-weight: 600; text-decoration: underline; }
/* the demo narrows the way the real home does: the week folds first, then the company */
@container (max-width: 1060px) {
    .gfv-wk-grid { grid-template-columns: 210px minmax(0, 1fr); }
    .gfv-wk-right { display: none; }
    .gfv-wk-new, .gfv-wk-icons { display: none; }
}
@container (max-width: 760px) {
    .gfv-wk-grid { grid-template-columns: minmax(0, 1fr); padding: 0 12px; }
    .gfv-wk-left, .gfv-wk-tools, .gfv-wk-search, .gfv-wk-timer { display: none; }
    .gfv-wk-body { grid-template-columns: 44px minmax(0, 1fr); height: 560px; }
    .gfv-wk-burger { width: 44px; }
    .gfv-wk-me { margin-left: auto; }
    .gfv-wk-sub { gap: 14px; padding: 0 12px; }
    .gfv-wk-sub > span:nth-child(n+3):not(.gfv-wk-clock) { display: none; }
    .gfv-wk-tile { width: 58px; }
    .gfv-wk-appsh { flex-wrap: wrap; }
    .gfv-wk-appsh b { flex: 1; }
    .gfv-wk-appsh input { order: 3; flex-basis: 100%; }
}
