Community Moderator, Working Groups.
Work @ Hugging Face on MCP and Open Source initiatives.
if you are using MCP you are an LLM Systems integrator
Charles Dickens, A Tale of Two Cities : 206,022 Tokens (139,000 Words>
points to make here
+Models are trained using lots of text.
+Models were then trained to be conversational
+Models were then trained to follow instructions
+Models generate text using probabilities. [SHOW DEMO]
+
+This isn't a long "history lesson" style talk; but i wanted to reground us
+
+Conversational Training. Hand Noted. RLHF.
+Instruction Training.
+
+How do we make a model?
+Ingredients. Lots of CPU, lots of compute.
+
+Text Completions
+
+ given . The text we ask it to complete is known as the "Context".
+Computational Complexity and Model Size.
+
+The context is _tiny_ compared to the model
+The context is precious
+Instruction following has a precedence problem
+Generations are intentionally different each time (completions[0])
+
+Assume that the data in your context window is privileged.
+
+The reason for the preamble is so that we can have a balanced discussion about MCP Security
launched in november last year, and immediately proved popular
why? for the first time rather than handling complex RAG or custom tool calling you had ready-made applications to integrate with
+## Part 3 - MCP
+
+### Introduction
+
+Can't deflect responsibility in to the Protocol
+Can't transfer the risk
+
+### Distribution
+
+As Community Moderator get to see a lot of MCP Servers. One-shot prompted in to existence.
+
+
+
+Introducing the Model Context Protocol.
+
+
+We see automation not augmentation.
+
+So now that we know what a bit more about Models, and a bit more about Context let's see where MCP fits.
+Show MCP-Webcam.
+
+Less than 12 months old. Distribution Statistics. Weekend in Apr
+
+- what mcp is -- do a deep dive explanation on the components and the parts.
+
+- json-rpc; transports, hosts, client, servers.
+- show all of the different datasources that can work.
+- transport, data, layer?? (d)
+- two specifications
+OAUTH2.1
+- Package and distribution of MCP-B/DXT. GitHub, Webiste.
+- Registry
+
+Bi-Directional Communication
+
+co-minglign
+
+
+# Transports (and Distribution)
+
+STDIO
+SSE (Deprecated)
+Streamable HTTP
+The rise of Hosting Services and Proxies.
+
+---
+
+# Early days of MCP. Server List.
+
+Review the Server, make sure there are no obvious.
+
+# What happens
+
+MCP Server Instructions injected in to Context.
+Auto-injection in to the Context.
+
+Context co-mingling.
+Data sent to the LLM
+Tools that know about each other
+
+
+# Distribution
+
+- StreamableHTTP gives deployment options, and the latest OAuth is intended to make integration easier.
+- This makes deployment - and auditing easier. far better to have telemetry from your MCP Infrastructure than having people copy-paste from unknown sources.
+
+
+- Host
+- Client
+- Server
+- LLM (Model/Context)
+- User!
+- Parts (MCP Servers, Host Application, Model)
+
+- MCP Servers: Primitives
+- MCP Servers: Connectivity
+- MCP Servers: Priniciple of simple development
+- Distribution Problem
+- Remote Servers had no Authentication.
we'll do a high level walkthrough, then look at some of these in more detail
we talk a lot about MCP Servers, and that's not quite the right name
maybe i'm always tired of typing the same thing
maybe there's a website link the host application should follow
\ No newline at end of file
diff --git a/2025/secure-se-sep/theme/descartes.css b/2025/secure-se-sep/theme/descartes.css
new file mode 100644
index 0000000000000000000000000000000000000000..8f1e082a9434c1755ebd895599029fa16969923d
--- /dev/null
+++ b/2025/secure-se-sep/theme/descartes.css
@@ -0,0 +1,90 @@
+/* @theme descartes */
+
+/*
+ ============================================
+ Created by Paulo Cunha
+ version: 1.0
+ last update: 04.dez.2022
+ ============================================
+*/
+
+/* Importing COLOR SCHEMA */
+
+@import "default";
+@import "schema";
+@import "structure";
+
+/***************** COMMON STRUCTURE **********************/
+
+:root {
+ font-family: 'Fira Sans Light';
+ font-weight: initial;
+ --italic-background-color : rgba(214, 25, 66, 0.144);
+ --italic-background-color : rgba(8, 206, 255, 0.3);
+ --italic-background-color : rgba(8, 140, 255, 0.236);
+ background-color: rgb(238, 244, 237);
+}
+
+h1 {
+ color:rgb(23, 86, 118);
+ color:rgb(11, 37, 69);
+ color:rgb(53, 80, 112);
+ color:rgb(53, 80, 112);
+ padding-bottom: 2mm;
+ margin-bottom: 12mm;
+}
+
+h2 strong {
+ color: red;
+}
+
+p {
+ font-size: 26pt;
+ font-weight: 600;
+ color:rgba(78, 78, 80, 0.814)
+}
+
+section.titlepage .title {
+ border-bottom: 1px solid orangered;
+}
+
+
+section.cite {
+ --strong-color : rgba(255, 5, 5, 0.795);
+}
+
+section.titlepage .author,
+section.titlepage .date,
+section.titlepage .organization {
+ text-align: left;
+}
+
+section strong {
+ color:rgb(141, 169, 196) ;
+ color:rgba(23, 86, 118) ;
+ color:rgb(181, 101, 118) ;
+ color:rgb(186, 50, 79) ;
+ color:rgb(229, 107, 111) ;
+ padding-left: 1px;
+ padding-right: 1px;
+ font-weight: 600;
+}
+
+section.transition em{
+ background-color: rgb(255, 166, 0) !important;
+}
+
+
+section.transition strong {
+ color: rgba(230, 250, 6, 0.905);
+ font-weight: 1000;
+ text-shadow: 2px 2px 10px rgb(101, 45, 3);
+}
+
+
+section.transition2 strong {
+
+ color: rgb(10, 100, 235);
+ color: rgb(161, 240, 3);
+
+}
\ No newline at end of file
diff --git a/2025/secure-se-sep/theme/evalstate-extensions.css b/2025/secure-se-sep/theme/evalstate-extensions.css
new file mode 100644
index 0000000000000000000000000000000000000000..7fa7d0bccf6730d8f5bd054eccdb49cfce6437af
--- /dev/null
+++ b/2025/secure-se-sep/theme/evalstate-extensions.css
@@ -0,0 +1,291 @@
+/* @theme evalstate-extensions
+ Custom slide utilities for Evalstate decks.
+*/
+
+section.mcp-features table {
+ width: 100%;
+ margin-top: 1.1rem;
+ table-layout: fixed;
+ border-collapse: collapse;
+ font-size: 1.02rem;
+}
+
+section:not(.titlepage) {
+ padding: 64px 72px !important;
+}
+
+section.mcp-features table thead {
+ display: none;
+}
+
+section.mcp-features tbody td {
+ padding: 0.65rem 0.75rem;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.12);
+ vertical-align: top;
+}
+
+section.mcp-features tbody tr:last-child td {
+ border-bottom: none;
+}
+
+section.mcp-features table td:first-child,
+section.mcp-features table th:first-child {
+ text-align: center;
+ width: 5.5rem;
+}
+
+section.mcp-features table td:nth-child(2) {
+ font-weight: 700;
+}
+
+section.mcp-features table tr:nth-child(even),
+section.mcp-features table tr:nth-child(odd) {
+ background-color: transparent !important;
+}
+
+section.mcp-features table tr:hover {
+ background-color: var(--table-hover-background-color) !important;
+ color: var(--table-hover-color) !important;
+ font-weight: 700;
+}
+
+section.mcp-features .cell-title {
+ display: inline-block;
+}
+
+section.mcp-features .feature-icon {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 4.5rem;
+ height: 4.5rem;
+ margin: 0 auto;
+ border-radius: 1.2rem;
+ background-color: rgba(0, 0, 0, 0.06);
+}
+
+section.mcp-features .feature-icon img {
+ max-width: 68%;
+ max-height: 68%;
+ box-shadow: none;
+ border-radius: 0;
+}
+
+section.mcp-features .examples {
+ display: flex;
+ flex-direction: column;
+ gap: 0.35rem;
+}
+
+/* Registry collage layout for "Registries and Curation" slide */
+.registry-layout {
+ display: flex;
+ gap: 3rem;
+ align-items: center;
+ margin-top: 1.5rem;
+ flex-wrap: wrap;
+}
+
+.registry-layout .collage-column {
+ flex: 1 1 65%;
+ min-width: 360px;
+}
+
+.registry-layout .text-column {
+ flex: 1 1 240px;
+ max-width: 320px;
+ line-height: 1.4;
+}
+
+.registry-layout .text-column h3 {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+.registry-layout .text-column ul {
+ padding-left: 1.1rem;
+ margin: 0;
+}
+
+.registry-collage {
+ position: relative;
+ height: 420px;
+ margin-top: 30px;
+}
+
+.registry-collage img {
+ position: absolute;
+ width: 55%;
+ max-width: 520px;
+ border-radius: 12px;
+ border: 6px solid #fff;
+ box-shadow: 0 18px 45px rgba(0, 0, 0, 0.25);
+ transition: transform 160ms ease-in-out;
+}
+
+.registry-collage img:hover {
+ transform: scale(1.02) translateY(-4px);
+ z-index: 4;
+}
+
+.registry-collage .shot-azure {
+ top: 0;
+ left: -10px;
+ transform: rotate(-4deg);
+ z-index: 3;
+}
+
+.registry-collage .shot-claude {
+ top: 60px;
+ right: -60px;
+ transform: rotate(3deg);
+ z-index: 2;
+}
+
+.registry-collage .shot-github {
+ bottom: -30px;
+ left: 25%;
+ transform: rotate(-1deg);
+ z-index: 1;
+}
+
+/* Title slide social table */
+.social-table {
+ margin: 2.2rem 0 0 auto;
+ border-collapse: collapse;
+ font-size: 1.05em;
+ min-width: 360px;
+}
+
+.social-table td {
+ padding: 0.45rem 0.25rem;
+ border: none;
+ vertical-align: middle;
+ color: inherit;
+}
+
+.social-table td:first-child {
+ width: 54px;
+ text-align: right;
+}
+
+.social-table td:first-child img {
+ width: 34px;
+ height: 34px;
+ object-fit: contain;
+ display: inline-block;
+ box-shadow: none !important;
+ border-radius: 0 !important;
+}
+
+.social-table td:last-child {
+ padding-left: 0.9rem;
+}
+
+.social-table a {
+ color: inherit;
+ text-decoration: none;
+ display: inline-flex;
+ align-items: center;
+ gap: 0.4rem;
+}
+
+.social-table a:hover,
+.social-table a:focus {
+ text-decoration: underline;
+}
+
+.social-table tr {
+ background-color: transparent !important;
+}
+
+/* Magnifier hover effect: opt-in per image via wrapper */
+.mcp-magnify {
+ position: relative;
+ display: inline-block;
+ --magnify-image: none;
+ --magnify-scale: 2;
+ --magnify-size: 220px;
+ --magnify-focus-x: 50%;
+ --magnify-focus-y: 50%;
+ --magnify-position-x: 50%;
+ --magnify-position-y: 50%;
+ cursor: zoom-in;
+ isolation: isolate;
+}
+
+.mcp-magnify > img {
+ display: block;
+}
+
+.mcp-magnify::after {
+ content: "";
+ position: absolute;
+ width: var(--magnify-size);
+ height: var(--magnify-size);
+ left: var(--magnify-position-x);
+ top: var(--magnify-position-y);
+ transform: translate(-50%, -50%) scale(var(--magnify-scale));
+ transform-origin: 50% 50%;
+ background-image: var(--magnify-image);
+ background-repeat: no-repeat;
+ background-size: calc(100% * var(--magnify-scale)) calc(100% * var(--magnify-scale));
+ background-position: var(--magnify-focus-x) var(--magnify-focus-y);
+ border-radius: 50%;
+ box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
+ outline: 2px solid rgba(0, 0, 0, 0.25);
+ outline-offset: -1px;
+ opacity: 0;
+ transition: opacity 140ms ease-in-out;
+ pointer-events: none;
+ z-index: 1;
+ will-change: transform, opacity;
+}
+
+.mcp-magnify:hover::after,
+.mcp-magnify:focus-within::after {
+ opacity: 1;
+}
+
+/* Lens presets for specific slides */
+.mcp-magnify--completion-1 {
+ --magnify-image: url('./images/completion-1-lightbox.png');
+ --magnify-scale: 2;
+ --magnify-size: 280px;
+ --magnify-position-x: 50%;
+ --magnify-position-y: 50%;
+ --magnify-focus-x: 85%;
+ --magnify-focus-y: 88%;
+}
+
+.mcp-magnify--completion-2 {
+ --magnify-image: url('./images/completion-2-lightbox.png');
+ --magnify-scale: 2;
+ --magnify-size: 280px;
+ --magnify-position-x: 50%;
+ --magnify-position-y: 50%;
+ --magnify-focus-x: 105%;
+ --magnify-focus-y: 105%;
+}
+
+.mcp-magnify--privacy {
+ --magnify-image: url('./images/chatgpt-privacy.png');
+ --magnify-scale: 2.2;
+ --magnify-size: 240px;
+ --magnify-position-x: 78%;
+ --magnify-position-y: 58%;
+ --magnify-focus-x: 78%;
+ --magnify-focus-y: 58%;
+}
+
+.social-table tr:nth-child(odd),
+.social-table tr:nth-child(even) {
+ background-color: transparent !important;
+}
+
+.social-table tr:hover,
+.social-table tr:focus-within {
+ background-color: var(--table-hover-background-color) !important;
+ color: var(--table-hover-color) !important;
+ font-weight: 700;
+}
diff --git a/2025/secure-se-sep/theme/freud.css b/2025/secure-se-sep/theme/freud.css
new file mode 100644
index 0000000000000000000000000000000000000000..0b286fd5699a6473223c9c1b221c9a73c1d9b1ff
--- /dev/null
+++ b/2025/secure-se-sep/theme/freud.css
@@ -0,0 +1,489 @@
+/* @theme freud */
+
+/*
+ ============================================
+ Created by Paulo Cunha
+ version: 1.0
+ last update: 02.jan.2022
+ ============================================
+*/
+
+/* Importing COLOR SCHEMA */
+
+@import "default";
+@import "schema";
+@import "structure";
+@import "evalstate-extensions";
+
+/* Importing Font */
+/* Font Credit: htts://https://www.cdnfonts.com/ */
+@import url('https://fonts.cdnfonts.com/css/fira-sans?styles=20119');
+
+/***************** COMMON STRUCTURE **********************/
+
+:root {
+ font-family: 'Fira Sans', sans-serif;
+ font-weight: initial;
+
+ color: #6c6c6c;
+ color: #2b3446;
+
+ background-color: #727d8b;
+ background-color: #f8b13d;
+ background-color: #435160;
+ background-color: #f5eee6;
+ background-color: #d9dee6;
+ background-color: #f4f4ed;
+
+ --h1-color : #3d09ae;
+ --h1-color : #06858e;
+
+ --border-color : #a0660387;
+
+ --bold-color : rgb(21, 105, 201);
+ --bold-color : #0d2d58;
+
+ --italic-color : rgb(38, 48, 71);
+ --italic-background-color : rgba(172, 215, 255, 0.713);
+
+ /* --background-color : #fdf6e3; */
+ --list-item-color : rgb(255, 212, 95);
+ --after-color : rgb(51, 48, 48);
+
+ --table-font-color : black;
+ --table-header-color : rgb(0, 132, 255);
+
+ --main-color : rgb(207, 77, 17);
+ --darker-color : #246;
+ --lighter-color : #080a0a;
+ --extra-back-color : rgb(42, 45, 53);
+
+ --letter-spacing : 0.125px;
+
+ --cool-list-color : rgb(255, 68, 0);
+
+ --author-align : right;
+
+}
+
+
+/* ------------------- TITLEPAGE -----------------------------*/
+
+section.titlepage .title {
+ border-bottom: 1px solid orangered;
+}
+
+section.titlepage .subtitle {
+ font-weight: 300;
+}
+
+
+section.titlepage .author,
+section.titlepage .date,
+section.titlepage .organization {
+ text-align: left;
+}
+section.titlepage h1 {
+ border-bottom: 1px solid orangered;
+}
+
+section.titlepage h2 {
+ font-weight: 300;
+}
+
+section.titlepage h3,
+section.titlepage h4,
+section.titlepage h5 {
+ text-align: right;
+}
+
+/* -------------------- TRANSITION ---------------------------------*/
+section.transition {
+
+ --transitionpage-color: #247397;
+
+}
+
+section.transition h1 .mcp-model {
+ color: #FF9D00;
+}
+
+section.transition h1 .mcp-context {
+ color: #6b7280;
+}
+/* -------------------- TRANSITION ---------------------------------*/
+section.transition2 {
+
+ background-color: #c53732;
+
+}
+
+/* ------------------- CITE -----------------------------*/
+section.cite {
+ --background-color: #49454f;
+ --strong-color: rgb(182, 112, 27);
+}
+
+section.cite p {
+ color: #fffbfe;
+}
+
+section.cite strong {
+ color: #f87ca1;
+}
+
+/* ------------------- IMAGE SHADOWS -----------------------------*/
+img {
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+}
+
+/* ---------- Custom diagrams for model vs context comparison ---------- */
+
+section .footprint-bars {
+ display: flex;
+ flex-direction: column;
+ gap: 1.5rem;
+ margin-top: 2rem;
+}
+
+section .footprint-bars .row {
+ display: grid;
+ grid-template-columns: 260px 1fr;
+ gap: 1.5rem;
+ align-items: center;
+}
+
+section .footprint-bars .label strong {
+ display: block;
+ font-size: 1.05em;
+ color: var(--bold-color);
+}
+
+section .footprint-bars .label .meta {
+ font-size: 0.8em;
+ color: #475569;
+ margin-top: 0.25rem;
+}
+
+section .footprint-bars .bar {
+ position: relative;
+ height: 42px;
+ border-radius: 999px;
+ background: rgba(15, 23, 42, 0.12);
+ overflow: hidden;
+}
+
+section .footprint-bars .bar[data-note]::after {
+ content: attr(data-note);
+ position: absolute;
+ top: calc(100% + 4px);
+ left: 0;
+ font-size: 0.62em;
+ letter-spacing: 0.06em;
+ text-transform: uppercase;
+ color: #64748b;
+}
+
+section .footprint-bars .fill {
+ position: absolute;
+ inset: 0;
+ border-radius: inherit;
+ background: linear-gradient(90deg, #f97316 0%, #facc15 100%);
+ transform-origin: left center;
+ transform: scaleX(var(--scale, 1));
+}
+
+section .footprint-bars .fill span {
+ position: absolute;
+ right: 16px;
+ top: 50%;
+ transform: translateY(-50%);
+ font-weight: 600;
+ color: #1f2937;
+ font-size: 0.85em;
+}
+
+section .footprint-bars .fill.is-tiny {
+ background: linear-gradient(90deg, #38bdf8 0%, #0ea5e9 100%);
+}
+
+section .footprint-bars .fill.is-tiny span {
+ color: #0f172a;
+}
+
+section .footprint-note {
+ margin-top: 1.25rem;
+ font-size: 0.72em;
+ color: #475569;
+ letter-spacing: 0.04em;
+ text-transform: uppercase;
+}
+
+section .footprint-grid {
+ margin-top: 2.5rem;
+ display: grid;
+ grid-template-columns: repeat(12, minmax(0, 1fr));
+ gap: 1.2rem;
+ align-items: end;
+}
+
+section .footprint-grid .panel {
+ position: relative;
+ border-radius: 28px;
+ border: 3px solid rgba(15, 23, 42, 0.15);
+ background: linear-gradient(145deg, rgba(248, 196, 113, 0.3), rgba(249, 115, 22, 0.65));
+ box-shadow: 0 28px 48px rgba(15, 23, 42, 0.18);
+ padding: 2.2rem;
+ min-height: clamp(240px, 52vh, 520px);
+ color: #1f2937;
+ overflow: hidden;
+}
+
+section .footprint-grid .panel small {
+ display: block;
+ font-size: 0.78em;
+ text-transform: uppercase;
+ letter-spacing: 0.08em;
+ color: rgba(15, 23, 42, 0.65);
+ margin-bottom: 0.4rem;
+}
+
+section .footprint-grid .panel strong {
+ display: block;
+ font-size: 1.75em;
+ color: var(--bold-color);
+}
+
+section .footprint-grid .panel p {
+ font-size: 0.95em;
+ margin-top: 1rem;
+ color: rgba(15, 23, 42, 0.82);
+}
+
+section .footprint-grid .panel::after {
+ content: attr(data-caption);
+ position: absolute;
+ right: 28px;
+ bottom: 26px;
+ font-size: 0.78em;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ color: rgba(15, 23, 42, 0.55);
+}
+
+section .footprint-grid .panel.context {
+ grid-column: span 3;
+ min-height: clamp(90px, 16vh, 220px);
+ background: linear-gradient(145deg, rgba(59, 130, 246, 0.35), rgba(14, 165, 233, 0.75));
+ box-shadow: 0 20px 32px rgba(14, 165, 233, 0.28);
+}
+
+section .footprint-grid .panel.context strong {
+ color: #0f172a;
+}
+
+section .footprint-grid .panel.context p {
+ color: rgba(15, 23, 42, 0.68);
+}
+
+section .footprint-grid .panel.weights {
+ grid-column: span 9;
+}
+
+section .window-grid {
+ margin-top: 2rem;
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
+ gap: 1.2rem;
+}
+
+section .window-card {
+ background: white;
+ border-radius: 18px;
+ border: 1px solid rgba(15, 23, 42, 0.08);
+ box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12);
+ padding: 1.6rem;
+ position: relative;
+ overflow: hidden;
+}
+
+section .window-card::after {
+ content: attr(data-year);
+ position: absolute;
+ top: 18px;
+ right: 20px;
+ font-size: 0.72em;
+ text-transform: uppercase;
+ letter-spacing: 0.12em;
+ color: rgba(15, 23, 42, 0.45);
+}
+
+section .window-card strong {
+ display: block;
+ font-size: 1.2em;
+ color: var(--bold-color);
+}
+
+section .window-card .tokens {
+ font-size: 1.05em;
+ margin-top: 0.7rem;
+ font-weight: 600;
+ color: #1e293b;
+}
+
+section .window-card .tokens span {
+ display: block;
+ font-size: 0.7em;
+ font-weight: 500;
+ letter-spacing: 0.04em;
+ color: #64748b;
+ text-transform: uppercase;
+}
+
+section .window-card p {
+ font-size: 0.82em;
+ line-height: 1.35;
+ color: #475569;
+ margin-top: 1rem;
+}
+
+section .window-card .badge {
+ margin-top: 1.2rem;
+ display: inline-flex;
+ align-items: center;
+ gap: 0.35rem;
+ padding: 0.35rem 0.8rem;
+ border-radius: 999px;
+ background: rgba(14, 165, 233, 0.12);
+ color: #0369a1;
+ font-size: 0.7em;
+ letter-spacing: 0.05em;
+ text-transform: uppercase;
+}
+
+section .analog-table {
+ margin-top: 1.8rem;
+ border-radius: 16px;
+ border: 1px solid rgba(15, 23, 42, 0.08);
+ overflow: hidden;
+ box-shadow: 0 18px 30px rgba(15, 23, 42, 0.1);
+}
+
+section .analog-table table {
+ width: 100%;
+ border-collapse: collapse;
+ font-size: 0.85em;
+}
+
+section .analog-table th,
+section .analog-table td {
+ padding: 0.85rem 1rem;
+ text-align: left;
+}
+
+section .analog-table tr:nth-child(even) {
+ background: rgba(15, 23, 42, 0.04);
+}
+
+section .analog-table th {
+ background: rgba(15, 23, 42, 0.08);
+ text-transform: uppercase;
+ font-size: 0.72em;
+ letter-spacing: 0.08em;
+ color: #1f2937;
+}
+
+section .analog-notes {
+ margin-top: 1rem;
+ font-size: 0.72em;
+ color: #475569;
+ letter-spacing: 0.04em;
+ text-transform: uppercase;
+}
+
+section .footprint-nesting {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: 2rem;
+ margin-top: 2rem;
+}
+
+section .footprint-nesting .box {
+ position: relative;
+ background: #fff7ed;
+ border: 2px solid #fb923c;
+ border-radius: 18px;
+ padding: 1.75rem;
+ min-height: 240px;
+ box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.05);
+}
+
+section .footprint-nesting .box strong {
+ font-size: 1.1em;
+ color: var(--bold-color);
+}
+
+section .footprint-nesting .box.emphasis {
+ background: #ecfeff;
+ border-color: #38bdf8;
+}
+
+section .footprint-nesting .chip {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.4rem;
+ padding: 0.35rem 0.85rem;
+ border-radius: 999px;
+ background: #ffedd5;
+ border: 1px solid #f97316;
+ font-size: 0.7em;
+ letter-spacing: 0.06em;
+ text-transform: uppercase;
+ margin-top: 1.1rem;
+}
+
+section .footprint-nesting .box.emphasis .chip {
+ background: #e0f2fe;
+ border-color: #0ea5e9;
+ color: #0369a1;
+}
+
+section .footprint-nesting .box .inner {
+ position: absolute;
+ bottom: 18px;
+ right: 18px;
+ width: clamp(60px, 22%, 140px);
+ min-height: clamp(60px, 22%, 120px);
+ background: #0ea5e9;
+ color: white;
+ border-radius: 14px;
+ padding: 0.75rem;
+ font-size: 0.8em;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ box-shadow: 0 10px 18px rgba(14, 165, 233, 0.35);
+}
+
+section .footprint-nesting .box .inner::after {
+ content: 'magnified';
+ position: absolute;
+ top: -22px;
+ font-size: 0.6em;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ color: rgba(14, 165, 233, 0.9);
+}
+
+section .footprint-nesting ul {
+ margin-top: 1rem;
+ padding-left: 1.15rem;
+ font-size: 0.85em;
+ color: #1f2937;
+}
+
+section .footprint-nesting ul li {
+ margin-bottom: 0.35rem;
+}
diff --git a/2025/secure-se-sep/theme/jobs.css b/2025/secure-se-sep/theme/jobs.css
new file mode 100644
index 0000000000000000000000000000000000000000..0a3dd13da0ea977187f199c4621626485abb5ac1
--- /dev/null
+++ b/2025/secure-se-sep/theme/jobs.css
@@ -0,0 +1,275 @@
+/* @theme jobs */
+
+/*
+ ============================================
+ Created by Paulo Cunha
+ version: 1.0
+ last update: 08.fev.2023
+ ============================================
+*/
+
+/* Importing COLOR SCHEMA */
+
+@import "default";
+@import "schema";
+@import "structure";
+
+
+/* --------------------- FONTS ------------------------- */
+
+/* Ultra Light */
+@font-face {
+ font-family: "San Francisco";
+ font-weight: 100;
+ src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-ultralight-webfont.woff2");
+}
+
+/* Thin */
+@font-face {
+ font-family: "San Francisco 200";
+ font-weight: 200;
+ src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-thin-webfont.woff2");
+}
+
+/* Regular */
+@font-face {
+ font-family: "San Francisco 400";
+ font-weight: 400;
+ src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-regular-webfont.woff2");
+}
+
+/* Bold */
+@font-face {
+ font-family: "San Francisco bold";
+ font-weight: bold;
+ src: url("https://applesocial.s3.amazonaws.com/assets/styles/fonts/sanfrancisco/sanfranciscodisplay-bold-webfont.woff2");
+}
+
+/* Bold */
+@font-face {
+ font-family: "Minion Pro";
+ /* font-weight: bold; */
+ src: url("https://fonts.cdnfonts.com/css/minion-pro");
+}
+
+
+
+/***************** COMMON STRUCTURE **********************/
+
+:root {
+ /* font-family: Cochin, Georgia; */
+ /* font-family: 'Times New Roman', Times, serif; */
+ /* font-family: "Fira Sans Light"; */
+
+ font-family: 'Tahoma';
+ font-family: 'Open Sans';
+ font-family: 'Segoe UI';
+
+ font-weight: initial;
+
+ /* -- Bodytext FONT color */
+ color: #494545;
+
+ /* -- Slides BACKGROUND color */
+ background-color : white;
+
+ /* -- BOLD font color */
+ --bold-color : rgb(105, 120, 151);
+ --bold-color : rgb(71, 111, 184);
+ --bold-color : rgb(71, 107, 184);
+
+ --italic-color : rgb(96, 89, 89);
+
+ --italic-background-color : rgba(142, 145, 146, 0.172);
+
+ /* --background-color : #fdf6e3; */
+ --list-item-color : rgb(255, 212, 95);
+
+ --after-color : rgb(201, 198, 198);
+
+ --table-font-color : black;
+
+ --table-header-color : rgb(128, 137, 146);
+
+ --border-color : #014385;
+
+ --main-color : rgb(207, 77, 17);
+
+ --darker-color : #246;
+
+ --lighter-color : #080a0a;
+
+ --extra-back-color : rgb(71, 69, 69);
+
+ --letter-spacing : 0.125px;
+
+ --cool-list-color : rgb(135, 157, 179);
+
+ --author-align : right;
+}
+
+/* ------------------- ROOT -----------------------------*/
+
+:root h1 {
+
+ font-family: 'San Francisco', sans-serif;
+
+ /* --border-color : rgb(209, 161, 29); */
+ border-bottom: 1px solid rgb(29, 107, 209) !important;
+
+ color: #2b2c2e;
+
+ font-weight: 600;
+
+ padding-top: 10pt;
+ padding-left: 60pt;
+
+ margin-left: -60pt;
+ margin-right: -60pt;
+
+ letter-spacing: -0.5px;
+}
+
+
+:root h1 strong {
+
+ color: rgb(255, 52, 52);
+}
+
+
+:root h1 {
+ font-family: 'San Francisco 400';
+}
+
+
+:root p {
+
+ font-size: 34px;
+ font-family: 'San Francisco 400';
+ letter-spacing: -0.5px;
+}
+
+
+:root li {
+
+ font-family: 'San Francisco';
+ letter-spacing: -0.3px;
+}
+
+
+/* ------------------- TITLEPAGE -----------------------------*/
+
+/* Titlepage made with