/*
Theme Name: Long Watch — Cape Fear Infrastructure
Description: The Long Watch editorial theme for Cape Fear Infrastructure.
Version: 1.1.0
Requires at least: 6.6
Text Domain: long-watch-cape-fear
*/

:root { --ink:#151515; --wine:#711d30; --paper:#f5f1e9; --white:#fff; --muted:#5e5b57; --rule:#d8cec0; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font:18px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; }
a { color:var(--wine); text-underline-offset:3px; }
a:hover { color:#42101c; }
a:focus-visible { outline:3px solid var(--wine); outline-offset:4px; }
img,svg { max-width:100%; }
.skip-link { position:absolute; left:-9999px; top:10px; padding:8px 12px; background:var(--white); z-index:100; }
.skip-link:focus { left:10px; }
.site-header { background:var(--paper); border-top:7px solid var(--wine); border-bottom:1px solid var(--rule); }
.header-inner { max-width:1220px; margin:auto; padding:20px 28px 16px; display:flex; justify-content:space-between; align-items:end; gap:30px; }
.brand { display:flex; align-items:center; gap:15px; color:var(--ink); text-decoration:none; }
.brand-mark { width:42px; height:52px; flex:none; color:var(--wine); }
.brand-parent { display:block; font-size:13px; font-weight:800; letter-spacing:.19em; line-height:1.1; }
.brand-desk { display:block; margin-top:4px; font-family:Georgia,"Times New Roman",serif; font-size:22px; font-weight:700; line-height:1.1; }
.brand-tagline { display:block; margin-top:6px; color:var(--muted); font-size:11px; letter-spacing:.08em; }
.site-nav { display:flex; flex-wrap:wrap; gap:24px; align-items:center; padding-bottom:7px; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.site-nav a { color:var(--ink); text-decoration:none; border-bottom:2px solid transparent; }
.site-nav a:hover,.site-nav a:focus-visible { border-bottom-color:var(--wine); }
.site-main { max-width:1200px; margin:auto; padding:0 28px; }
.story { max-width:1080px; margin:auto; }
.story-header { padding:70px 0 46px; border-bottom:1px solid var(--rule); }
.eyebrow { color:var(--wine); font-size:12px; font-weight:800; letter-spacing:.19em; text-transform:uppercase; }
.story-title { max-width:920px; margin:15px 0 21px; font:700 clamp(42px,6.1vw,82px)/1.04 Georgia,"Times New Roman",serif; letter-spacing:-.045em; text-wrap:balance; }
.story-dek { max-width:740px; margin:0 0 25px; color:#35312f; font:27px/1.35 Georgia,"Times New Roman",serif; }
.story-meta { display:flex; flex-wrap:wrap; gap:9px; color:var(--muted); font-size:13px; font-weight:650; letter-spacing:.05em; text-transform:uppercase; }
.story-meta span+span::before { content:"·"; margin-right:9px; color:var(--wine); }
.story-grid { display:grid; grid-template-columns:minmax(0,700px) 225px; gap:80px; padding:52px 0 100px; }
.story-content { min-width:0; font-size:19px; line-height:1.75; }
.story-content > :first-child { margin-top:0; }
.story-content p { margin:0 0 1.35em; }
.story-content h2 { margin:2.4em 0 .6em; padding-top:.6em; border-top:1px solid var(--rule); font:700 clamp(30px,3.6vw,43px)/1.16 Georgia,"Times New Roman",serif; letter-spacing:-.025em; }
.story-content h3 { margin:2em 0 .55em; color:var(--wine); font:750 16px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; letter-spacing:.11em; text-transform:uppercase; }
.story-content strong { font-weight:750; }
.story-content blockquote { margin:2em 0; padding:19px 25px; border-left:5px solid var(--wine); background:#ebe3d8; font:24px/1.45 Georgia,"Times New Roman",serif; }
.story-content blockquote p:last-child { margin-bottom:0; }
.story-content ul,.story-content ol { padding-left:1.4em; margin:0 0 1.5em; }
.story-content li { margin-bottom:.5em; }
.story-content hr { border:0; border-top:1px solid var(--rule); margin:2.5em 0; }
.story-content table { width:100%; border-collapse:collapse; margin:1.8em 0; font-size:15px; line-height:1.5; }
.story-content th { background:var(--ink); color:var(--white); text-align:left; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.story-content th,.story-content td { padding:12px 15px; border:1px solid var(--rule); vertical-align:top; }
.story-content tbody tr:nth-child(even) { background:#ece6dc; }
.story-content code { overflow-wrap:anywhere; font-size:.82em; }
.story-content a { overflow-wrap:anywhere; }
.story-aside { align-self:start; position:sticky; top:25px; border-top:4px solid var(--wine); padding-top:16px; color:var(--muted); font-size:14px; line-height:1.5; }
.story-aside strong { display:block; color:var(--ink); font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.story-aside p { margin:8px 0 20px; }
.story-aside a { font-weight:700; }
.home-hero { padding:90px 0 80px; border-bottom:1px solid var(--rule); }
.home-hero h1 { max-width:900px; margin:15px 0 20px; font:700 clamp(44px,7vw,85px)/1.02 Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
.home-hero p { max-width:670px; font-size:22px; }
.home-list { padding:55px 0 100px; }
.home-list h2 { font:700 33px Georgia,"Times New Roman",serif; }
.home-item { max-width:750px; border-top:1px solid var(--rule); padding:24px 0; }
.home-item h3 { margin:6px 0; font:700 31px/1.18 Georgia,"Times New Roman",serif; }
.home-item h3 a { color:var(--ink); text-decoration:none; }
.home-item h3 a:hover { color:var(--wine); }
.home-item time,.home-item .label { color:var(--muted); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.site-footer { background:var(--ink); color:var(--white); }
.footer-inner { max-width:1220px; margin:auto; padding:38px 28px; display:flex; justify-content:space-between; gap:25px; font-size:13px; }
.footer-inner strong { letter-spacing:.15em; }
.footer-inner p { margin:6px 0 0; color:#d8d3ce; }
/* Press-mark masthead: ink, wine, and generous white space from the Long Watch reference. */
.site-header { background:#fff; border-top:0; border-bottom:4px solid var(--ink); }
.header-inner { align-items:center; padding-top:24px; padding-bottom:23px; }
.brand-mark { width:58px; height:64px; color:var(--ink); }
.brand-parent { font-size:20px; font-weight:900; letter-spacing:.18em; }
.brand-desk { font-size:19px; }
.brand-tagline { color:var(--wine); font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.story-header { background:linear-gradient(110deg,#faf8f4 0%,#f5f1e9 75%); }
.story-content a { font-weight:700; text-decoration-thickness:2px; }
.story-content ol li { padding:5px 0 10px 5px; border-bottom:1px solid var(--rule); }
.story-content ol li a { display:inline-block; margin-left:4px; white-space:nowrap; }
.hash-disclosure { max-width:100%; }
.hash-disclosure summary { width:max-content; max-width:100%; cursor:pointer; color:var(--wine); font:700 13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace; }
.hash-disclosure summary span { margin-left:8px; font:700 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; text-transform:uppercase; letter-spacing:.06em; }
.hash-disclosure code { display:block; margin-top:9px; overflow-wrap:anywhere; color:var(--ink); }
.hash-disclosure summary:focus-visible { outline:3px solid var(--wine); outline-offset:3px; }
@media (max-width:850px) { .story-grid { grid-template-columns:1fr; gap:20px; } .story-aside { position:static; order:-1; } .header-inner { align-items:start; flex-direction:column; gap:16px; } }
@media (max-width:560px) { body { font-size:16px; } .header-inner,.site-main,.footer-inner { padding-left:19px; padding-right:19px; } .brand-mark { width:42px; height:47px; } .brand-parent { font-size:15px; } .brand-desk { font-size:17px; } .brand-tagline { font-size:9px; letter-spacing:.08em; } .site-nav { gap:18px; font-size:11px; } .story-header { padding:48px 0 30px; } .story-dek { font-size:21px; } .story-grid { padding:29px 0 70px; } .story-content { font-size:17px; } .story-content blockquote { font-size:20px; padding:16px 19px; } .story-content table { display:block; overflow-x:auto; } .footer-inner { flex-direction:column; } }
