*,*::before,*::after{box-sizing:border-box;margin:0;padding:0} :root{ --bg:#F6F1E9;--fg:#1C1610; --surface:#EDE7D8;--surface2:#E3DDD0; --accent:#E5451C;--amber:#C98500; --ink:#192C50;--muted:#8B8070; --r:20px;--T:420ms cubic-bezier(.25,.46,.45,.94); } [data-theme="dark"]{ --bg:#1C1610;--fg:#F6F1E9; --surface:#262019;--surface2:#2E2820; --accent:#FF5933;--amber:#FFAE1F; --ink:#243870;--muted:#6C6152; } html{scroll-behavior:smooth} body{ font-family:'DM Sans',sans-serif; background:var(--bg);color:var(--fg); overflow-x:hidden; transition:background var(--T),color var(--T); } body::after{ content:'';position:fixed;inset:0;pointer-events:none;z-index:9000; opacity:.032; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='320' height='320' filter='url(%23g)'/%3E%3C/svg%3E"); } /* ── NAV ──────────────────────────────────── */ nav{ position:fixed;top:0;left:0;right:0;z-index:800; display:flex;align-items:center;justify-content:space-between; padding:20px 48px;background:var(--bg); border-bottom:1px solid transparent; transition:background var(--T),border-color .25s,box-shadow .25s; } nav.stuck{ border-bottom-color:color-mix(in oklch,var(--fg) 8%,transparent); box-shadow:0 2px 40px color-mix(in oklch,var(--fg) 5%,transparent); } .nav-logo{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:21px;letter-spacing:-.04em;color:var(--fg);text-decoration:none; transition:color var(--T); } .nav-logo em{font-style:normal;color:var(--accent)} .nav-links{display:flex;gap:36px;list-style:none} .nav-links a{ font-size:13.5px;font-weight:500;color:var(--muted); text-decoration:none;letter-spacing:.01em;transition:color .2s; } .nav-links a:hover{color:var(--fg)} .nav-r{display:flex;align-items:center;gap:14px} .pill{ font-family:'DM Sans',sans-serif;font-weight:600;font-size:13.5px; padding:9px 20px;border-radius:100px;cursor:pointer; text-decoration:none;display:inline-flex;align-items:center;gap:6px; border:none;transition:transform .2s,opacity .2s,background var(--T),color var(--T),border-color var(--T); } .pill-accent{background:var(--accent);color:#fff} .pill-accent:hover{opacity:.9;transform:translateY(-1px)} .pill-ghost{ background:transparent;color:var(--fg); border:1.5px solid color-mix(in oklch,var(--fg) 22%,transparent); } .pill-ghost:hover{border-color:var(--fg);background:var(--surface)} .theme-btn{ width:38px;height:38px;border-radius:50%; border:1.5px solid color-mix(in oklch,var(--fg) 15%,transparent); background:transparent;cursor:pointer;font-size:15px;color:var(--fg); display:flex;align-items:center;justify-content:center; transition:background .2s,color var(--T),border-color var(--T); } .theme-btn:hover{background:var(--surface)} /* ── HERO ─────────────────────────────────── */ .hero{ height:100vh;min-height:680px; padding:100px 48px 32px; display:flex;flex-direction:column;justify-content:flex-start; position:relative;overflow:hidden; } .hero-meta{ font-family:'Space Mono',monospace; font-size:11px;letter-spacing:.07em;color:var(--muted); display:flex;flex-direction:column;gap:4px; margin-bottom:36px;min-height:54px; position:relative;z-index:2; opacity:0;transition:color var(--T); } /* atmospheric glow — pure CSS */ .hero::before{ content:'';position:absolute; right:14%;top:50%; width:520px;height:520px;border-radius:50%; transform:translateY(-50%);pointer-events:none;z-index:0; background:radial-gradient(circle at center, color-mix(in oklch,var(--accent) 7%,transparent) 0%, transparent 64%); transition:background var(--T); } [data-theme="dark"] .hero::before{ background:radial-gradient(circle at center, color-mix(in oklch,var(--accent) 13%,transparent) 0%, transparent 58%); } .hero-l{max-width:min(820px,58vw);position:relative;z-index:1} /* ── ROTATING EDITORIAL BADGE ─────────────── */ .hero-badge{ position:absolute; right:13%;top:52%; transform:translateY(-50%) rotate(-8deg); width:250px;height:250px;z-index:1; color:var(--fg); opacity:0; animation:badge-in .55s cubic-bezier(.34,1.4,.64,1) 1.1s forwards; transition:color var(--T); } @keyframes badge-in{ from{opacity:0;transform:translateY(-50%) rotate(-8deg) scale(.82)} to {opacity:1;transform:translateY(-50%) rotate(-8deg) scale(1)} } .badge-spin{ animation:spin-cw 24s linear infinite; transform-origin:125px 125px; } @keyframes spin-cw{ from{transform:rotate(0deg)} to {transform:rotate(360deg)} } @media(prefers-reduced-motion:reduce){ .badge-spin{animation:none} .hero-badge{animation:none;opacity:1;transform:translateY(-50%) rotate(-8deg)} } /* meta-row + cursor styles */ .meta-row{display:flex;gap:10px} .mk{color:var(--muted);min-width:38px} .mv{color:var(--fg)} /* typewriter cursor */ .tw-cursor{ color:var(--accent);opacity:1; animation:blink .75s steps(1) infinite; } @keyframes blink{50%{opacity:0}} .hero-hl{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:clamp(60px,10vw,148px); line-height:.9;letter-spacing:-.046em;margin-bottom:36px; opacity:0;transform:translateY(24px); animation:up .65s .25s ease forwards; } .hero-hl em{font-style:italic;color:var(--accent)} .hero-sub{ font-size:clamp(15px,1.5vw,19px); color:var(--muted);max-width:480px;line-height:1.62;margin-bottom:44px; opacity:0;transform:translateY(10px); animation:up .5s .45s ease forwards; } .hero-sub strong{color:var(--fg);font-weight:600} .hero-ctas{ display:flex;align-items:center;gap:14px; opacity:0;transform:translateY(10px); animation:up .5s .62s ease forwards; } .hero-ctas .pill{font-size:15px;padding:13px 28px} @keyframes up{ from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} } /* hero-badge opacity fallback (CSS animation handles it, JS as safety) */ /* ── MARQUEE ──────────────────────────────── */ .mq-strip{ overflow:hidden;padding:18px 0; border-top:1px solid color-mix(in oklch,var(--fg) 7%,transparent); border-bottom:1px solid color-mix(in oklch,var(--fg) 7%,transparent); background:var(--bg);transition:background var(--T); } .mq-track{ display:flex;gap:52px;white-space:nowrap; animation:mq 30s linear infinite; } .mq-item{ font-family:'Space Mono',monospace; font-size:11px;letter-spacing:.13em;text-transform:uppercase; color:var(--muted);flex-shrink:0;transition:color var(--T); } .mq-dot{ display:inline-block;width:4px;height:4px; background:var(--accent);border-radius:50%; vertical-align:middle;flex-shrink:0;transition:background var(--T); } @keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}} /* ── SHARED ───────────────────────────────── */ .wrap{max-width:1440px;margin:0 auto;padding:0 48px} .eyebrow{ font-family:'Space Mono',monospace; font-size:10.5px;letter-spacing:.15em;text-transform:uppercase; color:var(--muted);margin-bottom:28px; display:flex;align-items:center;gap:12px;transition:color var(--T); } .eyebrow::before{ content:'';display:block;width:22px;height:1px; background:var(--muted);transition:background var(--T); } .sec-title{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:clamp(36px,4.4vw,62px);letter-spacing:-.035em;line-height:1; } .sec-title em{font-style:italic;color:var(--accent)} /* ── BENTO ────────────────────────────────── */ .bento-sec{padding:96px 0 120px} .bento-head{ display:flex;align-items:flex-end; justify-content:space-between;gap:32px;margin-bottom:40px; } .bento-hl{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:clamp(36px,4.4vw,64px);letter-spacing:-.035em;line-height:1; } .bento-sub{ max-width:300px;font-size:14px; color:var(--muted);line-height:1.65;text-align:right; transition:color var(--T); } .bento{ display:grid; grid-template-columns:repeat(12,1fr); grid-template-rows:340px 260px 160px; gap:14px; } /* ── TILE BASE ─────────────────────────────── */ .tile{ border-radius:var(--r);padding:36px; position:relative;overflow:hidden;cursor:pointer; transition:transform .35s cubic-bezier(.34,1.1,.64,1), box-shadow .3s,background var(--T),color var(--T), filter .28s ease; opacity:0;transform:scale(.96) translateY(10px); } .tile.in{animation:tile-in .5s cubic-bezier(.34,1.05,.64,1) forwards} @keyframes tile-in{ from{opacity:0;transform:scale(.96) translateY(10px)} to{opacity:1;transform:scale(1) translateY(0)} } [data-theme="light"] .tile:hover{ transform:translateY(-5px) scale(1.008); box-shadow:0 28px 56px color-mix(in oklch,var(--fg) 10%,transparent); } [data-theme="dark"] .tile:hover{ transform:translateY(-5px) scale(1.008); box-shadow:0 24px 56px color-mix(in oklch,var(--accent) 16%,transparent); } /* dim / flood states (set by spam-fx.js) */ .tile.dimmed{ filter:brightness(.45) saturate(.2); transform:scale(.975) !important; box-shadow:none !important; } .tile-flood{ position:absolute;inset:0;pointer-events:none;z-index:1; clip-path:inset(0 100% 0 0 round var(--r)); transition:clip-path .42s cubic-bezier(.4,0,.2,1); } .tile.flooded .tile-flood{clip-path:inset(0 0% 0 0 round var(--r))} /* flood colors per tile type */ .c-surface .tile-flood{background:color-mix(in oklch,var(--accent) 20%,transparent)} .c-surface2 .tile-flood{background:color-mix(in oklch,var(--amber) 20%,transparent)} .c-accent .tile-flood{background:rgba(255,255,255,.13)} .c-ink .tile-flood{background:rgba(255,255,255,.09)} .c-amber .tile-flood{background:rgba(255,255,255,.18)} /* ensure tile content sits above flood layer */ .tile > *:not(.tile-flood){position:relative;z-index:2} /* grid positions */ .t-s{grid-column:1/8;grid-row:1} .t-p{grid-column:8/13;grid-row:1} .t-a{grid-column:1/5;grid-row:2} .t-m{grid-column:5/10;grid-row:2} .t-x{grid-column:10/13;grid-row:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px} .t-bundle{ grid-column:1/13;grid-row:3; display:flex;align-items:center;justify-content:space-between; gap:32px;padding:0 52px;flex-wrap:nowrap; overflow:hidden; } .bundle-left{display:flex;flex-direction:column;gap:0;min-width:0} /* colors */ .c-surface {background:var(--surface)} .c-surface2{background:var(--surface2)} .c-accent {background:var(--accent);color:#fff} .c-ink {background:var(--ink);color:#fff} .c-amber {background:var(--amber);color:#1C1610} /* tile internals */ .t-tag{ font-family:'Space Mono',monospace; font-size:10px;letter-spacing:.15em;text-transform:uppercase; opacity:.55;margin-bottom:18px; } .t-name{ font-family:'Bricolage Grotesque',sans-serif;font-weight:700; font-size:clamp(24px,2.3vw,36px);letter-spacing:-.025em; line-height:1.07;margin-bottom:14px; } .t-desc{font-size:14px;line-height:1.65;opacity:.7;max-width:300px} /* ghost letter — bumped opacity for intentional feel */ .t-letter{ position:absolute;bottom:-14px;right:-4px; font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:188px;line-height:1;letter-spacing:-.06em; opacity:.14; /* was .065 — now reads as intentional */ pointer-events:none;user-select:none; transition:opacity .3s,transform .3s; } .tile:hover .t-letter{opacity:.22;transform:scale(1.06)} .t-arrow{ position:absolute;bottom:32px;right:32px; width:38px;height:38px;border-radius:50%; background:color-mix(in oklch,currentColor 10%,transparent); display:flex;align-items:center;justify-content:center;font-size:16px; transition:transform .25s,background .25s; } .tile:hover .t-arrow{ transform:translate(3px,-3px); background:color-mix(in oklch,currentColor 18%,transparent); } /* SPAM mark tile */ .spam-mark{display:flex;gap:3px;align-items:baseline} .sm-l{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:60px;letter-spacing:-.07em;line-height:1; } .sm-s{color:var(--accent)} .sm-p{color:var(--ink)} .sm-a{color:var(--amber)} .sm-m{color:var(--fg)} [data-theme="dark"] .sm-p{color:#5B82E8} /* bundle tile internals */ .bundle-badge{ display:inline-flex;align-items:center;gap:6px; background:color-mix(in oklch,currentColor 12%,transparent); padding:5px 14px;border-radius:100px; font-family:'Space Mono',monospace;font-size:10px; letter-spacing:.1em;text-transform:uppercase; margin-bottom:8px;align-self:flex-start; } .bundle-hl{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:clamp(22px,2.4vw,38px);letter-spacing:-.03em;line-height:1.05; } .bundle-note{ font-size:13.5px;opacity:.65;max-width:320px; line-height:1.55;margin-top:8px; } /* ── STATS ─────────────────────────────────── */ .stats-sec{ padding:100px 0; border-top:1px solid color-mix(in oklch,var(--fg) 7%,transparent); border-bottom:1px solid color-mix(in oklch,var(--fg) 7%,transparent); transition:border-color var(--T); } .stats-grid{display:grid;grid-template-columns:repeat(4,1fr)} .stat{ padding:0 48px; border-right:1px solid color-mix(in oklch,var(--fg) 7%,transparent); transition:border-color var(--T); } .stat:first-child{padding-left:0} .stat:last-child{border-right:none} .stat-num{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:clamp(52px,6vw,84px);letter-spacing:-.05em;line-height:1; color:var(--accent);margin-bottom:14px;transition:color var(--T); } .stat:last-child .stat-num{color:var(--amber)} .stat-lbl{font-size:14px;color:var(--muted);line-height:1.55;transition:color var(--T)} /* ── WORK ──────────────────────────────────── */ .work-sec{padding:120px 0} .work-head{ display:flex;align-items:flex-end; justify-content:space-between;gap:32px;margin-bottom:56px; } .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px} .card{ background:var(--surface);border-radius:var(--r); padding:40px;min-height:320px; display:flex;flex-direction:column;justify-content:space-between; cursor:pointer;position:relative;overflow:hidden; transition:transform .35s cubic-bezier(.34,1.1,.64,1),box-shadow .3s,background var(--T); } [data-theme="light"] .card:hover{transform:translateY(-6px);box-shadow:0 32px 64px color-mix(in oklch,var(--fg) 9%,transparent)} [data-theme="dark"] .card:hover{transform:translateY(-6px);box-shadow:0 28px 60px color-mix(in oklch,var(--accent) 12%,transparent)} .card-tag{ display:inline-flex;align-items:center; background:color-mix(in oklch,var(--accent) 10%,transparent); color:var(--accent);padding:5px 12px;border-radius:100px; font-family:'Space Mono',monospace;font-size:10px; letter-spacing:.1em;font-weight:700;margin-bottom:24px; transition:background var(--T),color var(--T); } .card-client{ font-family:'Bricolage Grotesque',sans-serif;font-weight:700; font-size:28px;letter-spacing:-.025em;margin-bottom:10px; } .card-desc{font-size:13.5px;color:var(--muted);line-height:1.62;transition:color var(--T)} .card-result{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:50px;letter-spacing:-.04em; color:var(--accent);line-height:1;margin-top:28px;transition:color var(--T); } .card-rlbl{font-size:12px;color:var(--muted);margin-top:6px;transition:color var(--T)} .card-hi{background:var(--accent);color:#fff;transition:background var(--T)} .card-hi .card-tag{background:rgba(255,255,255,.15);color:#fff} .card-hi .card-desc{color:rgba(255,255,255,.62)} .card-hi .card-result{color:#fff} .card-hi .card-rlbl{color:rgba(255,255,255,.52)} /* ── PROCESS ───────────────────────────────── */ .proc-sec{ padding:120px 0; border-top:1px solid color-mix(in oklch,var(--fg) 7%,transparent); transition:border-color var(--T); } .proc-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:80px} .step{ padding:0 48px; border-right:1px solid color-mix(in oklch,var(--fg) 7%,transparent); transition:border-color var(--T); } .step:first-child{padding-left:0} .step:last-child{border-right:none} .step-num{ font-family:'Space Mono',monospace;font-size:10.5px; letter-spacing:.1em;color:var(--muted);margin-bottom:28px;transition:color var(--T); } .step-name{ font-family:'Bricolage Grotesque',sans-serif;font-weight:700; font-size:34px;letter-spacing:-.025em;line-height:1.08;margin-bottom:18px; } .step-desc{font-size:14px;color:var(--muted);line-height:1.72;transition:color var(--T)} /* ── CONTACT ───────────────────────────────── */ .contact-sec{padding:120px 0} .contact-shell{ background:var(--fg);color:var(--bg); border-radius:28px;padding:80px; display:grid;grid-template-columns:1fr 1fr;gap:80px; position:relative;overflow:hidden; transition:background var(--T),color var(--T); } [data-theme="dark"] .contact-shell{background:var(--surface);color:var(--fg)} .contact-title{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:clamp(34px,3.4vw,54px);letter-spacing:-.035em; line-height:1.06;margin-bottom:24px; } .contact-title em{font-style:italic;color:var(--accent)} .deets{margin-top:44px;display:flex;flex-direction:column;gap:22px} .deet{display:flex;gap:18px} .dk{ font-family:'Space Mono',monospace;font-size:10px; letter-spacing:.13em;text-transform:uppercase; opacity:.4;width:56px;flex-shrink:0;padding-top:2px; } .dv{font-size:14.5px;opacity:.88;line-height:1.5} /* compose form */ .compose{display:flex;flex-direction:column} .compose-hdr{ font-family:'Space Mono',monospace;font-size:10.5px; letter-spacing:.12em;text-transform:uppercase; opacity:.36;margin-bottom:24px; } .compose-row{ display:flex;align-items:center;gap:14px;padding:14px 0; border-bottom:1px solid color-mix(in oklch,currentColor 10%,transparent); } .ck{ font-family:'Space Mono',monospace;font-size:10px; letter-spacing:.12em;text-transform:uppercase; opacity:.36;width:50px;flex-shrink:0; } .cv{ flex:1;background:transparent;border:none;outline:none; font-family:'DM Sans',sans-serif;font-size:14.5px;color:inherit;opacity:.88; } .cv::placeholder{opacity:.35} .compose-body{flex:1;padding:18px 0} .compose-msg{ width:100%;min-height:120px;background:transparent; border:none;outline:none;resize:none; font-family:'DM Sans',sans-serif;font-size:14.5px; color:inherit;opacity:.88;line-height:1.65; } .compose-msg::placeholder{opacity:.35} .send-btn{ margin-top:24px;align-self:flex-start; background:var(--accent);color:#fff; font-family:'DM Sans',sans-serif;font-weight:700;font-size:15px; padding:15px 36px;border-radius:100px;border:none;cursor:pointer; display:inline-flex;align-items:center;gap:8px; transition:transform .2s,opacity .2s,background var(--T); } .send-btn:hover{transform:translateY(-2px);opacity:.9} /* compose success state */ .compose-success{ display:flex;flex-direction:column;align-items:flex-start;gap:16px; padding:32px 0;opacity:1; animation:fadeup .55s ease; } @keyframes fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}} .success-icon{ width:52px;height:52px;border-radius:50%; background:var(--accent);color:#fff; display:flex;align-items:center;justify-content:center;font-size:22px; } .success-title{ font-family:'Bricolage Grotesque',sans-serif; font-weight:700;font-size:28px;letter-spacing:-.025em; } .success-sub{font-size:14px;opacity:.62;line-height:1.65} /* paper airplane (injected by spam-fx.js) */ .paper-plane{position:fixed;pointer-events:none;z-index:9999} /* ── FOOTER ────────────────────────────────── */ footer{ border-top:1px solid color-mix(in oklch,var(--fg) 7%,transparent); padding:0 0 48px;transition:border-color var(--T); } .fmq-wrap{ overflow:hidden;padding:14px 0; border-bottom:1px solid color-mix(in oklch,var(--fg) 7%,transparent); margin-bottom:56px;transition:border-color var(--T); } .fmq-track{ display:flex;gap:40px;white-space:nowrap; animation:mq 18s linear infinite; font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:54px;letter-spacing:-.03em; color:var(--fg);opacity:.055;transition:color var(--T); } .footer-bot{ display:flex;align-items:center; justify-content:space-between;gap:24px;padding:0 48px; } .footer-logo{ font-family:'Bricolage Grotesque',sans-serif;font-weight:800; font-size:17px;letter-spacing:-.04em;color:var(--fg);transition:color var(--T); } .footer-logo em{font-style:normal;color:var(--accent)} .footer-links{display:flex;gap:28px;list-style:none;flex-wrap:wrap} .footer-links a{ font-family:'Space Mono',monospace;font-size:10.5px; letter-spacing:.08em;color:var(--muted); text-decoration:none;transition:color .2s; } .footer-links a:hover{color:var(--fg)} .footer-fine{ font-family:'Space Mono',monospace;font-size:10px; color:var(--muted);letter-spacing:.06em;text-align:right; line-height:1.65;transition:color var(--T); } /* ── SCROLL REVEAL ─────────────────────────── */ /* ══ AWWWARDS POLISH: cursor glow + gleam ══ */ .tile::after,.card::after{ content:'';position:absolute;inset:0;border-radius:inherit;opacity:0; transition:opacity .35s;pointer-events:none; background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%), color-mix(in oklch,currentColor 9%,transparent), transparent 72%); } .tile:hover::after,.card:hover::after{opacity:1} .card{position:relative;overflow:hidden} .card-hi::before{ content:'';position:absolute;top:0;bottom:0;left:-30%;width:24%;z-index:1; background:linear-gradient(105deg,transparent,rgba(255,255,255,.12),transparent); transform:skewX(-18deg);transition:left .9s cubic-bezier(.22,1,.36,1);pointer-events:none; } .card-hi:hover::before{left:118%} .reveal{ opacity:0;transform:translateY(22px); transition:opacity .65s ease,transform .65s cubic-bezier(.25,.46,.45,.94); } .reveal.in{opacity:1;transform:none} /* ── RESPONSIVE ────────────────────────────── */ @media(max-width:1100px){ .bento{grid-template-columns:repeat(6,1fr);grid-template-rows:auto} .t-s{grid-column:1/7;grid-row:1;min-height:280px} .t-p{grid-column:1/4;grid-row:2;min-height:240px} .t-a{grid-column:4/7;grid-row:2} .t-m{grid-column:1/4;grid-row:3} .t-x{grid-column:4/7;grid-row:3} .t-bundle{grid-column:1/7;grid-row:4} .cards{grid-template-columns:1fr 1fr} .stats-grid{grid-template-columns:1fr 1fr;gap:48px 0} .stat{border-right:none;padding-left:0;padding-right:0} .stat:nth-child(odd){border-right:1px solid color-mix(in oklch,var(--fg) 7%,transparent);padding-right:48px} } @media(max-width:768px){ nav{padding:16px 24px} .nav-links{display:none} .hero{height:auto;min-height:100svh;padding:120px 24px 80px} .hero-badge{display:none} .wrap{padding:0 24px} .bento-head{flex-direction:column;align-items:flex-start} .bento-sub{text-align:left} .t-bundle{padding:32px 28px;flex-direction:column;align-items:flex-start;gap:24px} .cards{grid-template-columns:1fr} .proc-grid{grid-template-columns:1fr} .step{ border-right:none;padding-left:0;padding-right:0; margin-bottom:48px;padding-bottom:48px; border-bottom:1px solid color-mix(in oklch,var(--fg) 7%,transparent); } .step:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0} .contact-shell{grid-template-columns:1fr;padding:48px 28px;gap:48px} .footer-bot{flex-direction:column;align-items:flex-start} .footer-fine{text-align:left} .stats-grid{grid-template-columns:1fr} .stat:nth-child(odd){border-right:none;padding-right:0} } @media(prefers-reduced-motion:reduce){ *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important} .reveal,.tile{opacity:1!important;transform:none!important} }

The only
SPAM
worth
opening.

Social Media · Public Relations · Advertising · Marketing. Four disciplines, one studio, zero filler. The message your competitors wish you'd marked as read.

THE ONLY SPAM WORTH OPENING · NOT A DRILL · THE ONLY SPAM WORTH OPENING · NOT A DRILL · PRIORITY
Services

What S·P·A·M
actually means.

Four disciplines, fully integrated. Because the best work doesn't live in silos — and neither do we.

S — 01
Social
Media

Content that earns attention. Strategies built on signal, not noise. We make your feed the one they actually stop scrolling for.

S
P — 02
Public
Relations

The press release is dead. Earned media built on relationships, story, and impeccable timing. We get you in the room that matters.

P
A — 03
Advertising

Paid that performs. Creative-first media buying that turns budgets into ROI worth bragging about.

A
M — 04
Marketing

Full-funnel strategy from awareness to conversion. Positioning, research, campaign planning — the whole play.

M
S P A M
Miami, FL · Est. 2021
★ Full stack
All four. One team. No silos.

Integrated outperforms fragmented. Most agencies won't do the work. We will.

Start the conversation →
147
Campaigns delivered since founding
$2.4B
In attributed client revenue
97%
Client retention. The other 3% moved to our competitors. We felt bad for them.
1
Name nobody forgets. (You've thought about it twice since you got here.)
Selected work

Results that
speak first.

All case studies →
Advertising
Volta Electric
Paid social + OOH launch across three Southeast markets for a new EV brand entering a crowded category with zero brand recognition.
+340%
Website traffic · 90-day campaign
Public Relations
Arcadia Health
Crisis communications + rebrand narrative for a regional health network navigating a post-merger identity crisis.
68
Earned media placements · 6 weeks
Social Media
Soho Bureau
Always-on content strategy + influencer programme for a D2C hospitality brand with national ambitions and a modest budget.
$1.2M
Revenue attributed to social · Year 1
How we work

Three steps.
Zero fluff.

01 / Diagnose
We read
the room.

Competitive audit, audience mapping, channel analysis. We locate your exact opportunity before we touch a brief. No assumptions. No guessing.

02 / Craft
We make
the thing.

Strategy, creative, production, copy — fully in-house. What we pitch, we build. What we build, we stand behind. No handoffs to mysterious third parties.

03 / Deploy
We send
it out.

Launch, manage, optimize, report. We stay in it until the numbers look like a case study worth putting on a website. (Like the one you're reading.)

New message

Slide into
our inbox.
We promise
to open it.

Emailhello@spamagency.co
Phone+1 (305) 000-0000
Studio1234 Brickell Ave, Suite 500
Miami, FL 33131
HoursMon–Fri, 9am–6pm ET
(We answer after hours. Don't tell HR.)
Compose
TO: hello@spamagency.co
FROM:
RE: