:root{--bg:#faf8f2;--fg:#22201b;--dim:#5f5b52;--acc:#2374b5;--gold:#8a6d1f;--rule:#e4e0d3;--card:#f1eee4;
--ink:#0d1117;--ink-fg:#e9e7e2;--ink-dim:#9aa1ad;--ink-rule:#242b36;--ink-card:#151b24;--serif:'Literata',Georgia,'Iowan Old Style',serif;--sans:system-ui,'Segoe UI',sans-serif}
@media (prefers-color-scheme:dark){:root{--bg:#0f1115;--fg:#e8e6e1;--dim:#a8a49c;--acc:#5ea8e5;--gold:#c9a227;--rule:#2a2e36;--card:#161a20}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:1.125rem/1.7 var(--serif)}
a{color:var(--acc);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{text-decoration-thickness:2px}
img{max-width:100%;height:auto}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;background:var(--acc);color:#fff;padding:8px 14px;z-index:9}
.wrap{max-width:44rem;margin:0 auto;padding:2rem 1.25rem 5rem}
header.site{border-bottom:1px solid var(--rule);margin-bottom:2rem;padding-bottom:1rem}
header.site a.home{font-family:var(--sans);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);text-decoration:none}
h1{font-size:2.05rem;line-height:1.22;margin:.4em 0 .3em}
h2{font-size:1.5rem;line-height:1.3;margin:2em 0 .5em}
h3{font-size:1.2rem;margin:1.7em 0 .4em}
h4,h5,h6{font-size:1.05rem;margin:1.5em 0 .4em}
p{margin:0 0 1.15em}
blockquote{margin:1.4em 0;padding:.2em 0 .2em 1.1em;border-left:3px solid var(--rule);color:var(--dim)}
hr{border:0;border-top:1px solid var(--rule);margin:2.4em 0}
code{background:var(--card);padding:.1em .35em;border-radius:3px;font-size:.9em}
ul,ol{margin:0 0 1.15em;padding-left:1.4em}li{margin:.3em 0}
.meta{font-family:var(--sans);font-size:.82rem;color:var(--dim);letter-spacing:.02em}
.cite{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--gold);font-size:.9rem}
.banner{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--acc);padding:1rem 1.1rem;margin:0 0 2rem;font-family:var(--sans);font-size:.95rem}
.grant{background:var(--card);border:1px solid var(--rule);padding:1rem 1.1rem;font-family:var(--sans);font-size:.9rem;color:var(--dim)}
.tier{border:1px solid var(--rule);background:var(--card);padding:1.3rem 1.4rem;margin:0;border-radius:10px}
.tier h3{margin:0 0 .5em;font-family:var(--serif);font-size:1.08rem}
.tier ol{font-family:var(--sans);font-size:.95rem;margin:0;padding-left:1.3em}
.tier li{margin:.5em 0}
nav.toc{font-family:var(--sans);font-size:.98rem}
nav.toc h2{font-size:1.15rem;margin:1.8em 0 .4em;color:var(--dim);font-family:var(--sans);letter-spacing:.03em}
nav.toc ol{list-style:none;padding:0;margin:0}
nav.toc li{margin:0;border-bottom:1px solid var(--rule)}
nav.toc a{display:flex;justify-content:space-between;gap:1rem;padding:.6rem .2rem;text-decoration:none}
nav.toc a:hover{background:var(--card)}
nav.toc .t{flex:1}
nav.toc .w{color:var(--dim);font-size:.85rem;white-space:nowrap}
.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--rule);font-family:var(--sans);font-size:.92rem}
.raw{font-family:var(--sans);font-size:.85rem;color:var(--dim);margin-top:2rem}
footer.site{margin-top:4rem;padding-top:1.2rem;border-top:1px solid var(--rule);font-family:var(--sans);font-size:.85rem;color:var(--dim)}

/* ── landing page: the body is Collins' tp-* design (scripts/home-landing.html,
   styles inline there). The homepage is fixed light like WordPress, in every
   color scheme — only the shell lives here. ── */
body.home{background:#fff;color:#0c1115;font:16px/1.7 'Muli',system-ui,'Segoe UI',sans-serif}
.homebar{background:#0c1115;padding:16px 30px;margin:0;border-bottom:0}
.homebar .inner{max-width:1080px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.homebar a.home{font-family:'Muli',system-ui,sans-serif;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#fff;text-decoration:none}
.homebar nav{display:flex;gap:24px;font-family:'Muli',system-ui,sans-serif;font-size:14px}
.homebar nav a{color:rgba(255,255,255,.65);text-decoration:none}
.homebar nav a:hover{color:#fff}
.tp-read{margin:14px 0 0 !important;font-size:14px !important;color:#555}
.tp-read a{font-weight:700}
.tp-read-meta{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#888;white-space:nowrap}
.tp-tier-list{margin:0;padding-left:22px;font-size:15px}
.tp-tier-list li{margin:10px 0;line-height:1.5}
.tp-grant{background:rgba(255,255,255,.08);border-radius:8px;padding:20px 24px;font-size:15px !important;margin-top:30px}
/* lite YouTube facades: real thumbnails, iframe only on click */
.yt-lite{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;margin:0;cursor:pointer;border-radius:6px;overflow:hidden;background:#0c1115}
.yt-lite img{width:100%;height:100%;object-fit:cover;opacity:.88;transition:opacity .2s,transform .35s ease}
.yt-lite:hover img{opacity:1;transform:scale(1.04)}
.yt-lite .yt-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:44px;border-radius:10px;background:rgba(12,17,21,.78);transition:background .2s}
.yt-lite:hover .yt-play{background:#3586c8}
.yt-lite .yt-play::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-40%,-50%);border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent #fff}
/* ambient video band (Iterative Prophecy) */
.tp-has-video{position:relative;overflow:hidden}
.tp-band-media{position:absolute;inset:0;z-index:0}
.tp-band-media video{width:100%;height:100%;object-fit:cover;opacity:.45}
.tp-has-video::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(12,17,21,.85) 30%,rgba(12,17,21,.45))}
.tp-has-video>*:not(.tp-band-media){position:relative;z-index:2}
.tp-dark-section .tp-section-header h2{color:#fff}
.tp-dark-section .tp-section-header p{color:rgba(255,255,255,.8)}
#start.tp-dark-section{padding:30px 0 40px}
#works.tp-dark-section{padding:10px 0 30px}
/* dark bands set color:#fff, which white cards INHERIT — pin card text */
.tp-tract h3,.tp-col h4{color:#0c1115}
.tp-dark-section .tp-columns p{color:#555}
@media (prefers-reduced-motion: reduce){.tp-band-media{display:none}}
/* section ornament + work covers */
.tp-ornament{display:block;margin:-4px auto 30px;width:min(360px,70%);height:auto;mix-blend-mode:multiply;opacity:.85}
.tp-work-cover{display:block;width:calc(100% + 48px);margin:-30px -24px 18px;border-radius:8px 8px 0 0;aspect-ratio:1536/640;object-fit:cover;max-width:none}
.workcover{display:block;width:100%;border-radius:10px;margin:0 0 1.6rem}
footer.home-foot{background:#0c1115;color:rgba(255,255,255,.55);padding:40px 30px;font-family:'Muli',system-ui,sans-serif;font-size:14px}
footer.home-foot .inner{max-width:1080px;margin:0 auto}
footer.home-foot a{color:rgba(255,255,255,.85)}
footer.home-foot p{margin:0 0 .6em}

/* ── landing page motion layer ──
   Progressive enhancement, three hard rules:
   1. .fx (hidden-until-scrolled) is applied by JS only — no JS, nothing is ever hidden.
   2. Every animation lives behind prefers-reduced-motion: no-preference.
   3. Hero load-in is gated on html.js and ends at the visible state (forwards). */
.tp-btn,.tp-cta-form button{position:relative;overflow:hidden}
.tp-btn::after,.tp-cta-form button::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;mix-blend-mode:screen;background-size:180px 180px;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.9'%20numOctaves='2'/%3E%3CfeColorMatrix%20type='saturate'%20values='0'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23n)'%20opacity='0.65'/%3E%3C/svg%3E")}
@media (prefers-reduced-motion: no-preference){
.tp-btn:hover::after,.tp-cta-form button:hover::after{opacity:.32;animation:fxStatic .3s steps(3) infinite}
@keyframes fxStatic{0%{background-position:0 0}33%{background-position:-64px 38px}66%{background-position:52px -58px}100%{background-position:-28px -22px}}
html.js .tp-hero h1,html.js .tp-hero p{opacity:0;animation:fxUp .9s cubic-bezier(.2,.7,.2,1) forwards}
html.js .tp-hero h1{animation-delay:.1s}
html.js .tp-hero p:nth-of-type(1){animation-delay:.38s}
html.js .tp-hero p:nth-of-type(2){animation-delay:.58s}
@keyframes fxUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.fx{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--fxd,0s),transform .7s cubic-bezier(.2,.7,.2,1) var(--fxd,0s)}
.fx.fx-in{opacity:1;transform:none}
img.fx{transform:translateY(20px) scale(.94)}
img.fx.fx-in{transform:none}
.fx .tp-tract-num{transform:scale(.4);opacity:0;transition:transform .5s cubic-bezier(.3,1.6,.4,1) calc(var(--fxd,0s) + .25s),opacity .3s linear calc(var(--fxd,0s) + .25s)}
.fx.fx-in .tp-tract-num{transform:none;opacity:1}
}

@media print{body{background:#fff;color:#000;font-size:11pt}header.site,.pager,.raw,footer.site,.banner{display:none}.wrap{max-width:none}a{color:#000;text-decoration:none}}
.tp-hero{position:relative;overflow:hidden;padding:120px 30px 130px;text-shadow:0 1px 14px rgba(0,0,0,.55)}
.tp-hero-inner{position:relative;z-index:2}
.tp-hero::before{content:"";position:absolute;left:0;right:0;top:-16%;bottom:-16%;z-index:0;background:url(/assets/hero-bg.d138645c59.jpg) center 32%/cover no-repeat;opacity:.9;transform:translate3d(0,var(--par,0),0) scale(1.05)}
.tp-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(rgba(12,17,21,.35),rgba(12,17,21,.05) 30%,rgba(12,17,21,.05) 70%,rgba(12,17,21,.45))}
.tp-hero-media{position:absolute;left:0;right:0;top:-16%;bottom:-16%;z-index:0;transform:translate3d(0,var(--par,0),0) scale(1.05)}
.tp-hero-media video{width:100%;height:100%;object-fit:cover;object-position:center 32%;opacity:.9}
@media (prefers-reduced-motion: no-preference){.tp-hero::before,.tp-hero-media{will-change:transform;transition:transform .1s linear}}
@media (prefers-reduced-motion: reduce){.tp-hero-media{display:none}}
/* depth for the flat dark bands: the hero art, heavily darkened, no motion */
.tp-cta,#ai.tp-dark-section{position:relative;overflow:hidden}
.tp-cta::before{content:"";position:absolute;inset:0;background:url(/assets/hero-bg.d138645c59.jpg) center 15%/cover no-repeat;opacity:.16;pointer-events:none}
#ai.tp-dark-section::before{content:"";position:absolute;inset:0;background:url(/assets/hero-bg.d138645c59.jpg) center 85%/cover no-repeat;opacity:.13;pointer-events:none}
.tp-cta-inner,#ai .tp-dark-section-inner{position:relative}
