:root{--paper: #f3ecdc;--paper-deep: #e9dfc8;--ink: #241f19;--ink-soft: #4c443a;--rule: #8d8064;--oxblood: #7a1f1f;--oxblood-dark: #5c1616;--gold: #9c7c2c;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif}*{margin:0;padding:0;box-sizing:border-box}html{background:var(--paper)}body{font-family:var(--serif);color:var(--ink);line-height:1.65;background:radial-gradient(ellipse at 20% 0%,rgba(255,252,240,.7),transparent 60%),radial-gradient(ellipse at 90% 100%,rgba(120,96,40,.08),transparent 55%),var(--paper);min-height:100vh}.wrap{max-width:68rem;margin:0 auto;padding:0 1.25rem}.masthead{text-align:center;padding:2rem 1rem 1.25rem;border-bottom:4px double var(--rule)}.masthead .est-line{font-size:.72rem;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-soft);display:flex;align-items:center;gap:1rem;justify-content:center}.masthead .est-line:before,.masthead .est-line:after{content:"";flex:0 1 8rem;border-top:1px solid var(--rule)}.masthead h1{font-size:clamp(2.2rem,6vw,3.8rem);font-weight:700;letter-spacing:.02em;margin:.35rem 0 .2rem;font-variant:small-caps}.masthead h1 a{color:var(--ink);text-decoration:none}.masthead .tagline{font-style:italic;color:var(--ink-soft);font-size:.95rem}.site-nav{border-bottom:1px solid var(--rule);background:#fffcf066}.site-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem 2rem;justify-content:center;padding:.6rem 1rem}.site-nav a{color:var(--ink);text-decoration:none;font-size:.85rem;letter-spacing:.18em;text-transform:uppercase}.site-nav a:hover{color:var(--oxblood)}.site-nav a.portal-link{color:var(--oxblood);font-weight:700}main{padding:2.5rem 0 3rem}h2.section-title{font-variant:small-caps;font-size:1.6rem;letter-spacing:.04em;border-bottom:1px solid var(--rule);padding-bottom:.4rem;margin-bottom:1.5rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem}h2.section-title .more{font-size:.8rem;font-variant:normal;letter-spacing:.12em;text-transform:uppercase}a{color:var(--oxblood)}.prose h2,.prose h3{font-variant:small-caps;margin:1.6rem 0 .6rem}.prose p{margin:0 0 1rem}.prose blockquote{border-left:3px solid var(--gold);padding-left:1rem;font-style:italic;color:var(--ink-soft);margin:1.2rem 0}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem}.card{border:1px solid var(--rule);background:#fffcf08c;display:flex;flex-direction:column;transition:box-shadow .15s ease}.card:hover{box-shadow:0 4px 14px #241f192e}.card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;border-bottom:1px solid var(--rule)}.card .card-body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.45rem;flex:1}.card .kicker{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}.card h3{font-size:1.2rem;line-height:1.3}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--oxblood)}.card .excerpt{font-size:.92rem;color:var(--ink-soft);flex:1}.card .meta{font-size:.78rem;color:var(--ink-soft);font-style:italic}.btn{display:inline-block;padding:.65rem 1.4rem;border:1px solid var(--oxblood);background:var(--oxblood);color:#f6efe0;text-decoration:none;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;transition:background .15s ease}.btn:hover{background:var(--oxblood-dark)}.btn.ghost{background:transparent;color:var(--oxblood)}.btn.ghost:hover{background:#7a1f1f14}.puzzle{border:1px solid var(--rule);background:#fffcf08c;margin-bottom:1.75rem}.puzzle-header{padding:.9rem 1.2rem;border-bottom:1px solid var(--rule);display:flex;align-items:baseline;gap:.8rem}.puzzle-header .num{font-size:1.5rem;color:var(--gold);font-variant:small-caps}.puzzle-header h3{font-size:1.15rem}.puzzle .hints{padding:.9rem 1.2rem 1.2rem}details.hint{border:1px dashed var(--rule);margin-bottom:.6rem;background:#e9dfc880}details.hint summary{cursor:pointer;padding:.6rem 1rem;font-variant:small-caps;letter-spacing:.06em;color:var(--ink);list-style:none;display:flex;align-items:center;gap:.6rem}details.hint summary::-webkit-details-marker{display:none}details.hint summary:before{content:"✠";color:var(--gold)}details.hint[open] summary{border-bottom:1px dashed var(--rule)}details.hint .hint-body{padding:.8rem 1rem;font-size:.95rem}details.hint.solution{border:1px solid var(--oxblood);background:#7a1f1f0f}details.hint.solution summary{color:var(--oxblood);font-weight:700}details.hint.solution summary:before{content:"☠";color:var(--oxblood)}.spoiler-note{font-style:italic;font-size:.88rem;color:var(--ink-soft);margin-bottom:1.4rem}.case-hero{display:grid;grid-template-columns:minmax(14rem,20rem) 1fr;gap:2rem;margin-bottom:2.5rem;align-items:start}.case-hero img{width:100%;border:1px solid var(--rule);display:block}.case-hero .kicker{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}.case-hero h1{font-variant:small-caps;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15;margin:.3rem 0 .5rem}.case-hero .tagline{font-style:italic;color:var(--ink-soft);margin-bottom:1rem}.case-hero .actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.2rem}@media(max-width:640px){.case-hero{grid-template-columns:1fr}}.article-header{text-align:center;margin-bottom:2rem}.article-header .kicker{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}.article-header h1{font-variant:small-caps;font-size:clamp(1.8rem,4.5vw,2.8rem);line-height:1.15;margin:.4rem 0}.article-header .meta{font-style:italic;color:var(--ink-soft);font-size:.9rem}.article-image{width:100%;max-height:24rem;object-fit:cover;border:1px solid var(--rule);margin-bottom:2rem}.article-body{max-width:44rem;margin:0 auto;font-size:1.05rem}.portal-callout{border:1px solid var(--rule);border-left:4px solid var(--oxblood);background:#fffcf099;padding:1.4rem 1.6rem;margin:2.5rem 0;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;justify-content:space-between}.portal-callout .text h3{font-variant:small-caps;font-size:1.2rem}.portal-callout .text p{font-size:.92rem;color:var(--ink-soft)}footer.site-footer{border-top:4px double var(--rule);padding:2rem 1rem 2.5rem;text-align:center;color:var(--ink-soft);font-size:.85rem}.subscribe{max-width:30rem;margin:0 auto 1.5rem}.subscribe h3{font-variant:small-caps;font-size:1.15rem;color:var(--ink)}.subscribe p{font-style:italic;margin:.3rem 0 .8rem}.subscribe form{display:flex;gap:.5rem}.subscribe input[type=email]{flex:1;padding:.6rem .9rem;border:1px solid var(--rule);background:#fffcf0cc;font-family:var(--serif);font-size:.9rem}.subscribe button{font-family:var(--serif);cursor:pointer}
