:root { --paper:#f7f3ee; --ink:#182021; --muted:#727775; --line:#dcd7d0; --accent:#e98d73; --soft:#f0e2d9; --serif:'DM Serif Display', Georgia, serif; --sans:'DM Sans', sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); }
a { color:inherit; text-decoration:none; }
button, input { font:inherit; }
.site-shell { max-width:1240px; margin:auto; padding:0 64px; opacity:0; transition:opacity .45s ease; }
.site-shell.unlocked { opacity:1; }
.site-header { height:94px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.brand-mark { font-size:20px; font-weight:700; letter-spacing:.11em; }
.brand-mark span { color:var(--accent); }
.main-nav { display:flex; gap:34px; margin-left:70px; color:#4f5654; font-size:13px; font-weight:600; }
.main-nav a { transition:color .2s; }.main-nav a:hover,.main-nav a.active { color:var(--accent); }
.header-actions { display:flex; gap:10px; }.icon-button { border:0; background:transparent; color:var(--ink); cursor:pointer; font-size:17px; padding:8px; }.menu-button { display:none; }
.hero { max-width:710px; padding:108px 0 117px; }.eyebrow { color:var(--accent); font-size:11px; font-weight:700; letter-spacing:.16em; margin:0 0 19px; text-transform:uppercase; }.hero h1 { font:normal 68px/1.04 var(--serif); letter-spacing:-.035em; margin:0 0 27px; }.hero h1 em { color:#283332; font-style:italic; }.hero-copy { color:var(--muted); font-size:16px; line-height:1.7; max-width:490px; margin:0 0 28px; }.text-link { border-bottom:1px solid var(--ink); display:inline-flex; gap:10px; padding-bottom:5px; font-size:13px; font-weight:700; }
.section-heading { align-items:end; display:flex; justify-content:space-between; margin-bottom:38px; }.section-heading h2 { font:normal 43px var(--serif); letter-spacing:-.02em; margin:0; }.outline-button { border:1px solid var(--ink); border-radius:50px; font-size:12px; font-weight:700; padding:12px 18px; }.outline-button i { margin-left:8px; }
.posts-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:70px 42px; }.post-card { min-width:0; }.post-image { aspect-ratio:1.55; background:#ddd; border-radius:2px; display:block; margin-bottom:20px; overflow:hidden; }.post-image img { height:100%; object-fit:cover; transition:transform .5s; width:100%;}.post-card:hover img { transform:scale(1.035); }.post-meta { color:var(--muted); font-size:11px; margin-bottom:14px; }.post-meta i { color:var(--ink); margin-right:4px; }.post-title { font:normal 25px/1.15 var(--serif); margin:0 0 10px; max-width:460px; }.post-excerpt { color:var(--muted); font-size:13px; line-height:1.6; margin:0 0 17px; max-width:480px; }.post-footer { align-items:center; display:flex; gap:10px; font-size:11px; font-weight:600; }.author-dot { align-items:center; background:#c9bdb2; border-radius:50%; display:inline-flex; font-size:9px; height:23px; justify-content:center; width:23px; }.tags { display:flex; gap:5px; margin-left:4px; }.tag { background:var(--soft); border-radius:2px; color:#806b62; font-size:10px; font-weight:500; padding:5px 8px; }
.topics-section { border-bottom:1px solid var(--line); border-top:1px solid var(--line); margin-top:116px; padding:48px 0 56px; }.topics-list { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }.topics-list a { border-bottom:1px solid var(--ink); font:normal 25px var(--serif); padding:8px 0 14px; }.topics-list span { color:var(--accent); float:right; font:600 11px var(--sans); }
footer { align-items:center; display:flex; justify-content:space-between; padding:35px 0 44px; } footer p, footer a { color:var(--muted); font-size:12px; } footer a { color:var(--ink); font-weight:600; }
.next-entry-rail { align-items:center; background:var(--ink); border-radius:5px 0 0 5px; bottom:50%; color:var(--paper); display:flex; gap:15px; opacity:0; padding:10px 12px 10px 16px; pointer-events:none; position:fixed; right:0; transform:translateX(100%); transition:opacity .25s, transform .3s; z-index:4; }.next-entry-rail.visible { opacity:1; pointer-events:auto; transform:translateX(0); }.next-entry-label { font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; writing-mode:vertical-rl; transform:rotate(180deg); }.next-entry-arrow { align-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; display:flex; font-size:16px; height:32px; justify-content:center; width:32px; }.next-entry-rail:hover { background:var(--accent); color:#fff; }.next-entry-rail:hover .next-entry-arrow { border-color:#fff; }
.article-shell { opacity:1; }.back-link { color:var(--muted); font-size:12px; font-weight:600; }.back-link i { margin-right:7px; }.article-hero { align-items:end; display:grid; gap:70px; grid-template-columns:1fr 1fr; padding:88px 0 76px; }.article-hero h1 { font:normal 64px/1.04 var(--serif); letter-spacing:-.03em; margin:0 0 24px; max-width:600px; }.article-intro { color:var(--muted); font-size:17px; line-height:1.6; margin:0; max-width:480px; }.article-hero img { aspect-ratio:1.35;object-fit:cover; width:100%; }.article-body { display:grid; gap:90px; grid-template-columns:minmax(0, 1fr) 280px; margin:0 auto; max-width:930px; padding-bottom:60px; }.article-body p { font:normal 20px/1.75 var(--serif); margin:0 0 25px; }.article-body aside { border-left:1px solid var(--line); padding-left:28px; }.article-body aside ul { color:var(--muted); font-size:11px; line-height:1.6; list-style:none; margin:0; padding:0; }.article-body aside li { border-bottom:1px solid var(--line); padding:0 0 13px; margin:0 0 13px; }
.lightbox-trigger { cursor:zoom-in; }.article-hero .lightbox-trigger { transition:opacity .2s; }.article-hero .lightbox-trigger:hover { opacity:.8; }.article-gallery { border-top:1px solid var(--line); margin-top:48px; padding-top:28px; }.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }.gallery-item { background:transparent; border:0; cursor:zoom-in; overflow:hidden; padding:0; }.gallery-item img { aspect-ratio:1.25; display:block; object-fit:cover; transition:filter .25s, transform .35s; width:100%; }.gallery-item:hover img {transform:scale(1.04); }.lightbox { align-items:center; background:rgba(10,16,16,.94); display:flex; inset:0; justify-content:center; opacity:0; pointer-events:none; position:fixed; transition:opacity .25s; z-index:20; }.lightbox.open { opacity:1; pointer-events:auto; }.lightbox img { max-height:88vh; max-width:min(88vw,1200px); object-fit:contain; }.lightbox-close,.lightbox-arrow { align-items:center; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); border-radius:50%; color:white; cursor:pointer; display:flex; height:44px; justify-content:center; position:absolute; width:44px; z-index:1; }.lightbox-close { right:30px; top:30px; }.lightbox-prev { left:30px; }.lightbox-next { right:30px; }body.lightbox-open { overflow:hidden; }
.password-screen { align-items:center; background:var(--paper); display:flex; inset:0; justify-content:center; padding:24px; position:fixed; transition:opacity .35s, visibility .35s; z-index:10; }.password-screen.hidden { opacity:0; visibility:hidden; }.password-card { max-width:440px; text-align:center; width:100%; }.password-card .brand-mark { display:block; margin-bottom:72px; }.password-card h1 { font:normal 45px var(--serif); letter-spacing:-.025em; margin:0 0 12px; }.access-copy { color:var(--muted); font-size:14px; line-height:1.65; margin:0 auto 30px; max-width:340px; }.password-form { margin:auto; max-width:310px; text-align:left; }.password-form label { display:block; font-size:11px; font-weight:700; margin-bottom:8px; }.input-wrap { align-items:center; border-bottom:1px solid var(--ink); display:flex; gap:10px; padding:8px 0; }.input-wrap i { color:var(--muted); }.input-wrap input { background:transparent; border:0; flex:1; min-width:0; outline:0; }.toggle-password { background:none; border:0; color:var(--muted); cursor:pointer; }.primary-button { background:var(--ink); border:0; border-radius:50px; color:white; cursor:pointer; display:flex; font-size:12px; font-weight:700; justify-content:center; margin-top:25px; padding:14px; width:100%; }.primary-button i { margin-left:10px; }.password-error { color:#ba594b; display:none; font-size:11px; margin:9px 0 -9px; }.password-error.show { display:block; }.hint { color:#9a9690; display:block; font-size:10px; margin-top:30px; }
.search-panel { background:var(--ink); color:white; display:none; inset:0; padding:12vh max(64px, calc((100vw - 1112px)/2)); position:fixed; z-index:5; }.search-panel.open { display:block; }.close-search { background:none; border:0; color:white; cursor:pointer; float:right; font-size:20px; }.search-panel .eyebrow { margin-top:70px; }.search-panel input { background:transparent; border:0; border-bottom:1px solid #74807d; color:white; font:normal 52px var(--serif); outline:0; padding:15px 0; width:100%; }
body.dark { --paper:#182021; --ink:#f5f0ea; --muted:#aeb2ad; --line:#394241; --soft:#2e3837; } body.dark .hero h1 em { color:#dcd5cd; } body.dark .password-screen { background:var(--paper); }
@media (max-width:800px) { .site-shell { padding:0 24px; }.main-nav { background:var(--paper); border-bottom:1px solid var(--line); display:none; flex-direction:column; gap:0; left:0; margin:0; padding:15px 24px; position:absolute; right:0; top:79px; z-index:2; }.main-nav.open { display:flex; }.main-nav a { padding:12px 0; }.menu-button { display:block; }.site-header { height:79px; }.hero { padding:76px 0 85px; }.hero h1 { font-size:49px; }.hero-copy { font-size:14px; }.posts-grid { gap:50px 20px; }.post-title { font-size:22px; }.topics-list { grid-template-columns:repeat(2,1fr); gap:25px 20px; }.topics-section { margin-top:80px; } footer { align-items:flex-start; flex-direction:column; gap:15px; } }
@media (max-width:800px) { .article-hero { gap:35px; grid-template-columns:1fr; padding:60px 0; }.article-hero h1 { font-size:48px; }.article-body { display:block; }.article-body aside { border-left:0; border-top:1px solid var(--line); margin-top:45px; padding:28px 0 0; }.article-body p { font-size:18px; } }
@media (max-width:600px) { .gallery-grid { grid-template-columns:repeat(2,1fr); }.lightbox-close { right:16px; top:16px; }.lightbox-prev { left:12px; }.lightbox-next { right:12px; }.lightbox-arrow { height:38px; width:38px; }.lightbox img { max-width:76vw; } }
@media (max-width:520px) { .section-heading { align-items:flex-start; flex-direction:column; gap:22px; }.section-heading h2 { font-size:36px; }.posts-grid { grid-template-columns:1fr; }.post-image { aspect-ratio:1.6; }.password-card .brand-mark { margin-bottom:50px; }.password-card h1 { font-size:38px; } }
 .article-copy h2 { font:normal 32px/1.15 var(--serif); letter-spacing:-.02em; margin:48px 0 20px; }
 .article-copy ul, .article-copy ol { font:normal 18px/1.65 var(--serif); margin:0 0 28px; padding-left:28px; }
 .article-copy li { margin-bottom:14px; }
 .article-copy .indicator-formula { background:var(--soft); font-size:16px; line-height:1.5; margin:14px 0; padding:12px 15px; }
 .investment-table { border-collapse:collapse; font-size:13px; margin:20px 0 34px; width:100%; }
 .investment-table th, .investment-table td { border:1px solid var(--line); padding:12px; text-align:left; vertical-align:top; }
 .investment-table th { background:var(--soft); font-weight:700; }
 @media (max-width:800px) { .article-copy h2 { font-size:28px; }.article-copy ul, .article-copy ol { font-size:17px; }.investment-table { display:block; overflow-x:auto; white-space:normal; } }
