/*
 * MorhafSH — Technical Field Notes
 * Editorial, utilitarian, fast, and intentionally distinct.
 */
:root {
	--msh-ink: #ffffff;
	--msh-ink-soft: #8899a6;
	--msh-paper: #15202b;
	--msh-paper-deep: #22303c;
	--msh-white: #192734;
	--msh-rule: #38444d;
	--msh-accent: #1da1f2;
	--msh-teal: #1da1f2;
	--msh-signal: #71c9f8;
	--msh-shadow: 0 18px 50px rgba(0,0,0,.28);
	--msh-radius: 3px;
	--msh-container: 1180px;
}

/* Twitter dark palette — color overrides only. */
.site-header,
.msh-site-header { background: rgba(21,32,43,.96); }
.msh-hero {
	background:
		linear-gradient(90deg, rgba(56,68,77,.32) 1px, transparent 1px) 0 0 / 56px 56px,
		linear-gradient(rgba(56,68,77,.32) 1px, transparent 1px) 0 0 / 56px 56px;
}
.msh-hero:after { box-shadow: 0 0 0 38px rgba(29,161,242,.08), 0 0 0 76px rgba(29,161,242,.04); }
.msh-button { background: var(--msh-accent); border-color: var(--msh-accent); color: #ffffff; }
.msh-button:hover { background: #198fd8; border-color: #198fd8; box-shadow: 7px 7px 0 var(--msh-paper-deep); }
.msh-button--ghost { background: transparent; border-color: var(--msh-rule); color: var(--msh-ink); }
.msh-section--ink,
.site-footer,
.msh-site-footer { background: #101923; color: var(--msh-ink); }
.msh-topic:hover,
.msh-tool-index a:hover { background: var(--msh-paper-deep); }
.msh-tool:hover { background: var(--msh-paper-deep); }
.msh-tool small,
.msh-site-footer__nav strong { color: var(--msh-signal); }
.msh-tool span,
.msh-site-footer,
.msh-site-footer__nav a { color: var(--msh-ink-soft); }
.msh-site-footer h2,
.msh-site-footer a,
.msh-tool { color: var(--msh-ink); }
.msh-card { box-shadow: 0 0 0 rgba(0,0,0,0); }
.msh-card__media img { filter: saturate(.82) contrast(1.04); }
.msh-card__placeholder { color: var(--msh-ink); }
.msh-search-form input[type=search] { color: var(--msh-ink); }
.msh-search-form input[type=search]::placeholder { color: var(--msh-ink-soft); }
.msh-prose pre { background: #101923; color: var(--msh-ink); }
.msh-prose th,
.msh-pagination .current { background: var(--msh-paper-deep); color: var(--msh-ink); }
.msh-prose img { box-shadow: 0 10px 35px rgba(0,0,0,.25); }
html { scroll-behavior: smooth; }
body {
	background: var(--msh-paper);
	color: var(--msh-ink);
	font-family: "Manrope", sans-serif;
	font-size: 17px;
	line-height: 1.72;
}
body:before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 9999;
	opacity: .16;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");
}
a { color: var(--msh-teal); text-underline-offset: 3px; }
a:hover { color: var(--msh-accent); }
.site-container, .site-header-row-layout-contained { max-width: var(--msh-container); }
.site-header {
	background: rgba(245,241,232,.96);
	border-bottom: 1px solid var(--msh-rule);
	backdrop-filter: blur(12px);
}
.site-branding a.brand { gap: 12px; }
.site-title, .site-title a {
	color: var(--msh-ink) !important;
	font-size: 22px !important;
	font-weight: 800 !important;
	letter-spacing: -.04em;
}
.site-description {
	color: var(--msh-ink-soft) !important;
	font-family: "IBM Plex Mono", monospace;
	font-size: 10px !important;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.header-navigation .header-menu-container > ul > li > a {
	color: var(--msh-ink);
	font-family: "IBM Plex Mono", monospace;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.header-navigation .header-menu-container > ul > li > a:hover { color: var(--msh-accent); }
.site-main-header-wrap .site-header-row-container-inner { border: 0; }
#inner-wrap { background: transparent; }
.content-area { margin: 0; }
.msh-shell { width: min(calc(100% - 40px), var(--msh-container)); margin-inline: auto; }
.msh-mono, .msh-eyebrow, .msh-kicker, .msh-breadcrumbs {
	font-family: "IBM Plex Mono", monospace;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.msh-eyebrow { color: var(--msh-teal); }
.msh-eyebrow span { color: var(--msh-accent); margin: 0 5px; }
.msh-hero {
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--msh-rule);
	padding: clamp(72px, 10vw, 138px) 0 clamp(70px, 9vw, 118px);
	background:
		linear-gradient(90deg, rgba(16,33,31,.055) 1px, transparent 1px) 0 0 / 56px 56px,
		linear-gradient(rgba(16,33,31,.055) 1px, transparent 1px) 0 0 / 56px 56px;
}
.msh-hero:after {
	content:"";
	position:absolute;
	width:420px;
	height:420px;
	border:1px solid var(--msh-accent);
	border-radius:50%;
	right:-170px;
	top:-190px;
	box-shadow: 0 0 0 38px rgba(217,74,43,.05), 0 0 0 76px rgba(217,74,43,.03);
}
.msh-hero__grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(260px,.45fr); gap:70px; align-items:end; }
.msh-kicker { color:var(--msh-accent); margin:0 0 20px; }
.msh-display {
	max-width: 900px;
	margin: 0;
	color: var(--msh-ink);
	font-size: clamp(48px, 7vw, 94px);
	font-weight: 800;
	letter-spacing: -.065em;
	line-height: .96;
}
.msh-display em { color:var(--msh-teal); font-style:normal; }
.msh-lede { max-width:650px; margin:28px 0 0; color:var(--msh-ink-soft); font-size:clamp(18px,2vw,22px); line-height:1.55; }
.msh-hero__note { position:relative; z-index:1; padding:24px 0 0 24px; border-left:2px solid var(--msh-accent); }
.msh-hero__note strong { display:block; margin-bottom:9px; font-size:15px; }
.msh-hero__note p { margin:0; color:var(--msh-ink-soft); font-size:14px; }
.msh-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.msh-button {
	display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 22px;
	border:1px solid var(--msh-ink); border-radius:2px; background:var(--msh-ink); color:var(--msh-white);
	font-family:"IBM Plex Mono",monospace; font-size:12px; font-weight:600; letter-spacing:.04em; text-decoration:none; text-transform:uppercase;
	transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.msh-button:hover { transform:translateY(-2px); box-shadow:7px 7px 0 var(--msh-signal); background:var(--msh-accent); color:#fff; border-color:var(--msh-accent); }
.msh-button--ghost { background:transparent; color:var(--msh-ink); }
.msh-section { padding:clamp(64px,8vw,108px) 0; }
.msh-section--ink { background:var(--msh-ink); color:var(--msh-white); }
.msh-section--tight { padding:46px 0; }
.msh-section-head { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:42px; padding-bottom:20px; border-bottom:1px solid var(--msh-rule); }
.msh-section--ink .msh-section-head { border-color:rgba(255,255,255,.22); }
.msh-section-head h2 { margin:0; color:inherit; font-size:clamp(34px,5vw,58px); line-height:1; letter-spacing:-.055em; }
.msh-section-head p { max-width:540px; justify-self:end; margin:0; color:inherit; opacity:.72; }
.msh-topics { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--msh-rule); background:var(--msh-rule); gap:1px; }
.msh-topic { position:relative; min-height:270px; padding:28px; overflow:hidden; background:var(--msh-white); color:var(--msh-ink); text-decoration:none; }
.msh-topic:before { content:attr(data-index); display:block; margin-bottom:70px; color:var(--msh-accent); font-family:"IBM Plex Mono",monospace; font-size:12px; }
.msh-topic:after { content:"→"; position:absolute; right:24px; bottom:20px; font-size:26px; transition:transform .2s ease; }
.msh-topic:hover { color:var(--msh-ink); background:var(--msh-signal); }
.msh-topic:hover:after { transform:translateX(5px); }
.msh-topic h3 { margin:0 0 10px; color:inherit; font-size:24px; line-height:1.1; letter-spacing:-.035em; }
.msh-topic p { margin:0; color:var(--msh-ink-soft); font-size:14px; }
.msh-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; }
.msh-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.msh-card { display:flex; flex-direction:column; min-width:0; border:1px solid var(--msh-rule); background:var(--msh-white); box-shadow:0 0 0 rgba(16,33,31,0); transition:transform .2s ease, box-shadow .2s ease; }
.msh-card:hover { transform:translateY(-4px); box-shadow:var(--msh-shadow); }
.msh-card__media { display:block; aspect-ratio:16/10; overflow:hidden; background:var(--msh-ink); }
.msh-card__media img { width:100%; height:100%; object-fit:cover; filter:saturate(.7) contrast(1.03); transition:transform .35s ease, filter .35s ease; }
.msh-card:hover .msh-card__media img { transform:scale(1.025); filter:saturate(1); }
.msh-card__placeholder { display:grid; place-items:center; width:100%; height:100%; color:var(--msh-paper); background:linear-gradient(135deg,var(--msh-ink),var(--msh-teal)); }
.msh-card__placeholder span { font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.18em; }
.msh-card__body { display:flex; flex:1; flex-direction:column; padding:25px; }
.msh-card__title { margin:12px 0 12px; font-size:22px; line-height:1.22; letter-spacing:-.035em; }
.msh-card__title a { color:var(--msh-ink); text-decoration:none; }
.msh-card__body p { margin:0 0 20px; color:var(--msh-ink-soft); font-size:14px; line-height:1.65; }
.msh-text-link { margin-top:auto; color:var(--msh-accent); font-family:"IBM Plex Mono",monospace; font-size:11px; font-weight:600; letter-spacing:.04em; text-decoration:none; text-transform:uppercase; }
.msh-text-link span { display:inline-block; transition:transform .18s ease; }
.msh-text-link:hover span { transform:translateX(4px); }
.msh-card--featured { grid-column:span 2; display:grid; grid-template-columns:1.15fr .85fr; }
.msh-card--featured .msh-card__media { height:100%; aspect-ratio:auto; }
.msh-card--featured .msh-card__body { justify-content:center; padding:42px; }
.msh-card--featured .msh-card__title { font-size:clamp(27px,3vw,40px); }
.msh-tools { display:grid; grid-template-columns:1fr 1fr; border:1px solid rgba(255,255,255,.25); }
.msh-tool { position:relative; padding:34px; border-bottom:1px solid rgba(255,255,255,.18); color:#fff; text-decoration:none; }
.msh-tool:nth-child(odd) { border-right:1px solid rgba(255,255,255,.18); }
.msh-tool:nth-last-child(-n+2) { border-bottom:0; }
.msh-tool small { display:block; margin-bottom:35px; color:var(--msh-signal); font-family:"IBM Plex Mono",monospace; text-transform:uppercase; }
.msh-tool strong { display:block; font-size:24px; letter-spacing:-.03em; }
.msh-tool span { color:rgba(255,255,255,.65); font-size:14px; }
.msh-tool:hover { background:var(--msh-teal); color:#fff; }
.msh-archive-hero, .msh-page-hero { padding:70px 0 50px; border-bottom:1px solid var(--msh-rule); }
.msh-archive-hero h1, .msh-page-hero h1 { max-width:900px; margin:12px 0 16px; font-size:clamp(44px,7vw,78px); line-height:1; letter-spacing:-.06em; }
.msh-archive-hero p, .msh-page-hero p { max-width:680px; color:var(--msh-ink-soft); }
.msh-search-form { display:flex; max-width:680px; margin-top:28px; }
.msh-search-form input[type=search] { flex:1; min-width:0; height:52px; border:1px solid var(--msh-ink); border-radius:0; background:var(--msh-white); padding:0 18px; }
.msh-search-form button { width:120px; border:0; background:var(--msh-accent); color:#fff; font-family:"IBM Plex Mono",monospace; font-weight:600; text-transform:uppercase; }
.msh-pagination { margin-top:44px; padding-top:25px; border-top:1px solid var(--msh-rule); }
.msh-pagination .nav-links { display:flex; flex-wrap:wrap; gap:8px; }
.msh-pagination .page-numbers { min-width:40px; padding:8px 12px; border:1px solid var(--msh-rule); background:var(--msh-white); text-align:center; text-decoration:none; }
.msh-pagination .current { background:var(--msh-ink); color:#fff; }
.msh-article { padding:clamp(54px,7vw,90px) 0; }
.msh-article__header { width:min(100%,940px); margin:0 auto 42px; }
.msh-breadcrumbs { margin-bottom:22px; color:var(--msh-ink-soft); }
.msh-breadcrumbs a { color:inherit; text-decoration:none; }
.msh-article__header h1 { margin:10px 0 20px; font-size:clamp(42px,6.2vw,74px); line-height:1.02; letter-spacing:-.058em; }
.msh-article__dek { max-width:760px; color:var(--msh-ink-soft); font-size:20px; }
.msh-article__meta { display:flex; flex-wrap:wrap; gap:18px; margin-top:25px; padding-top:16px; border-top:1px solid var(--msh-rule); color:var(--msh-ink-soft); font-family:"IBM Plex Mono",monospace; font-size:11px; text-transform:uppercase; }
.msh-article__image { width:min(100%,1080px); margin:0 auto 50px; }
.msh-article__image img { width:100%; max-height:650px; object-fit:cover; box-shadow:var(--msh-shadow); }
.msh-prose { width:min(100%,780px); margin-inline:auto; color:var(--msh-ink); }
.msh-prose > * { max-width:100%; }
.msh-prose h2 { margin:2.2em 0 .65em; font-size:clamp(30px,4vw,42px); line-height:1.15; letter-spacing:-.045em; }
.msh-prose h3 { margin:1.8em 0 .55em; font-size:25px; line-height:1.25; letter-spacing:-.035em; }
.msh-prose p, .msh-prose li { font-size:17px; line-height:1.78; }
.msh-prose img { border:1px solid var(--msh-rule); box-shadow:0 10px 35px rgba(16,33,31,.10); }
.msh-prose pre, .msh-prose code { font-family:"IBM Plex Mono",monospace; }
.msh-prose pre { overflow:auto; padding:22px; background:var(--msh-ink); color:#f5f1e8; border-left:4px solid var(--msh-signal); }
.msh-prose :not(pre)>code { padding:.16em .38em; background:var(--msh-paper-deep); color:var(--msh-accent); font-size:.9em; }
.msh-prose blockquote { margin:2em 0; padding:10px 0 10px 24px; border-left:4px solid var(--msh-accent); color:var(--msh-ink-soft); font-size:20px; }
.msh-prose .wp-block-table { width:100%; overflow-x:auto; }
.msh-prose table { display:table; width:100%; border-collapse:collapse; font-size:15px; }
.msh-prose th { background:var(--msh-ink); color:#fff; }
.msh-prose th, .msh-prose td { padding:12px 14px; border:1px solid var(--msh-rule); text-align:left; }
.msh-prose .lwptoc { margin:32px 0; padding:24px; border:1px solid var(--msh-rule); background:var(--msh-white); }
.msh-article__footer { width:min(100%,780px); margin:50px auto 0; padding-top:24px; border-top:1px solid var(--msh-rule); }
.msh-page { padding:60px 0 90px; }
.msh-page__content { width:min(100%,820px); margin:auto; }
.msh-empty { padding:60px 0; text-align:left; }
.msh-empty h2 { font-size:clamp(32px,5vw,52px); letter-spacing:-.05em; }
.msh-404 { min-height:65vh; display:grid; align-items:center; padding:80px 0; }
.msh-404__code { color:var(--msh-accent); font-family:"IBM Plex Mono",monospace; font-size:clamp(90px,20vw,230px); font-weight:600; line-height:.7; opacity:.18; }
.msh-404 h1 { max-width:750px; margin:-20px 0 20px; font-size:clamp(45px,7vw,80px); letter-spacing:-.06em; }
.site-footer { border-top:1px solid var(--msh-rule); background:var(--msh-ink); color:rgba(255,255,255,.72); }
.site-footer a { color:#fff; }
.site-footer .site-footer-section { font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.03em; }
@media (prefers-reduced-motion: no-preference) {
	.msh-hero__grid > *, .msh-section-head { animation:msh-rise .65s both; }
	.msh-hero__grid > :nth-child(2) { animation-delay:.14s; }
	@keyframes msh-rise { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
}
@media (max-width: 900px) {
	.msh-hero__grid, .msh-section-head { grid-template-columns:1fr; gap:30px; }
	.msh-hero__note { max-width:520px; }
	.msh-topics { grid-template-columns:1fr 1fr; }
	.msh-grid { grid-template-columns:1fr 1fr; }
	.msh-card--featured { grid-column:span 2; }
}
@media (max-width: 620px) {
	body { font-size:16px; }
	.msh-shell { width:min(calc(100% - 28px), var(--msh-container)); }
	.msh-hero { padding:64px 0 72px; }
	.msh-display { font-size:47px; }
	.msh-hero__grid { gap:34px; }
	.msh-hero:after { width:280px; height:280px; }
	.msh-topics, .msh-grid, .msh-grid--2, .msh-tools { grid-template-columns:1fr; }
	.msh-topic { min-height:220px; }
	.msh-topic:before { margin-bottom:45px; }
	.msh-card--featured { grid-column:auto; display:flex; }
	.msh-card--featured .msh-card__media { aspect-ratio:16/10; }
	.msh-card--featured .msh-card__body { padding:25px; }
	.msh-tool, .msh-tool:nth-child(odd) { border-right:0; border-bottom:1px solid rgba(255,255,255,.18); }
	.msh-tool:last-child { border-bottom:0; }
	.msh-article__header h1 { font-size:42px; }
	.msh-section { padding:62px 0; }
	.msh-search-form button { width:96px; }
}

/*
 * Twitter dark palette — final cascade authority.
 * Keep essential information visible without hover for mouse, keyboard, and touch users.
 */
.site-header,
.msh-site-header {
	background: rgba(21,32,43,.96);
}
.msh-hero {
	background:
		linear-gradient(90deg, rgba(56,68,77,.32) 1px, transparent 1px) 0 0 / 56px 56px,
		linear-gradient(rgba(56,68,77,.32) 1px, transparent 1px) 0 0 / 56px 56px;
}
.msh-hero:after {
	box-shadow: 0 0 0 38px rgba(29,161,242,.08), 0 0 0 76px rgba(29,161,242,.04);
}
.msh-button {
	background: var(--msh-accent);
	border-color: var(--msh-accent);
	color: #fff;
}
.msh-button:hover,
.msh-button:focus-visible {
	background: #198fd8;
	border-color: #198fd8;
	color: #fff;
	box-shadow: 7px 7px 0 var(--msh-paper-deep);
}
.msh-button--ghost {
	background: transparent;
	border-color: var(--msh-rule);
	color: var(--msh-ink);
}
.msh-section--ink,
.site-footer,
.msh-site-footer {
	background: #101923;
	color: var(--msh-ink);
}
.msh-tools {
	background: var(--msh-rule);
	border-color: var(--msh-rule);
	gap: 1px;
}
.msh-tool {
	background: var(--msh-white);
	color: var(--msh-ink);
}
.msh-tool small {
	color: var(--msh-signal);
}
.msh-tool span {
	color: var(--msh-ink-soft);
}
.msh-tool:hover,
.msh-tool:focus-visible {
	background: var(--msh-accent);
	color: #fff;
	outline: none;
}
.msh-tool:hover small,
.msh-tool:hover span,
.msh-tool:focus-visible small,
.msh-tool:focus-visible span {
	color: #fff;
}
.msh-topic:hover,
.msh-topic:focus-visible,
.msh-tool-index a:hover,
.msh-tool-index a:focus-visible {
	background: var(--msh-paper-deep);
	color: var(--msh-ink);
}
.msh-topic:focus-visible,
.msh-tool-index a:focus-visible,
.msh-card a:focus-visible,
.msh-site-footer a:focus-visible {
	outline: 3px solid var(--msh-signal);
	outline-offset: 3px;
}
.msh-card__placeholder {
	background: linear-gradient(135deg,#101923,var(--msh-accent));
	color: #fff;
}
.msh-search-form input[type=search] {
	background: var(--msh-white);
	color: var(--msh-ink);
}
.msh-search-form input[type=search]::placeholder {
	color: var(--msh-ink-soft);
}
.msh-prose pre {
	background: #101923;
	color: var(--msh-ink);
}
.msh-prose th,
.msh-pagination .current {
	background: var(--msh-paper-deep);
	color: var(--msh-ink);
}
.msh-prose .lwptoc,
.msh-pagination .page-numbers {
	background: var(--msh-white);
	color: var(--msh-ink);
}
.msh-prose [style*="background-color:#f6f9ff"] {
	color: #17202a;
}
.msh-prose [style*="background-color:#f6f9ff"] a {
	color: #0b6aa8;
}
.site-footer,
.msh-site-footer {
	color: var(--msh-ink-soft);
}
.site-footer a,
.msh-site-footer a {
	color: var(--msh-ink);
}

/* Calculator page alignment */
.page-id-277 .msh-page,
.page-id-340 .msh-page {
	padding-top: 24px;
}
.page-id-277 .msh-page__content .container,
.page-id-340 .msh-page__content .container {
	width: min(100%, 500px);
	max-width: 500px;
	margin: 0 auto !important;
}
.page-id-277 .msh-page__content .container > h1,
.page-id-340 .msh-page__content .container > h1 {
	display: none;
}
