:root {
	--sp-bg: #0a0a0a;
	--sp-fg: #ececec;
	--sp-mute: #9a9a9a;
	--sp-line: #2a2a2a;
	--sp-accent: #ff5a36;
}

html,
body,
.site {
	background: var(--sp-bg);
	color: var(--sp-fg);
}

body {
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

::selection {
	background: var(--sp-accent);
	color: #0a0a0a;
}

body a,
body a:visited {
	color: var(--sp-fg);
}

body a:hover,
body a:focus {
	color: var(--sp-accent);
}

/* Header */
.site-header {
	padding: 1.25rem;
}

.site-header .site-branding-container,
.site-header .site-branding {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0;
}

.site-header .site-branding {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
}

.site-header .site-title {
	margin: 0;
	font-size: 0.8rem;
}

.site-header .site-title a {
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}

.main-navigation {
	margin: 0 0 0 auto;
}

.main-navigation .main-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin: 0;
	padding: 0;
}

.main-navigation .main-menu > li {
	display: block;
	margin: 0;
}

.main-navigation .main-menu > li > a {
	color: var(--sp-fg);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}

.main-navigation .main-menu > li > a:hover,
.main-navigation .main-menu > li > a:focus {
	color: var(--sp-accent);
}

/* Inner pages */
.entry-title,
.entry-title a {
	color: var(--sp-fg);
	font-weight: 800;
	letter-spacing: -0.02em;
}

.entry .entry-title:before {
	background: var(--sp-accent);
}

.entry-content,
.entry-content p {
	color: var(--sp-fg);
}

.entry-content a {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.site-footer,
.site-footer a,
.site-info {
	background: var(--sp-bg);
	color: var(--sp-mute);
}

/* Home */
.sp-home {
	max-width: 1100px;
	margin: 0 auto;
	padding: clamp(2rem, 8vw, 6rem) 1.25rem 3rem;
}

.sp-hero h1 {
	margin: 0;
	font-size: clamp(3.4rem, 17vw, 11rem);
	line-height: 0.88;
	font-weight: 800;
	letter-spacing: -0.045em;
	text-transform: uppercase;
	color: var(--sp-fg);
}

.sp-lede {
	margin: clamp(1.5rem, 4vw, 3rem) 0 0;
	max-width: 24ch;
	font-size: clamp(1.4rem, 4vw, 2.4rem);
	line-height: 1.15;
	font-weight: 500;
	letter-spacing: -0.01em;
}

.sp-note {
	margin: 1.5rem 0 0;
	max-width: 42ch;
	color: var(--sp-mute);
	font-size: 1rem;
	line-height: 1.5;
}

.sp-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2rem;
}

.sp-actions a {
	display: inline-block;
	padding: 0.8rem 1.4rem;
	border: 1px solid var(--sp-fg);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}

body .sp-actions a:first-child {
	background: var(--sp-accent);
	border-color: var(--sp-accent);
	color: #0a0a0a;
}

body .sp-actions a:hover,
body .sp-actions a:focus-visible {
	background: var(--sp-fg);
	border-color: var(--sp-fg);
	color: #0a0a0a;
}

.sp-section {
	margin-top: clamp(3rem, 9vw, 7rem);
}

.sp-section h2 {
	margin: 0 0 1.5rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--sp-accent);
}

.sp-listen > :last-child {
	border-bottom: 1px solid var(--sp-line);
}

.sp-embed,
.sp-link {
	margin: 0;
	border-top: 1px solid var(--sp-line);
}

.sp-link {
	padding: 1.1rem 0;
	font-size: clamp(1rem, 2.2vw, 1.25rem);
	line-height: 1.35;
}

.sp-link a {
	font-weight: 600;
	text-decoration: none;
}

.sp-link a:after {
	content: " \2197";
	color: var(--sp-accent);
}

.sp-home .sp-embed__btn {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	width: 100%;
	margin: 0;
	padding: 1.1rem 0;
	background: none;
	border: 0;
	border-radius: 0;
	color: var(--sp-fg);
	font: inherit;
	font-size: clamp(1.1rem, 2.6vw, 1.6rem);
	font-weight: 600;
	line-height: 1.2;
	text-align: left;
	cursor: pointer;
}

.sp-home .sp-embed__btn:hover,
.sp-home .sp-embed__btn:focus {
	background: none;
	color: var(--sp-fg);
}

.sp-home .sp-embed__btn:hover .sp-embed__title {
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.sp-home .sp-embed__btn:focus-visible {
	outline: 2px solid var(--sp-accent);
	outline-offset: 2px;
}

.sp-embed__cta {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sp-accent);
	white-space: nowrap;
}

.sp-embed.is-open .sp-embed__cta {
	display: none;
}

.sp-embed iframe {
	max-width: 100%;
	margin: 0 0 1.25rem;
}

.sp-embed figure,
.sp-embed p {
	margin: 0 0 1.25rem;
}

.sp-contact p {
	margin: 0 0 1rem;
}

.sp-contact a {
	font-size: clamp(1.4rem, 5vw, 2.4rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	text-decoration: none;
	border-bottom: 2px solid var(--sp-accent);
}

.sp-contact .sp-more a {
	margin-right: 1.5rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	border-bottom: 0;
}

/* Sam Price international-facing homepage */
.sp-home { max-width: 1240px; padding-top: 1.2rem; }
.sp-topline { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0 0 2rem; border-bottom:1px solid var(--sp-line); color:var(--sp-mute); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.sp-topline a { text-decoration:none; }
.sp-mark { font-size:1.1rem; font-weight:900; letter-spacing:-.08em; color:var(--sp-fg)!important; }
.sp-mark span { color:var(--sp-accent); padding-left:.2rem; }
.sp-kicker { color:var(--sp-accent); font-size:.68rem; font-weight:800; letter-spacing:.19em; line-height:1.5; text-transform:uppercase; }
.sp-hero { padding-top:clamp(2.5rem,7vw,6rem); }
.sp-hero > .sp-kicker { margin-bottom:1.1rem; }
.sp-hero h1 { font-size:clamp(5rem,19vw,15.5rem); line-height:.73; letter-spacing:-.085em; font-weight:900; margin:0; text-transform:uppercase; }
.sp-hero h1 em, .sp-contact h2 em { color:var(--sp-accent); font-style:normal; }
.sp-hero-bottom { display:grid; grid-template-columns:1.1fr .9fr; gap:2rem; align-items:end; margin-top:clamp(2rem,5vw,4.5rem); }
.sp-lede { margin:0; font-size:clamp(1.5rem,3.6vw,3.2rem); line-height:1.04; letter-spacing:-.045em; max-width:18ch; }
.sp-note { margin:0 0 .25rem; max-width:36ch; color:var(--sp-mute); font-size:1rem; line-height:1.7; }
.sp-actions { margin-top:2rem; gap:.6rem; }
.sp-actions a { padding:1rem 1.2rem; transition:background .18s ease,color .18s ease,border-color .18s ease; }
.sp-actions a:first-child { background:var(--sp-accent); color:#090909; }
.sp-actions .sp-action-secondary { background:transparent; border-color:#565656; color:var(--sp-fg); }
.sp-actions a:hover { background:var(--sp-fg)!important; border-color:var(--sp-fg)!important; color:#080808!important; }
.sp-indexline { display:flex; justify-content:space-between; gap:1rem; margin-top:clamp(3rem,8vw,7rem); padding:.85rem 0; border-top:1px solid var(--sp-line); border-bottom:1px solid var(--sp-line); color:var(--sp-mute); font-size:.65rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.sp-section { margin-top:clamp(4.5rem,10vw,9rem); }
.sp-section-head h2 { margin:0; color:var(--sp-fg); font-size:clamp(3rem,8vw,7rem); line-height:.92; letter-spacing:-.07em; text-transform:uppercase; }
.sp-period { color:var(--sp-accent); }
.sp-section-intro { max-width:56ch; color:var(--sp-mute); line-height:1.7; margin:1.4rem 0 2.5rem; }
.sp-project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--sp-line); border-left:1px solid var(--sp-line); }
.sp-project { min-width:0; padding:clamp(1.2rem,3vw,2.5rem); border-right:1px solid var(--sp-line); border-bottom:1px solid var(--sp-line); display:flex; flex-direction:column; align-items:flex-start; }
.sp-project-featured { background:var(--sp-accent); color:#111; }
.sp-project-number { font-size:.65rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; margin-bottom:2.8rem; opacity:.8; }
.sp-project h3 { font-size:clamp(2.2rem,5.5vw,5rem); line-height:.95; letter-spacing:-.065em; margin:0 0 .7rem; color:inherit; overflow-wrap:anywhere; }
.sp-project-featured .sp-period { color:#111; }
.sp-project-tags { font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; opacity:.7; }
.sp-project > p:not(.sp-project-tags) { max-width:43ch; line-height:1.65; margin:.8rem 0 1.5rem; }
.sp-project a { margin-top:.65rem; font-size:.76rem; font-weight:800; letter-spacing:.035em; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:.25rem; }
.sp-project-featured a { color:#111!important; }
.sp-project a:hover { color:var(--sp-accent)!important; }
.sp-project-featured a:hover { color:#fff!important; }
.sp-selected .sp-section-head h2 { font-size:clamp(2.7rem,7vw,6rem); }
.sp-listen { border-top:1px solid var(--sp-line); }
.sp-listen .sp-embed__btn { padding:1.25rem 0; }
.sp-listen .sp-link { padding:1.25rem 0; }
.sp-contact { display:grid; grid-template-columns:1fr .8fr; gap:3rem; margin-top:clamp(5rem,12vw,11rem); padding:clamp(2rem,5vw,4rem) 0; border-top:1px solid var(--sp-line); border-bottom:1px solid var(--sp-line); }
.sp-contact h2 { margin:1rem 0 0; font-size:clamp(3rem,8vw,7rem); line-height:.9; letter-spacing:-.07em; text-transform:uppercase; }
.sp-contact-side { align-self:end; }
.sp-contact-side > p:first-child { max-width:40ch; color:var(--sp-mute); line-height:1.7; }
.sp-contact .sp-contact-link { display:inline-flex; align-items:center; gap:1rem; margin:.9rem 0 1.5rem; font-size:clamp(1.2rem,2.7vw,2rem); overflow-wrap:anywhere; }
.sp-social { display:flex; flex-wrap:wrap; gap:.7rem 1.2rem; }
.sp-contact .sp-social a { font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; border:0; margin:0; }
.sp-endline { display:flex; justify-content:space-between; gap:1rem; padding:1.2rem 0; color:var(--sp-mute); font-size:.65rem; letter-spacing:.08em; text-transform:uppercase; }
.sp-endline a { text-decoration:none; }
@media(max-width:700px) {
 .sp-topline { flex-wrap:wrap; font-size:.58rem; }
 .sp-topline > span { order:3; width:100%; }
 .sp-hero h1 { font-size:clamp(5rem,23vw,10rem); }
 .sp-hero-bottom, .sp-contact { grid-template-columns:1fr; gap:1.3rem; }
 .sp-indexline { flex-wrap:wrap; justify-content:flex-start; gap:.6rem 1rem; font-size:.56rem; }
 .sp-project-grid { grid-template-columns:1fr; }
 .sp-project-number { margin-bottom:1.8rem; }
 .sp-endline { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) { .sp-actions a { transition:none; } }

