@layer reset,tokens,base,components,utilities;@layer reset{*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,h1,h2,h3,p,figure,blockquote,dl,dd{margin:0}img,picture,video,canvas,svg{display:block;max-width:100%}button,input,textarea,select{font:inherit}}@layer tokens{:root{--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: Iowan Old Style, Charter, "Bitstream Charter", Georgia, serif;--font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--step--1: clamp(.78rem, .75rem + .12vw, .86rem);--step-0: clamp(1rem, .96rem + .2vw, 1.12rem);--step-1: clamp(1.2rem, 1.08rem + .58vw, 1.52rem);--step-2: clamp(1.55rem, 1.3rem + 1.2vw, 2.2rem);--step-3: clamp(2rem, 1.55rem + 2.2vw, 3.25rem);--step-4: clamp(2.8rem, 1.8rem + 4.8vw, 5.7rem);--space-1: .35rem;--space-2: .65rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2rem;--space-6: 2.5rem;--space-7: clamp(2.5rem, 5vw, 4.5rem);--measure: 70ch;--wide: 76rem;--radius-s: .35rem;--radius-m: .85rem;--radius-l: 1.5rem;--shadow: 0 1.2rem 3rem color-mix(in srgb, var(--color-ink), transparent 90%)}[data-theme=joemccraw]{color-scheme:light;--color-bg: #f2ecdf;--color-surface: #fbf7ee;--color-surface-2: #e5dccb;--color-ink: #20211e;--color-muted: #67675f;--color-line: #c8beab;--color-accent: #aa392a;--color-accent-ink: #fffaf0;--color-link: #1d5770;--font-body: var(--font-serif);--font-display: var(--font-serif)}[data-theme=showblender]{color-scheme:dark;--color-bg: #071214;--color-surface: #0d1d20;--color-surface-2: #142a2e;--color-ink: #eff6f3;--color-muted: #a7b6b2;--color-line: #29484c;--color-accent: #dfff58;--color-accent-ink: #071214;--color-link: #69dbea;--font-body: var(--font-sans);--font-display: var(--font-sans)}}@layer base{html{scroll-behavior:smooth;background:var(--color-bg)}body{min-width:20rem;min-height:100vh;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:var(--step-0);line-height:1.65}a{color:var(--color-link);overflow-wrap:anywhere;text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{text-decoration-thickness:.14em}:focus-visible{outline:.2rem solid var(--color-accent);outline-offset:.25rem;border-radius:var(--radius-s)}::selection{background:var(--color-accent);color:var(--color-accent-ink)}h1,h2,h3{font-family:var(--font-display);line-height:1.05;overflow-wrap:anywhere;text-wrap:balance}h1{font-size:var(--step-4);letter-spacing:-.055em}h2{font-size:var(--step-3);letter-spacing:-.035em}h3{font-size:var(--step-2);letter-spacing:-.025em}p,li{text-wrap:pretty}code,pre{font-family:var(--font-mono);font-size:.88em}:not(pre)>code{padding:.12em .32em;border:1px solid var(--color-line);border-radius:var(--radius-s);background:var(--color-surface);overflow-wrap:anywhere;word-break:break-word}pre{max-width:100%;overflow-x:auto;padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-m);background:#071012;color:#e8f2ef;tab-size:2}blockquote{padding-left:var(--space-4);border-left:.25rem solid var(--color-accent);color:var(--color-muted);font-size:var(--step-1)}}@layer components{.skip-link{position:fixed;z-index:100;top:-5rem;left:var(--space-3);padding:.7rem 1rem;background:var(--color-accent);color:var(--color-accent-ink);font:800 var(--step--1)/1 var(--font-sans);text-decoration:none}.skip-link:focus{top:var(--space-3)}.site-shell{display:flex;min-height:100vh;flex-direction:column}.site-main{flex:1}.site-width{width:min(var(--wide),calc(100% - 2rem));margin-inline:auto}.site-header{border-bottom:1px solid var(--color-line)}.site-header__inner{min-height:5rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.site-brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--color-ink);font:850 var(--step-0)/1 var(--font-sans);letter-spacing:-.03em;text-decoration:none}.site-brand__mark{color:var(--color-accent)}.site-brand__seal{border-radius:50%}.site-nav ul{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem 1.2rem;margin:0;padding:0;list-style:none}.site-nav a{color:var(--color-muted);font:720 var(--step--1)/1.2 var(--font-sans);text-decoration:none}.site-nav a[aria-current=page],.site-nav a:hover{color:var(--color-ink)}.archive-banner{background:var(--color-accent);color:var(--color-accent-ink);font:750 var(--step--1)/1.4 var(--font-sans)}.archive-banner__inner{display:flex;min-height:2.6rem;align-items:center;justify-content:center;gap:.45rem;text-align:center}.archive-banner a{color:inherit}.book-highlight{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;justify-content:space-between;margin-bottom:var(--space-6);padding:var(--space-4);border:1px solid var(--color-line);border-left:.3rem solid var(--color-accent);border-radius:var(--radius-m);background:var(--color-surface)}.book-highlight__content{flex:1;min-width:16rem}.book-highlight__label{display:block;margin-bottom:var(--space-1)}.book-highlight__title{font-family:var(--font-display);font-size:var(--step-1);font-weight:800;letter-spacing:-.02em}.book-highlight__desc{margin-top:var(--space-1);color:var(--color-muted)}.site-footer{margin-top:var(--space-6);border-top:1px solid var(--color-line)}.site-footer__inner{display:flex;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-5);color:var(--color-muted);font:var(--step--1)/1.5 var(--font-sans)}.page-hero{padding-block:var(--space-6) var(--space-5)}.page-hero--compact{padding-block:var(--space-5) var(--space-4)}.eyebrow,.status-label,.meta-list dt{font:800 .72rem/1.3 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.eyebrow{margin-bottom:var(--space-3);color:var(--color-accent)}[data-theme=joemccraw] .eyebrow{color:var(--color-accent)}.page-deck{max-width:46rem;margin-top:var(--space-4);color:var(--color-muted);font-size:var(--step-1);line-height:1.55}.status-label{display:inline-flex;width:fit-content;margin-top:var(--space-4);padding:.45rem .65rem;border:1px solid currentColor;border-radius:999px;color:var(--color-accent)}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,18rem);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}.prose{min-width:0;max-width:var(--measure)}.prose>*+*{margin-top:1em}.prose>h2{margin-top:1.5em}.prose>h3{margin-top:1.3em}.prose ul,.prose ol{padding-left:1.4em}.prose img{width:auto;height:auto;margin-inline:auto;border-radius:var(--radius-m)}.prose iframe{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:16 / 9;border:0;border-radius:var(--radius-m)}.prose video{display:block;width:100%;max-width:100%;height:auto;border-radius:var(--radius-m)}.page-aside{position:sticky;top:var(--space-4);padding-top:var(--space-3);border-top:.2rem solid var(--color-accent);color:var(--color-muted);font-size:var(--step--1)}.page-aside>*+*{margin-top:var(--space-3)}.meta-list{display:grid;gap:var(--space-3)}.meta-list div{display:grid;gap:var(--space-1)}.meta-list dd{color:var(--color-ink)}.card-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-3)}.card{grid-column:span 6;min-height:16rem;display:flex;flex-direction:column;min-width:0;padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-m);background:var(--color-surface);color:var(--color-ink);text-decoration:none;transition:transform .15s ease,border-color .15s ease;overflow-wrap:break-word}.card:hover{transform:translateY(-.15rem);border-color:var(--color-accent)}.card__media{width:100%;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--radius-s);margin-bottom:var(--space-3);background:var(--color-bg);border:1px solid var(--color-line)}.card__media img{width:100%;height:100%;object-fit:cover;display:block}.card__eyebrow{color:var(--color-accent);font:800 .7rem/1.3 var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.card h2,.card h3{padding-top:var(--space-2);overflow-wrap:break-word;word-break:normal;hyphens:auto}.card:not(:has(.card__media)) h2,.card:not(:has(.card__media)) h3{margin-top:auto;padding-top:var(--space-6)}.card p{margin-top:var(--space-2);color:var(--color-muted)}.card__meta{margin-top:auto;padding-top:var(--space-3);color:var(--color-link);font:700 var(--step--1)/1.4 var(--font-sans)}.project-group{margin-top:var(--space-6)}.project-group:first-of-type{margin-top:0}.project-group__header{margin-bottom:var(--space-3)}.project-group__header h2{font-size:var(--step-2);color:var(--color-ink)}.project-group__header p{margin-top:var(--space-1);color:var(--color-muted);font-size:var(--step--1)}.index-list{display:grid;border-top:1px solid var(--color-line)}.index-item{display:grid;grid-template-columns:minmax(7rem,.3fr) 1fr;gap:var(--space-4);padding-block:var(--space-4);border-bottom:1px solid var(--color-line);color:var(--color-ink);text-decoration:none}.index-item__meta{color:var(--color-muted);font:var(--step--1)/1.45 var(--font-mono)}.index-item h2{font-size:var(--step-2)}.index-item p{margin-top:var(--space-2);color:var(--color-muted)}.figure{margin-block:var(--space-5)}.figure img{width:100%;height:auto;border:1px solid var(--color-line);border-radius:var(--radius-m);background:var(--color-surface)}.figure figcaption{margin-top:var(--space-2);color:var(--color-muted);font:var(--step--1)/1.5 var(--font-sans)}.figure figcaption:before{content:"Figure — ";color:var(--color-ink);font-weight:800}.figure--devices{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3)}.figure--devices img{width:min(100%,15rem);border-radius:var(--radius-l)}.figure--devices figcaption{flex-basis:100%;margin-top:0}.figure--devices>a{display:block;max-width:min(100%,15rem)}.signallab-brand{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-5);margin-block:var(--space-5);padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-l);background:var(--color-surface)}.signallab-brand img{width:min(100%,15rem);height:auto;border-radius:var(--radius-l)}.signallab-brand p{flex:1 1 15rem;margin:0}.callout{padding:var(--space-4);border:1px solid var(--color-line);border-left:.3rem solid var(--color-accent);border-radius:var(--radius-s);background:var(--color-surface)}.button-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5)}.button{display:inline-flex;align-items:center;justify-content:center;padding:.72rem 1rem;border:1px solid var(--color-line);border-radius:999px;color:var(--color-ink);font:780 var(--step--1)/1 var(--font-sans);text-decoration:none}.button--primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-ink)}.empty-state{grid-column:span 6;min-height:16rem;display:flex;flex-direction:column;min-width:0;padding:var(--space-6);border:1px dashed var(--color-line);border-radius:var(--radius-m);text-align:center}.secondary-routes{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);align-items:baseline;margin-top:var(--space-5);padding-block:var(--space-4);border-block:1px solid var(--color-line);font:var(--step--1)/1.5 var(--font-sans)}}@layer utilities{.flow>*+*{margin-top:var(--flow-space, 1rem)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}@media(max-width:48rem){:root{--step-4: clamp(2.1rem, 1.7rem + 2.4vw, 2.8rem);--step-3: clamp(1.7rem, 1.4rem + 1.8vw, 2.2rem);--step-2: clamp(1.35rem, 1.15rem + 1vw, 1.65rem);--space-5: 1.5rem;--space-6: 1.85rem;--space-7: 2.25rem}.site-header__inner{min-height:3.5rem;padding-block:var(--space-2);align-items:flex-start}.site-nav ul{max-width:19rem}.page-hero{padding-block:var(--space-5) var(--space-4)}.page-hero--compact{padding-block:var(--space-4) var(--space-3)}.content-grid{grid-template-columns:1fr;gap:var(--space-5)}.page-aside{position:static}.card,.card:nth-child(n){grid-column:1 / -1;min-height:11rem;padding:var(--space-3)}.card h2,.card h3{padding-top:var(--space-4)}.site-footer__inner{flex-direction:column}.book-highlight{flex-direction:column;align-items:flex-start;padding:var(--space-3)}.index-item{padding-block:var(--space-3)}}@media(max-width:30rem){.site-header__inner{display:block}.site-nav ul{justify-content:flex-start;margin-top:var(--space-2)}.index-item{grid-template-columns:1fr;gap:var(--space-2)}.archive-banner__inner{display:block;padding-block:.55rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
