/* ========================================== PATTERN LAYER: SHIMMER TAGLINE Animated gradient on "See Different. Think Different." No conflicts — .gh-head-description not styled elsewhere. ========================================== */ .gh-head-description, .site-header .site-header-content p { background: linear-gradient( 90deg, var(--accent-blue) 0%, #7c3aed 25%, #ec4899 50%, #7c3aed 75%, var(--accent-blue) 100% ); background-size: 200% auto; -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; animation: cb-shimmer 6s linear infinite; } @keyframes cb-shimmer { 0% { background-position: 0% center; } 100% { background-position: 200% center; } } /* ========================================== PATTERN LAYER: SCROLL PROGRESS BAR Gradient bar at top of post pages. New element (#cb-progress) — no conflicts. ========================================== */ #cb-progress { position: fixed; top: 0; left: 0; width: 0%; height: 3px; background: linear-gradient(90deg, var(--accent-blue), #7c3aed, #ec4899); z-index: 10000; transition: width 50ms linear; pointer-events: none; border-radius: 0 2px 2px 0; box-shadow: 0 0 8px rgba(40, 95, 244, 0.3); } /* ========================================== PATTERN LAYER: CURSOR SPOTLIGHT Subtle radial glow following mouse. Tuned for LIGHT backgrounds (0.02 opacity). New element (#cb-spotlight) — no conflicts. ========================================== */ #cb-spotlight { position: fixed; top: 0; left: 0; width: 500px; height: 500px; pointer-events: none; z-index: 1; background: radial-gradient( circle at center, rgba(40, 95, 244, 0.025) 0%, transparent 70% ); transform: translate(-50%, -50%); transition: opacity 0.4s ease; opacity: 0; will-change: transform; } body:hover #cb-spotlight { opacity: 1; } /* Hide spotlight when over the dark footer */ .site-footer:hover ~ #cb-spotlight, footer.gh-foot:hover ~ #cb-spotlight { opacity: 0; } /* ========================================== PATTERN LAYER: SCROLL REVEAL Fade-up animation as elements enter viewport. Uses unique .cb-* classes — no conflicts with existing feed transitions. ========================================== */ .cb-reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.6s cubic-bezier(0.23, 1, 0.32, 1), transform 0.6s cubic-bezier(0.23, 1, 0.32, 1); } .cb-reveal.cb-visible { opacity: 1; transform: translateY(0); } /* Stagger children for cascade effect */ .cb-reveal:nth-child(2) { transition-delay: 0.06s; } .cb-reveal:nth-child(3) { transition-delay: 0.12s; } .cb-reveal:nth-child(4) { transition-delay: 0.18s; } .cb-reveal:nth-child(5) { transition-delay: 0.24s; } .cb-reveal:nth-child(6) { transition-delay: 0.30s; } /* ========================================== PATTERN LAYER: TERRITORY ACCENT COLORS Each territory gets a signature color on its tag page. Uses body.tag-* classes Ghost adds automatically. Overrides --primary-color and --accent-blue on territory pages for full theming. ========================================== */ /* Shadow Strategy — deep indigo */ body.tag-shadow-strategy { --primary-color: #4338ca; --accent-blue: #4338ca; } /* Momentum Engineering — electric orange */ body.tag-momentum-engineering { --primary-color: #ea580c; --accent-blue: #ea580c; } /* Perception Engine — magenta */ body.tag-perception-engine { --primary-color: #db2777; --accent-blue: #db2777; } /* Dashboard Blindness — amber */ body.tag-dashboard-blindness { --primary-color: #d97706; --accent-blue: #d97706; } /* Hybrid Intelligence — teal */ body.tag-hybrid-intelligence { --primary-color: #0d9488; --accent-blue: #0d9488; } /* Information Flow — cyan */ body.tag-information-flow { --primary-color: #0891b2; --accent-blue: #0891b2; } /* Inverse Wisdom — violet */ body.tag-inverse-wisdom { --primary-color: #7c3aed; --accent-blue: #7c3aed; } /* Territory header bar color on post/page/tag pages. Reuses your existing .post-template .gh-head rule but with the territory variable. Since --accent-blue is overridden above, the existing rule at line 498 already picks up the territory color automatically. */ /* ========================================== PATTERN LAYER: GRADIENT LINK UNDERLINES Post body links get animated underline on hover. Scoped to .gh-content — won't affect nav, footer, feedback buttons, or subscribe CTA. ========================================== */ .gh-content a:not(.kg-bookmark-container):not(.subscribe-card-cta):not([class*="feedback"]):not([data-portal]) { text-decoration: none; background-image: linear-gradient(90deg, var(--accent-blue), #7c3aed); background-size: 0% 2px; background-position: left bottom; background-repeat: no-repeat; transition: background-size 0.3s ease; padding-bottom: 2px; } .gh-content a:not(.kg-bookmark-container):not(.subscribe-card-cta):not([class*="feedback"]):not([data-portal]):hover { background-size: 100% 2px; } /* ========================================== PATTERN LAYER: SMOOTH PAGE LOAD Content fades in on initial page load. ========================================== */ body { animation: cb-page-in 0.5s ease-out; } @keyframes cb-page-in { from { opacity: 0; } to { opacity: 1; } } /* ========================================== PATTERN LAYER: CARD TILT SUPPORT Adds transform-style for JS 3D tilt effect. Works WITH your existing hover transitions (line 393-405). On desktop, JS takes over the transform. On mobile, your CSS translateX still applies since tilt JS is desktop-only. ========================================== */ article.feed.post, article.feed { transform-style: preserve-3d; } /* Enhance the existing hover shadow (additive) */ article.feed.post:hover, article.feed:hover { box-shadow: 0 8px 30px rgba(40, 95, 244, 0.06); } /* ========================================== PATTERN LAYER: AMBIENT SCROLL TINT [Replaces: Noise Texture — dropped for light mode] As you scroll deeper into a post, the page background shifts from pure white to a barely perceptible tint of the accent color. Like ideas "warming up" as you read deeper. Uses a fixed overlay (#cb-scroll-tint) controlled by JS. Max opacity 0.03 — subliminal, not visible. ========================================== */ #cb-scroll-tint { position: fixed; inset: 0; z-index: 0; pointer-events: none; background: var(--accent-blue); opacity: 0; transition: opacity 0.4s ease; } /* Ensure content stays above the tint layer */ .gh-head, .site-main, .site-footer, footer.gh-foot { position: relative; z-index: 2; } /* ========================================== PATTERN LAYER: BLOCKQUOTE TERRITORY ACCENTS [Replaces: Subscribe Button Glow — dropped for white-on-blue header conflict] Blockquotes get a colored left border + faint background tint using the territory accent color. Falls back to --accent-blue on non-territory pages. No conflicts — your existing code doesn't style .gh-content blockquote. ========================================== */ .gh-content blockquote { border-left: 3px solid var(--accent-blue); background: linear-gradient( 90deg, rgba(40, 95, 244, 0.04) 0%, transparent 60% ); padding: 1.25rem 1.5rem; margin: 2rem 0; border-radius: 0 6px 6px 0; transition: border-color 0.3s ease, background 0.3s ease; } .gh-content blockquote p { color: #374151; font-style: italic; } /* Territory-specific blockquote tints (auto via --accent-blue override) */ body.tag-shadow-strategy .gh-content blockquote { background: linear-gradient(90deg, rgba(67, 56, 202, 0.04) 0%, transparent 60%); } body.tag-momentum-engineering .gh-content blockquote { background: linear-gradient(90deg, rgba(234, 88, 12, 0.04) 0%, transparent 60%); } body.tag-perception-engine .gh-content blockquote { background: linear-gradient(90deg, rgba(219, 39, 119, 0.04) 0%, transparent 60%); } body.tag-dashboard-blindness .gh-content blockquote { background: linear-gradient(90deg, rgba(217, 119, 6, 0.04) 0%, transparent 60%); } body.tag-hybrid-intelligence .gh-content blockquote { background: linear-gradient(90deg, rgba(13, 148, 136, 0.04) 0%, transparent 60%); } body.tag-information-flow .gh-content blockquote { background: linear-gradient(90deg, rgba(8, 145, 178, 0.04) 0%, transparent 60%); } body.tag-inverse-wisdom .gh-content blockquote { background: linear-gradient(90deg, rgba(124, 58, 237, 0.04) 0%, transparent 60%); } /* ========================================== PATTERN LAYER: TABLE TERRITORY TREATMENT Overrides your existing table styles (lines 536-593) which hardcode rgba(40, 95, 244, ...) for the header bg and hover. On territory pages, the border was changing color but the fills stayed blue. These rules use higher specificity to override, and add polish: outer border-radius, shadow on hover rows, and territory-aware fills. ========================================== */ /* Wrapper: rounded corners + subtle containment */ .gh-content table, article table { border-radius: 8px; overflow: hidden; border: 1px solid rgba(0, 0, 0, 0.06); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02); } /* Header: territory-aware background */ .gh-content table thead th, article table thead th { background: color-mix(in srgb, var(--accent-blue) 6%, white); border-bottom-color: var(--accent-blue); font-size: 1.4rem; text-transform: uppercase; letter-spacing: 0.03em; } /* Row hover: territory-aware tint */ .gh-content table tbody tr:hover, article table tbody tr:hover { background: color-mix(in srgb, var(--accent-blue) 4%, white); } /* Alternating rows: softer stripe */ .gh-content table tbody tr:nth-child(even), article table tbody tr:nth-child(even) { background: rgba(0, 0, 0, 0.015); } /* Cells: tighter, cleaner */ .gh-content table tbody td, article table tbody td { border-bottom: 1px solid rgba(0, 0, 0, 0.05); } /* Last row: no bottom border (outer border handles it) */ .gh-content table tbody tr:last-child td, article table tbody tr:last-child td { border-bottom: none; } /* ─── Territory-specific header backgrounds ─── */ /* (Fallback for browsers without color-mix) */ body.tag-shadow-strategy .gh-content table thead th { background: rgba(67, 56, 202, 0.06); } body.tag-shadow-strategy .gh-content table tbody tr:hover { background: rgba(67, 56, 202, 0.04); } body.tag-momentum-engineering .gh-content table thead th { background: rgba(234, 88, 12, 0.06); } body.tag-momentum-engineering .gh-content table tbody tr:hover { background: rgba(234, 88, 12, 0.04); } body.tag-perception-engine .gh-content table thead th { background: rgba(219, 39, 119, 0.06); } body.tag-perception-engine .gh-content table tbody tr:hover { background: rgba(219, 39, 119, 0.04); } body.tag-dashboard-blindness .gh-content table thead th { background: rgba(217, 119, 6, 0.06); } body.tag-dashboard-blindness .gh-content table tbody tr:hover { background: rgba(217, 119, 6, 0.04); } body.tag-hybrid-intelligence .gh-content table thead th { background: rgba(13, 148, 136, 0.06); } body.tag-hybrid-intelligence .gh-content table tbody tr:hover { background: rgba(13, 148, 136, 0.04); } body.tag-information-flow .gh-content table thead th { background: rgba(8, 145, 178, 0.06); } body.tag-information-flow .gh-content table tbody tr:hover { background: rgba(8, 145, 178, 0.04); } body.tag-inverse-wisdom .gh-content table thead th { background: rgba(124, 58, 237, 0.06); } body.tag-inverse-wisdom .gh-content table tbody tr:hover { background: rgba(124, 58, 237, 0.04); }
1 min read

The Pipe Reveal

You don't need to pick the winning AI model. The real shift already happened underneath.

Microsoft invested $13 billion in OpenAI. Built Copilot on OpenAI's models. Bet the product line on one partner.

Then in 2025, they added Claude. A competitor's brain, inside their own product.

That's not a partnership. That's a sacrifice, the same kind NVR made when it stopped owning land.

They stopped defending the container.

This has happened before. In 1984, AT&T thought the value was in the wires, the physical network they'd spent a century building. They kept long-distance and gave away local phone service to the Baby Bells.

Within a decade, cell phones made long-distance irrelevant. The value migrated to what flowed through the pipes. Not the pipes themselves.

AT&T built the network. Then the network became a commodity.

Same pattern. Microsoft built Excel, PowerPoint, Word. The container was the product for decades. Now they're offering every major AI model inside it because the container alone isn't enough.

The espoused strategy: "Copilot is our AI platform."

The revealed strategy is hedging. Offering every model means they've accepted that Excel is the wire, not the call.

When the platform offers every competitor's brain, the container isn't the product anymore. The intelligence flowing through it is.

The pipe doesn't pick favorites. It carries whatever flows through it.


Go deeper: Execution Reveals