/* Harmonic London — home.css
   Shared stylesheet. Page-specific colour variables are set in a small
   :root block on each page. */

:root {
            --primary: #0a0e27;
            --primary-light: #1a1f3a;
            --primary-mid: #12163a;
            --accent: #d4af37;
            --accent-dark: #b8942c;
            --accent-light: #e8cc6a;
            --text: #0a0e27;
            --text-light: #64748b;
            --bg: #ffffff;
            --border: #e5e7eb;
            --gray-light: #f8f9fa;
            --cream: #fdfcf8;
            --pastel-blush: #f4d6cc;
            --pastel-lavender: #dcd0f0;
            --pastel-sage: #c8dbc5;
            --pastel-peach: #fadcb0;
            --pastel-sky: #c5dcea;
            --pastel-rose: #e8c4c4;
            --pastel-lilac: #d8c4e8;
            --pastel-mint: #bfe0d4;
        }
        *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

        

        html { scroll-behavior: smooth; }

        body {
            font-family: 'DM Sans', -apple-system, system-ui, sans-serif;
            color: var(--text);
            line-height: 1.7;
            background: var(--bg);
            overflow-x: hidden; padding-top: 68px; }

        .container { max-width: 1200px; margin: 0 auto; padding: 0 40px; }

        /* NAV */
        .nav {
            position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
            padding: 20px 0;
            transition: all 0.4s cubic-bezier(0.4,0,0.2,1);
        }
        .nav.scrolled {
            background: rgba(10,14,39,0.97);
            backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
            padding: 12px 0;
            box-shadow: 0 4px 30px rgba(0,0,0,0.3);
        }
        .nav-inner { display: flex; align-items: center; justify-content: space-between; }
        .logo { font-family:'Playfair Display',serif; font-size:1.5rem; font-weight:700; color:white; text-decoration:none; border:none; }
        .logo span { color: var(--accent); }
        .logo-sub { font-family:'DM Sans',sans-serif; font-size:0.625rem; font-weight:600; color:rgba(255,255,255,0.4); text-transform:uppercase; letter-spacing:0.15em; display:block; margin-top:2px; }
        .nav-links { display:flex; gap:32px; list-style:none; align-items:center; }
        .nav-links a { color:rgba(255,255,255,0.75); text-decoration:none; font-size:0.9375rem; font-weight:500; transition:color 0.3s; border:none; }
        .nav-links a:hover { color:var(--accent); border:none; }
        .nav-cta { background:transparent; border:1.5px solid var(--accent)!important; color:var(--accent)!important; padding:10px 28px; font-size:0.875rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase; cursor:pointer; transition:all 0.3s; text-decoration:none; }
        .nav-cta:hover { background:var(--accent); color:var(--primary)!important; }
        .mobile-toggle { display:none; background:none; border:none; cursor:pointer; padding:8px; }
        .mobile-toggle span { display:block; width:24px; height:2px; background:white; margin:5px 0; }

        /* SHAPES */
        .shape { position:absolute; border-radius:50%; pointer-events:none; z-index:0; filter:blur(60px); opacity:0.5; }
        .shape-crisp { position:absolute; pointer-events:none; z-index:0; opacity:0.15; }
        .sf { animation: sf 16s ease-in-out infinite; }
        .sfr { animation: sfr 20s ease-in-out infinite; }
        .sfs { animation: sf 28s ease-in-out infinite; }
        @keyframes sf { 0%,100%{transform:translate(0,0) rotate(0) scale(1)} 33%{transform:translate(20px,-30px) rotate(8deg) scale(1.05)} 66%{transform:translate(-15px,15px) rotate(-5deg) scale(.97)} }
        @keyframes sfr { 0%,100%{transform:translate(0,0) rotate(0) scale(1)} 33%{transform:translate(-25px,20px) rotate(-10deg) scale(1.03)} 66%{transform:translate(18px,-18px) rotate(6deg) scale(.95)} }

        /* HERO */
        .hero {
            background: var(--primary); color: white;
            min-height: 100vh; display: flex; align-items: center;
            position: relative; overflow: hidden; padding: 160px 0 120px;
        }
        .hero .s1 { width:550px; height:550px; background:var(--pastel-lilac); top:-12%; right:-6%; opacity:.1; filter:blur(90px); }
        .hero .s2 { width:380px; height:380px; background:var(--pastel-peach); bottom:5%; right:20%; opacity:.08; filter:blur(70px); }
        .hero .s3 { width:280px; height:280px; background:var(--pastel-sky); top:45%; left:5%; opacity:.06; filter:blur(60px); }
        .hero .s4 { width:220px; height:220px; background:var(--pastel-sage); bottom:10%; left:-3%; opacity:.08; filter:blur(50px); }

        .hero .ring1 { width:420px; height:420px; border:1px solid rgba(212,175,55,.06); border-radius:50%; top:6%; right:4%; opacity:1; }
        .hero .ring2 { width:260px; height:260px; border:1px solid rgba(212,175,55,.05); border-radius:50%; top:20%; right:10%; opacity:1; }
        .hero .dots { top:62%; right:2%; width:160px; height:160px; background-image:radial-gradient(rgba(212,175,55,.12) 1.5px,transparent 1.5px); background-size:16px 16px; opacity:.5; }

        .hero::after { content:''; position:absolute; bottom:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(212,175,55,.35),transparent); }
        .hero .container { position:relative; z-index:2; }

        .hero-layout { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
        .hero-content { max-width:600px; }

        .hero-badge {
            display:inline-flex; align-items:center; gap:10px;
            background:rgba(212,175,55,.08); border:1px solid rgba(212,175,55,.2);
            padding:8px 20px; margin-bottom:36px;
            font-size:.8125rem; font-weight:600; color:var(--accent);
            letter-spacing:.08em; text-transform:uppercase;
            animation: fiu .8s ease-out .2s both;
        }
        .hero-badge::before { content:''; width:6px; height:6px; background:var(--accent); border-radius:50%; animation:pulse 2s ease-in-out infinite; }
        @keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.4} }

        .hero h1 {
            font-family:'Playfair Display',serif; font-size:clamp(2.75rem,5vw,4.25rem);
            font-weight:600; line-height:1.08; letter-spacing:-.03em; margin-bottom:32px;
            animation: fiu .8s ease-out .4s both;
        }
        .hero h1 em { font-style:italic; color:var(--accent); }

        .hero-sub {
            font-size:1.1875rem; font-weight:400; opacity:.8;
            max-width:540px; line-height:1.7; margin-bottom:44px;
            animation: fiu .8s ease-out .6s both;
        }

        .hero-actions { display:flex; gap:20px; align-items:center; flex-wrap:wrap; animation:fiu .8s ease-out .8s both; }

        .btn-p {
            display:inline-block; background:var(--accent); color:var(--primary);
            padding:18px 44px; font-size:.9375rem; font-weight:700;
            text-transform:uppercase; letter-spacing:.08em; text-decoration:none;
            border:none; cursor:pointer; transition:all .4s cubic-bezier(.4,0,.2,1);
            position:relative; overflow:hidden;
        }
        .btn-p::before { content:''; position:absolute; top:0; left:-100%; width:100%; height:100%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent); transition:left .5s; }
        .btn-p:hover { transform:translateY(-3px); box-shadow:0 12px 32px rgba(212,175,55,.4); border:none; }
        .btn-p:hover::before { left:100%; }

        .btn-s { display:inline-flex; align-items:center; gap:10px; color:rgba(255,255,255,.7); text-decoration:none; font-size:.9375rem; font-weight:500; border:none; transition:color .3s; }
        .btn-s:hover { color:var(--accent); border:none; }
        .btn-s svg { transition:transform .3s; }
        .btn-s:hover svg { transform:translateX(4px); }

        /* Hero visual */
        .hero-visual { position:relative; display:flex; flex-direction:column; gap:16px; animation:fiu .8s ease-out .6s both; }

        .hv-card {
            background:rgba(255,255,255,.05); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
            border:1px solid rgba(255,255,255,.07); border-radius:16px; padding:28px; transition:all .4s;
        }
        .hv-card:hover { border-color:rgba(212,175,55,.2); transform:translateY(-4px); }

        /* Funnel card */
        .hv-main { z-index:2; }
        .hv-funnel {
            width:100%; border-radius:12px; margin-bottom:20px; padding:28px 20px;
            background: linear-gradient(135deg, var(--pastel-lilac), var(--pastel-sky));
            position:relative; overflow:hidden;
            display:flex; align-items:center; justify-content:center;
        }
        .hv-funnel::after {
            content:''; position:absolute; inset:0;
            background:radial-gradient(circle at 25% 40%,var(--pastel-peach),transparent 50%),
                        radial-gradient(circle at 75% 60%,var(--pastel-sage),transparent 50%);
            opacity:.5;
        }
        .funnel-stages { position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:5px; width:100%; }
        .funnel-stage {
            height:26px; background:rgba(10,14,39,.1); border-radius:4px;
            display:flex; align-items:center; justify-content:center;
            font-size:.6rem; font-weight:700; color:rgba(10,14,39,.45);
            text-transform:uppercase; letter-spacing:.1em; transition:all .3s;
        }
        .funnel-stage:nth-child(1) { width:94%; }
        .funnel-stage:nth-child(2) { width:78%; background:rgba(10,14,39,.12); }
        .funnel-stage:nth-child(3) { width:62%; background:rgba(10,14,39,.14); }
        .funnel-stage:nth-child(4) { width:46%; background:rgba(10,14,39,.16); }
        .funnel-stage:nth-child(5) { width:32%; background:rgba(10,14,39,.19); }
        .funnel-stage:nth-child(6) { width:22%; background:rgba(212,175,55,.3); color:var(--primary); font-weight:800; }
        .funnel-arrow { color:rgba(10,14,39,.15); font-size:.625rem; line-height:1; }

        .hv-metrics { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
        .hv-m { text-align:center; }
        .hv-mv { font-family:'Playfair Display',serif; font-size:1.5rem; font-weight:700; color:var(--accent); line-height:1; margin-bottom:4px; }
        .hv-ml { font-size:.6875rem; color:rgba(255,255,255,.4); text-transform:uppercase; letter-spacing:.06em; }

        /* Floating metric cards — flow layout, not absolute */
        .hv-floats { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
        .hv-float {
            display:flex; align-items:center; gap:14px; padding:18px 22px;
            background:rgba(255,255,255,.05); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
            border:1px solid rgba(255,255,255,.07); border-radius:16px; transition:all .4s;
        }
        .hv-float:hover { border-color:rgba(212,175,55,.2); transform:translateY(-4px); }

        .fi { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
        .fi-g { background:rgba(72,187,120,.15); color:#48bb78; }
        .fi-a { background:rgba(212,175,55,.15); color:var(--accent); }
        .fi-b { background:rgba(197,220,234,.15); color:var(--pastel-sky); }
        .ft-s { font-size:.75rem; color:rgba(255,255,255,.4); }
        .ft-l { font-size:.9375rem; font-weight:700; color:white; }

        .sparkline { display:flex; align-items:flex-end; gap:3px; height:30px; }
        .sparkline span { width:4px; border-radius:2px; background:var(--accent); display:block; }

        @keyframes fiu { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }

        /* PROOF STRIP */
        .proof {
            padding:48px 0; background:var(--cream); border-bottom:1px solid var(--border);
            position:relative; overflow:hidden;
        }
        .proof .shape { width:300px; height:300px; background:var(--pastel-peach); top:-50%; left:10%; opacity:.25; filter:blur(80px); }
        .proof-inner { display:flex; align-items:center; justify-content:center; gap:56px; flex-wrap:wrap; position:relative; z-index:1; }
        .pi { display:flex; align-items:center; gap:12px; opacity:.55; transition:opacity .3s; }
        .pi:hover { opacity:.85; }
        .pi-icon { width:36px; height:36px; border-radius:8px; display:flex; align-items:center; justify-content:center; }
        .pi-icon svg { width:18px; height:18px; }
        .pi-t { font-size:.8125rem; font-weight:600; color:var(--text); }
        .pi-s { font-size:.6875rem; color:var(--text-light); }

        /* SECTION COMMON */
        .sec-label { font-size:.75rem; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:.15em; margin-bottom:20px; text-align:center; }
        .sec-title {
            font-family:'Playfair Display',serif; font-size:clamp(2.25rem,4vw,3.25rem);
            font-weight:600; color:var(--primary); line-height:1.15; letter-spacing:-.02em;
            text-align:center; margin-bottom:24px;
        }
        .sec-sub { font-size:1.125rem; color:var(--text-light); text-align:center; max-width:680px; margin:0 auto 72px; }

        /* MANIFESTO */
        .manifesto { padding:160px 0; position:relative; overflow:hidden; background:var(--bg); }
        .manifesto .b1 { width:450px; height:450px; background:var(--pastel-lavender); top:-10%; right:-8%; opacity:.3; filter:blur(80px); border-radius:60% 40% 50% 50%; }
        .manifesto .b2 { width:350px; height:350px; background:var(--pastel-sage); bottom:-15%; left:-5%; opacity:.25; filter:blur(80px); border-radius:40% 60% 45% 55%; }
        .manifesto .b3 { width:200px; height:200px; background:var(--pastel-peach); top:30%; left:20%; opacity:.18; filter:blur(60px); }
        .mf-content { max-width:900px; margin:0 auto; text-align:center; position:relative; z-index:1; }
        .mf-text { font-family:'Playfair Display',serif; font-size:clamp(1.75rem,3vw,2.5rem); font-weight:400; line-height:1.5; color:var(--primary); margin-bottom:36px; }
        .mf-text em { color:var(--accent); font-style:italic; }
        .mf-body { font-size:1.125rem; color:var(--text-light); max-width:700px; margin:0 auto; line-height:1.8; }

        /* IMAGE TRIPTYCH */
        .mf-images { display:flex; justify-content:center; gap:20px; margin-top:72px; }
        .mf-img { border-radius:16px; overflow:hidden; position:relative; }
        .mf-img-inner { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
        .mf-img-1 { width:220px; height:280px; transform:rotate(-3deg); }
        .mf-img-1 .mf-img-inner { background:linear-gradient(160deg,var(--pastel-sky),var(--pastel-lavender)); }
        .mf-img-2 { width:260px; height:320px; margin-top:-20px; }
        .mf-img-2 .mf-img-inner { background:linear-gradient(160deg,var(--pastel-peach),var(--pastel-rose)); }
        .mf-img-3 { width:220px; height:280px; transform:rotate(3deg); margin-top:20px; }
        .mf-img-3 .mf-img-inner { background:linear-gradient(160deg,var(--pastel-mint),var(--pastel-sage)); }
        .img-ph { color:rgba(10,14,39,.1); }
        .img-cap { position:absolute; bottom:14px; left:14px; right:14px; background:rgba(10,14,39,.65); backdrop-filter:blur(8px); padding:10px 14px; border-radius:8px; font-size:.75rem; color:rgba(255,255,255,.85); font-weight:500; }

        /* SERVICES */
        .services { padding:140px 0; background:var(--gray-light); position:relative; overflow:hidden; }
        .services .bt { width:500px; height:500px; background:var(--pastel-blush); top:-15%; left:-10%; opacity:.3; filter:blur(100px); }
        .services .br { width:400px; height:400px; background:var(--pastel-lilac); bottom:10%; right:-10%; opacity:.25; filter:blur(90px); }

        .svc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:20px; position:relative; z-index:1; }

        .svc {
            background:white; padding:44px 36px; border-radius:16px; border:1px solid var(--border);
            transition:all .4s cubic-bezier(.4,0,.2,1); position:relative; overflow:hidden;
            cursor:pointer; text-decoration:none; color:inherit; display:block;
        }
        .svc::before {
            content:''; position:absolute; top:0; right:0; width:120px; height:120px;
            border-radius:50%; filter:blur(40px); opacity:0; transition:opacity .4s;
        }
        .svc:nth-child(1)::before { background:var(--pastel-lavender); }
        .svc:nth-child(2)::before { background:var(--pastel-peach); }
        .svc:nth-child(3)::before { background:var(--pastel-sky); }
        .svc:nth-child(4)::before { background:var(--pastel-sage); }
        .svc:nth-child(5)::before { background:var(--pastel-rose); }
        .svc:nth-child(6)::before { background:var(--pastel-lilac); }
        .svc:nth-child(7)::before { background:var(--pastel-mint); }
        .svc:nth-child(8)::before { background:var(--pastel-blush); }
        .svc:nth-child(9)::before { background:var(--pastel-peach); }
        .svc:hover::before { opacity:.4; }
        .svc:hover { border-color:var(--accent); transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,.06); }

        .svc-icon {
            width:52px; height:52px; border-radius:12px; display:flex; align-items:center;
            justify-content:center; margin-bottom:24px; position:relative; z-index:1;
        }
        .svc:nth-child(1) .svc-icon { background:var(--pastel-lavender); }
        .svc:nth-child(2) .svc-icon { background:var(--pastel-peach); }
        .svc:nth-child(3) .svc-icon { background:var(--pastel-sky); }
        .svc:nth-child(4) .svc-icon { background:var(--pastel-sage); }
        .svc:nth-child(5) .svc-icon { background:var(--pastel-rose); }
        .svc:nth-child(6) .svc-icon { background:var(--pastel-lilac); }
        .svc:nth-child(7) .svc-icon { background:var(--pastel-mint); }
        .svc:nth-child(8) .svc-icon { background:var(--pastel-blush); }
        .svc:nth-child(9) .svc-icon { background:var(--pastel-peach); }
        .svc-icon svg { width:24px; height:24px; color:var(--primary); }

        .svc h3 { font-family:'Playfair Display',serif; font-size:1.375rem; font-weight:600; color:var(--primary); margin-bottom:12px; position:relative; z-index:1; }
        .svc p { font-size:.9375rem; color:var(--text-light); line-height:1.7; margin-bottom:20px; position:relative; z-index:1; }
        .svc-link { font-size:.8125rem; font-weight:600; color:var(--accent); text-transform:uppercase; letter-spacing:.08em; display:inline-flex; align-items:center; gap:8px; text-decoration:none; border:none; transition:gap .3s; position:relative; z-index:1; }
        .svc:hover .svc-link { gap:14px; }

        /* BESPOKE / HOW WE WORK */
        .bespoke { padding:160px 0; background:var(--primary); color:white; position:relative; overflow:hidden; }
        .bespoke .p1 { width:500px; height:500px; background:var(--pastel-lavender); top:-15%; right:-10%; opacity:.06; filter:blur(100px); }
        .bespoke .p2 { width:400px; height:400px; background:var(--pastel-peach); bottom:-10%; left:-8%; opacity:.05; filter:blur(100px); }
        .bespoke .container { position:relative; z-index:1; }
        .bespoke .sec-label { color:var(--accent); }
        .bespoke .sec-title { color:white; }
        .bespoke .sec-sub { color:rgba(255,255,255,.55); }

        .bespoke-grid {
            display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; margin-top:60px;
        }

        .bespoke-left h3 { font-family:'Playfair Display',serif; font-size:2rem; font-weight:600; color:white; line-height:1.2; margin-bottom:24px; }
        .bespoke-left p { font-size:1.0625rem; color:rgba(255,255,255,.6); line-height:1.8; margin-bottom:20px; }

        .tier-cards { display:flex; flex-direction:column; gap:16px; }
        .tier {
            padding:32px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06);
            border-radius:16px; transition:all .4s; position:relative; overflow:hidden;
        }
        .tier::before {
            content:''; position:absolute; top:-30px; right:-30px; width:100px; height:100px;
            border-radius:50%; opacity:0; filter:blur(30px); transition:opacity .4s;
        }
        .tier:nth-child(1)::before { background:var(--pastel-sage); }
        .tier:nth-child(2)::before { background:var(--pastel-sky); }
        .tier:nth-child(3)::before { background:var(--pastel-lilac); }
        .tier:hover::before { opacity:.15; }
        .tier:hover { background:rgba(255,255,255,.07); border-color:rgba(212,175,55,.2); }

        .tier-label { font-size:.6875rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; margin-bottom:10px; }
        .tier:nth-child(1) .tier-label { color:var(--pastel-sage); }
        .tier:nth-child(2) .tier-label { color:var(--pastel-sky); }
        .tier:nth-child(3) .tier-label { color:var(--pastel-lilac); }

        .tier h4 { font-size:1.125rem; font-weight:700; color:white; margin-bottom:8px; }
        .tier p { font-size:.875rem; color:rgba(255,255,255,.5); line-height:1.7; margin:0; }

        /* PLEDGE */
        .pledge { padding:140px 0; background:var(--bg); position:relative; overflow:hidden; }
        .pledge .bl { width:400px; height:400px; background:var(--pastel-rose); top:-10%; right:10%; opacity:.2; filter:blur(100px); }

        .pledge-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; position:relative; z-index:1; }
        .p-card {
            background:white; padding:40px 32px; border-radius:16px; border:1px solid var(--border);
            transition:all .4s; position:relative; overflow:hidden;
        }
        .p-card:hover { border-color:var(--accent); transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.06); }

        .p-icon { width:48px; height:48px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:24px; }
        .p-card:nth-child(1) .p-icon { background:var(--pastel-lavender); }
        .p-card:nth-child(2) .p-icon { background:var(--pastel-sky); }
        .p-card:nth-child(3) .p-icon { background:var(--pastel-peach); }
        .p-card:nth-child(4) .p-icon { background:var(--pastel-sage); }
        .p-card:nth-child(5) .p-icon { background:var(--pastel-rose); }
        .p-card:nth-child(6) .p-icon { background:var(--pastel-lilac); }
        .p-icon svg { width:22px; height:22px; color:var(--primary); }

        .p-card h3 { font-family:'Playfair Display',serif; font-size:1.1875rem; font-weight:600; color:var(--primary); margin-bottom:12px; }
        .p-card p { font-size:.9375rem; color:var(--text-light); line-height:1.7; margin:0; }

        /* STATS */
        .stats { padding:120px 0; background:var(--gray-light); position:relative; overflow:hidden; }
        .stats .bl { width:450px; height:450px; background:var(--pastel-peach); top:-20%; left:-10%; opacity:.2; filter:blur(100px); }
        .stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative; z-index:1; }
        .stat {
            background:white; padding:48px 28px; text-align:center; border-radius:16px;
            border:1px solid var(--border); transition:all .3s;
        }
        .stat:hover { border-color:var(--accent); transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,.06); }
        .stat-v { font-family:'Playfair Display',serif; font-size:3rem; font-weight:700; color:var(--accent); line-height:1; margin-bottom:12px; }
        .stat-l { font-size:.8125rem; color:var(--text-light); text-transform:uppercase; letter-spacing:.06em; font-weight:500; line-height:1.5; }
        .stat-src { font-size:.6875rem; color:rgba(100,116,139,.5); margin-top:8px; font-style:italic; }

        /* FUTURE */
        .future { padding:160px 0; background:var(--primary-mid); color:white; position:relative; overflow:hidden; }
        .future .fb1 { width:500px; height:500px; background:var(--pastel-lilac); bottom:-20%; right:-10%; opacity:.05; filter:blur(100px); }
        .future .fb2 { width:350px; height:350px; background:var(--pastel-sky); top:-10%; left:20%; opacity:.04; filter:blur(80px); }
        .future .container { position:relative; z-index:1; }

        .fut-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
        .fut-l .sec-label { text-align:left; }
        .fut-l h2 { font-family:'Playfair Display',serif; font-size:clamp(2rem,3.5vw,2.75rem); font-weight:600; color:white; line-height:1.2; margin-bottom:28px; }
        .fut-l p { font-size:1.0625rem; color:rgba(255,255,255,.6); line-height:1.8; }

        .fut-features { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
        .ff {
            padding:30px 24px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06);
            border-radius:14px; transition:all .3s; position:relative; overflow:hidden;
        }
        .ff:hover { background:rgba(255,255,255,.07); border-color:rgba(212,175,55,.2); transform:translateY(-2px); }
        .ff h4 { font-size:.9375rem; font-weight:700; color:white; margin-bottom:8px; }
        .ff p { font-size:.8125rem; color:rgba(255,255,255,.45); line-height:1.7; margin:0; }

        /* FAQ */
        .faq { padding:140px 0; background:var(--cream); position:relative; overflow:hidden; }
        .faq .bl { width:400px; height:400px; background:var(--pastel-sage); bottom:-15%; right:-5%; opacity:.25; filter:blur(100px); }
        .faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:1000px; margin:0 auto; position:relative; z-index:1; }
        .fq {
            background:white; padding:36px; border:1px solid var(--border); border-radius:16px;
            transition:all .3s; position:relative; overflow:hidden;
        }
        .fq::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(to bottom,var(--accent),var(--pastel-peach)); transform:scaleY(0); transform-origin:top; transition:transform .3s; border-radius:4px 0 0 4px; }
        .fq:hover::before { transform:scaleY(1); }
        .fq:hover { border-color:var(--accent); box-shadow:0 8px 24px rgba(0,0,0,.06); transform:translateY(-2px); }
        .fq h4 { font-size:1.0625rem; font-weight:700; color:var(--primary); margin-bottom:12px; line-height:1.4; }
        .fq p { font-size:.9375rem; color:var(--text-light); line-height:1.7; margin:0; }

        /* CTA */
        .cta { padding:160px 0; background:var(--primary); color:white; text-align:center; position:relative; overflow:hidden; }
        .cta .cb1 { width:500px; height:500px; background:var(--pastel-lavender); top:-30%; left:-10%; opacity:.06; filter:blur(100px); }
        .cta .cb2 { width:400px; height:400px; background:var(--pastel-peach); bottom:-25%; right:-8%; opacity:.05; filter:blur(100px); }
        .cta .container { position:relative; z-index:1; }
        .cta h2 { font-family:'Playfair Display',serif; font-size:clamp(2.25rem,4vw,3.5rem); font-weight:600; color:white; margin-bottom:24px; }
        .cta-text { font-size:1.1875rem; color:rgba(255,255,255,.65); max-width:640px; margin:0 auto 48px; line-height:1.7; }
        .cta .btn-p { font-size:1rem; padding:20px 56px; border-radius:60px; }
        .cta-note { font-size:.8125rem; color:rgba(255,255,255,.3); margin-top:20px; }

        /* FOOTER */
        .footer { padding:80px 0 40px; background:#060920; color:white; }
        .f-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:60px; margin-bottom:60px; }
        .f-brand p { font-size:.9375rem; color:rgba(255,255,255,.45); line-height:1.7; margin-top:16px; }
        .f-col h5 { font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--accent); margin-bottom:24px; }
        .f-col ul { list-style:none; }
        .f-col li { margin-bottom:12px; }
        .f-col a { color:rgba(255,255,255,.45); text-decoration:none; font-size:.9375rem; transition:color .3s; border:none; }
        .f-col a:hover { color:var(--accent); border:none; }
        .f-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:40px; border-top:1px solid rgba(255,255,255,.06); }
        .f-bottom p { font-size:.8125rem; color:rgba(255,255,255,.25); margin:0; }
        .f-bl { display:flex; gap:24px; }
        .f-bl a { font-size:.8125rem; color:rgba(255,255,255,.25); text-decoration:none; border:none; }
        .f-bl a:hover { color:var(--accent); }

        a { color:var(--primary); text-decoration:none; font-weight:600; border-bottom:2px solid transparent; transition:border-color .2s; }
        a:hover { border-bottom-color:var(--primary); }
        p { margin-bottom:24px; }

        .reveal { opacity:0; transform:translateY(40px); transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1); }
        .reveal.visible { opacity:1; transform:translateY(0); }
        .rd1 { transition-delay:.1s; } .rd2 { transition-delay:.2s; } .rd3 { transition-delay:.3s; }

        @media(max-width:1024px) {
            .hero-layout,.bespoke-grid,.fut-grid { grid-template-columns:1fr; gap:48px; }
            .pledge-grid { grid-template-columns:repeat(2,1fr); }
            .stats-grid { grid-template-columns:repeat(2,1fr); }
            .f-grid { grid-template-columns:1fr 1fr; gap:40px; }
        }
        @media(max-width:768px) {
            .container { padding:0 24px; }
            .nav-links { display:none; }
            .mobile-toggle { display:block; }
            .hero { padding:120px 0 80px; min-height:auto; }
            .hero-visual { display:none; }
            .hv-floats { grid-template-columns:1fr; }
            .svc-grid { grid-template-columns:1fr; }
            .pledge-grid,.stats-grid { grid-template-columns:1fr; }
            .faq-grid,.fut-features { grid-template-columns:1fr; }
            .mf-images { flex-direction:column; align-items:center; }
            .mf-img-1,.mf-img-3 { transform:none; margin-top:0; }
            .f-grid { grid-template-columns:1fr; gap:32px; }
            .f-bottom { flex-direction:column; gap:16px; text-align:center; }
            .manifesto,.services,.bespoke,.pledge,.stats,.future,.faq,.cta { padding:80px 0; }
            .hero-actions { flex-direction:column; align-items:flex-start; }
        }
        @media(max-width:480px) { .stats-grid { grid-template-columns:1fr; } }
