:root{--paper: #f7f5ef;--paper-strong: #f1eee5;--ink: #111111;--ink-soft: #3d3d3d;--graphite: #8d8a83;--line: rgba(17, 17, 17, .12);--line-strong: rgba(17, 17, 17, .22);--inverse: #111111;--inverse-ink: #f7f5ef;--shadow: 0 18px 50px rgba(17, 17, 17, .08);--radius: 1.2rem;--radius-sm: .8rem;--max-width: 72rem;--font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;--font-body: Aptos, "Segoe UI", "Trebuchet MS", sans-serif;--font-mono: "Cascadia Code", "Courier Prime", "Lucida Console", monospace}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-body);color:var(--ink);background:linear-gradient(to right,transparent 0,transparent 5.25rem,rgba(17,17,17,.14) 5.25rem,rgba(17,17,17,.14) 5.35rem,transparent 5.35rem),repeating-linear-gradient(to bottom,transparent 0,transparent 2rem,rgba(17,17,17,.05) 2rem,rgba(17,17,17,.05) 2.08rem),radial-gradient(circle at top,rgba(255,255,255,.7),transparent 35%),var(--paper);line-height:1.6}body:after{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(rgba(17,17,17,.04) .7px,transparent .7px),radial-gradient(rgba(255,255,255,.55) .9px,transparent .9px);background-position:0 0,14px 14px;background-size:28px 28px;mix-blend-mode:multiply;opacity:.26}a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em}img{display:block;max-width:100%}code,pre,kbd{font-family:var(--font-mono)}code{padding:.15rem .35rem;border:1px solid var(--line);border-radius:.35rem;background:#ffffffb3}pre{overflow-x:auto;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fbfaf6}pre code{padding:0;border:0;background:transparent}:focus-visible{outline:2px solid var(--ink);outline-offset:.2rem}.skip-link{position:absolute;left:1rem;top:-3rem;padding:.75rem 1rem;background:var(--inverse);color:var(--inverse-ink);z-index:100}.skip-link:focus-visible{top:1rem}.site-wrap{position:relative}.site-main,.site-header__inner,.site-footer__inner{width:min(calc(100% - 2rem),var(--max-width));margin:0 auto}.site-main{padding:2rem 0 5rem}.site-header{position:sticky;top:0;z-index:20;backdrop-filter:blur(10px);background:#f7f5efe0;border-bottom:1px solid var(--line)}.site-header__inner,.site-footer__inner,.hero,.about-grid,.contact-grid,.article-nav{display:grid;gap:1rem}.site-header__inner{grid-template-columns:auto 1fr;align-items:center;padding:1rem 0}.brand{display:inline-flex;align-items:center;gap:.85rem;font-family:var(--font-display);font-size:1.1rem;text-decoration:none}.brand-mark{display:block;width:2.5rem;height:2.5rem;border-radius:.8rem;border:1px solid var(--line-strong);background:transparent;object-fit:cover;box-shadow:0 8px 18px #11111114}.nav-list,.tag-list,.contact-list,.detail-list,.check-list{margin:0;padding:0;list-style:none}.nav-list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.nav-list a,.footer-links a{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem .8rem;border-radius:999px;text-decoration:none;transition:background-color .18s ease,transform .18s ease}.nav-list a:hover,.footer-links a:hover,.button:hover,.contact-list a:hover{background:#1111110f;transform:translateY(-1px)}.section-stack{display:grid;gap:1.5rem;margin-top:5rem}.section-heading{max-width:48rem}.section-heading h2,.hero h1,.article-header h1{margin:0;font-family:var(--font-display);line-height:.95;letter-spacing:-.04em}.hero h1{font-size:clamp(3rem,10vw,5.9rem);max-width:11ch}.section-heading h2{font-size:clamp(2rem,6vw,3.4rem);max-width:13ch}.article-header h1{font-size:clamp(2.4rem,7vw,4.3rem)}.eyebrow{margin:0 0 .9rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.lede,.section-heading p,.article-summary,.paper-panel p,.blog-card p{margin:0;color:var(--ink-soft)}.panel-grid,.blog-grid{display:grid;gap:1rem}.hero{grid-template-columns:minmax(0,2fr) minmax(18rem,1fr);align-items:start;margin-top:1.5rem}.paper-panel{position:relative;padding:1.5rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:linear-gradient(180deg,#ffffffd9,#ffffff9e),var(--paper-strong);box-shadow:var(--shadow);overflow:hidden}.paper-panel:before{content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid rgba(255,255,255,.35);pointer-events:none}.hero-copy,.article-prose{padding:clamp(2rem,5vw,3rem)}.hero-copy .lede{margin-top:1.35rem;max-width:34rem}.hero-copy .hero-actions{margin-top:1.5rem}.hero-note{background:linear-gradient(180deg,#111111f7,#111111eb),var(--inverse);color:var(--inverse-ink)}.hero-note .eyebrow,.hero-note span,.hero-note strong{color:inherit}.hero-note .detail-list{display:grid;gap:1rem}.detail-list li,.contact-list li a{display:flex;justify-content:space-between;gap:1rem}.detail-list li{display:grid;grid-template-columns:4.75rem minmax(0,1fr);align-items:start}.detail-list strong,.article-meta span,.project-status{font-family:var(--font-mono);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}.detail-list span{text-align:right}.hero-actions,.article-meta,.footer-links{display:flex;flex-wrap:wrap;gap:.75rem}.button{display:inline-flex;align-items:center;justify-content:center;padding:.9rem 1.25rem;border:1px solid var(--line-strong);border-radius:999px;font-weight:600;text-decoration:none;transition:background-color .18s ease,color .18s ease,transform .18s ease}.button-primary{background:var(--inverse);color:var(--inverse-ink)}.button-secondary{background:#ffffffb8}.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-card,.article-nav__link{display:grid;gap:1rem}.blog-card h3{margin:0;font-family:var(--font-display);font-size:1.75rem;line-height:1.05}.tag-list{display:flex;flex-wrap:wrap;gap:.55rem}.tag-list li{padding:.4rem .7rem;border:1px solid var(--line);border-radius:999px;background:#ffffffb8;font-size:.92rem}.about-grid,.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-grid .paper-panel,.contact-grid .paper-panel{display:grid;gap:1rem}.check-list{display:grid;gap:.9rem}.check-list li{position:relative;padding-left:1.3rem}.check-list li:before{content:"";position:absolute;left:0;top:.58rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--ink)}.empty-state,.section-cta{text-align:center}.empty-state h3{margin:0;font-family:var(--font-display);font-size:1.6rem}.contact-callout{font-size:1.1rem}.contact-list{display:grid;gap:.65rem}.contact-list a{padding:.9rem 0;border-bottom:1px solid var(--line);text-decoration:none}.blog-meta{display:grid;gap:.9rem}.article-shell{display:grid;gap:1rem}.article-header{gap:1rem}.article-meta{font-size:.9rem;color:var(--ink-soft)}.article-prose{max-width:100%}.article-prose>:first-child{margin-top:0}.article-prose h2,.article-prose h3{font-family:var(--font-display);line-height:1.1}.article-prose h2{font-size:clamp(1.8rem,4vw,2.6rem);margin-top:2.2rem;margin-bottom:.8rem}.article-prose h3{font-size:clamp(1.35rem,3vw,1.85rem);margin-top:1.8rem;margin-bottom:.7rem}.article-prose p,.article-prose li{max-width:68ch;font-size:1.05rem;color:var(--ink-soft)}.article-prose ul,.article-prose ol{padding-left:1.35rem}.article-prose blockquote{margin:1.6rem 0;padding:.35rem 0 .35rem 1rem;border-left:3px solid var(--line-strong);font-family:var(--font-display);font-size:1.15rem;color:var(--ink)}.article-nav{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.5rem}.article-nav__link{text-decoration:none}.site-footer{padding:1rem 0 2rem}.site-footer__inner{grid-template-columns:1fr auto auto;align-items:end;padding-top:2rem;border-top:1px solid var(--line-strong)}.footer-copy{margin:0;color:var(--ink-soft)}@media(prefers-reduced-motion:no-preference){.reveal{animation:rise-in .5s ease both}.reveal:nth-child(2){animation-delay:80ms}.reveal:nth-child(3){animation-delay:.14s}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){body{background:repeating-linear-gradient(to bottom,transparent 0,transparent 2rem,rgba(17,17,17,.05) 2rem,rgba(17,17,17,.05) 2.08rem),var(--paper)}.hero,.about-grid,.contact-grid,.article-nav,.site-footer__inner{grid-template-columns:1fr}}@media(max-width:640px){.site-main,.site-header__inner,.site-footer__inner{width:min(calc(100% - 1.2rem),var(--max-width))}.paper-panel{padding:1.15rem}.hero h1{max-width:12ch}.contact-list li a{flex-direction:column}.detail-list li{grid-template-columns:1fr}.detail-list span{text-align:left}}
