/* Paper grain is rendered as a small vector texture; no additional raster download. */
[hidden]{display:none!important}
body{background-image:url('/assets/paper-grain.svg')}.quiet,.closing,.header{background-image:url('/assets/paper-grain.svg')}.process,.footer,.page-hero{background-image:url('/assets/dark-grain.svg')}.header{position:relative;z-index:12}.opening{position:fixed;inset:0;background:#102b27;z-index:1000;display:flex;align-items:center;justify-content:center;color:#c4aa75;pointer-events:none;animation:opening-exit .7s 1.25s forwards}.opening-brand{text-align:center;animation:opening-enter 1s both}.opening-brand b{display:block;font:clamp(35px,6vw,72px) var(--serif);letter-spacing:.12em}.opening-brand span{display:block;letter-spacing:.5em;font-size:10px;margin:18px 0 35px}.opening-brand i{display:block;height:1px;background:var(--gold);animation:line-enter 1.15s ease both}.skip-opening{position:absolute;bottom:35px;border:0;background:none;color:#c4aa75;font-size:12px;pointer-events:auto}.opening.dismissed{display:none}@keyframes opening-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes line-enter{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes opening-exit{to{opacity:0;visibility:hidden}}.hero-slides{position:absolute;inset:0}.hero-photo{opacity:0;transition:opacity 1.6s ease,transform 7s linear;transform:scale(1.035)}.hero-photo.active{opacity:1;transform:scale(1)}.hero .wrap{z-index:2}.slide-controls{display:flex;gap:12px;align-items:center;margin-top:32px}.slide-dot{width:28px;height:28px;background:none;border:0;padding:0;cursor:pointer;position:relative}.slide-dot:after{content:'';position:absolute;inset:11px 0;background:#ffffff50;height:2px;transition:background .4s}.slide-dot.active:after{background:var(--gold)}.slide-pause{border:1px solid #ffffff45;background:none;color:white;padding:6px 12px;font-size:10px;cursor:pointer}.slide-counter{margin-left:8px;color:#d2dccd;font-size:10px;letter-spacing:.2em}.hero-bottom{margin-top:26px}.motion-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}.motion-ready .reveal.is-visible{opacity:1;transform:none}.btn,.service-row,.article-card,.photo-frame img{transition:transform .4s,background .4s,box-shadow .4s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 25px #102b2718}.link svg{transition:transform .3s}.link:hover svg{transform:translateX(5px)}.article-card:hover{transform:translateY(-4px)}.photo-frame:not(.founder):hover img{transform:scale(1.025)}.blog-filter{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:40px}.blog-filter a{border:1px solid #cbd2c4;padding:8px 16px;font-size:12px}.blog-filter a.active{background:var(--green);color:white}.blog-search{display:flex;gap:10px;margin-bottom:28px}.blog-search input{min-width:0;flex:1;max-width:480px;padding:14px;background:transparent;border:1px solid #bbc5b9}.article-cover{width:100%;aspect-ratio:1.65;object-fit:cover;margin-bottom:25px}.article-date{font-size:11px;color:var(--muted);margin-top:20px}.article-layout{display:grid;grid-template-columns:minmax(0,760px) 230px;gap:65px}.article-layout .prose{padding:0}.article-aside{position:sticky;top:30px;align-self:start;font-size:12px}.article-aside a{display:block;margin:13px 0}.article-sources{border-top:1px solid var(--line);margin-top:35px;padding-top:25px}.article-sources a{text-decoration:underline}.article-summary{padding:25px;border-left:2px solid var(--gold);background:#edf0e8;margin-bottom:30px}.blog-empty{padding:45px 0}.pagination{display:flex;gap:20px;margin-top:40px}.article-content a{text-decoration:underline}.article-content blockquote{border-left:2px solid var(--gold);padding-left:20px}.article-content ul{padding-left:23px}.article-content h2{scroll-margin-top:30px}
@media(max-width:800px){.article-layout{grid-template-columns:1fr;gap:35px}.article-aside{position:static;border-top:1px solid var(--line);padding-top:25px}.hero{min-height:780px}.hero .wrap{padding-top:235px}.slide-controls{margin-top:23px}.opening-brand b{font-size:40px}}
@media(prefers-reduced-motion:reduce){.opening{display:none}.hero-photo{transition:none;transform:none}.motion-ready .reveal{opacity:1;transform:none;transition:none}*{animation:none!important;transition:none!important}}
