/* ========================================
   :root / globals / colors / fonts
   ======================================== */
:root {
	--font-heading: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--font-body: "Lekton", monospace;

	--color-bg: #F6F2E8;
	--color-link: #6B7A4F;
    --color-secondary: #DADFC1;
	--color-link-hover: #6B7A4F;
	--color-scroll-thumb: rgba(0,0,0,0.2);
	--color-scroll-track: transparent;
}

/* ========================================
   Base structure / layout
   ======================================== */
html {
	background-color: var(--color-bg);
}

body {
	font-family: var(--font-body);
	font-size: clamp(0.95rem, 1.1vw, 1.05rem);
	line-height: 1.65;
	letter-spacing: 0.01em;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
    margin: 0px;
}

.container {
	display: flex;
	height: 100vh;
	width: 100%;
	overflow: hidden;
}

#main-content {
	flex: 1;
	overflow-y: auto;
	padding: 5rem;
}

#main-content > * {
	max-width: 1600px;
}

section {
	padding-bottom: 3vw;
}

/* ========================================
   Buttons
   ======================================== */
.resume-button {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;

  padding: 1rem 1.5rem;

  font-weight: 600;
  text-decoration: none;

  color: var(--color-link);
  border: 2px solid var(--color-link);
  border-radius: 6px;

  background: transparent;

  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.resume-button:hover,
.resume-button:focus-visible {
  background-color: var(--color-link);
  border: 2px solid var(--color-link);
  color: var(--color-bg);
}

.resume-button svg {
  display: block;
}

/* ========================================
   Typography
   ======================================== */
p {
	margin: 0 0 1.4em;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 0 0 0.6em;

	/* Subtle rendering polish */
	font-feature-settings: "kern", "liga", "calt";
	text-rendering: optimizeLegibility;
}

h1 {
	font-size: clamp(2.4rem, 6vw, 3.6rem);
    font-weight: 900;
}

h2 {
	font-size: clamp(1.9rem, 4.5vw, 2.6rem);
    font-weight: 650;
	line-height: 1.05;
	letter-spacing: -0.03em;
    border-left: 12px solid black;
    padding-left: 3rem;
}

h3 {
	font-size: clamp(1.5rem, 3.2vw, 2rem);
	letter-spacing: -0.02em;
}

h4 {
	font-size: clamp(1.25rem, 2.5vw, 1.6rem);
	letter-spacing: -0.015em;
}

h5 {
	font-size: 1.1rem;
	letter-spacing: -0.01em;
}

h6 {
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

/* ========================================
   Links
   ======================================== */
a {
	color: var(--color-link);
	text-decoration: none;
}

a:hover {
	background-color: var(--color-secondary);
}

/* ========================================
   Navigation / iframe
   ======================================== */
.nav-iframe {
	width: 250px;
	border: none;
	height: 100%;
	transition: transform 0.3s ease;
	transform: translateX(0); /* desktop default */
}

/* Hamburger (hidden on desktop) */
#hamburger {
	display: none;
	position: fixed;
	top: 1rem;
	left: 1rem;
	z-index: 1000;
	background: white;
	border: none;
	font-size: 2rem;
	cursor: pointer;
}

.nav-helper {
    width: 200px; 
    left: 4rem; 
    position: fixed; 
    top: 0.8rem;
    display: none;
}

ul {
    padding-left: 0px;
}

ul li {
    font-size: 1.1rem;
    list-style: none;
    border-bottom: 1px solid var(--color-secondary);
    padding: 0.5rem 1.5rem;
}

a li:hover{
    background-color: var(--color-secondary);
}

/* ========================================
   Layout / flex columns
   ======================================== */
.layout {
	display: flex;
	flex-direction: row;
	gap: 2rem;
}

.layout.tags {
    border-top: 1px solid black;
    padding-top: 1rem;
    margin-top: 3rem;
}

.layout .col {
	flex: 1;
}

.col.card {
    border: 1px solid black;
    padding: 3vw;
    border-radius: 1vw;
}

.layout .col img {
    border-radius: 0.6rem;
	width: 100%;
}

.layout .col.quote {
    padding: 3rem 3rem 1rem 3rem;
    border-radius: 0.6rem;
    margin-bottom: 2rem;
    background-color: var(--color-secondary);
}

/* ========================================
   Scrollbar styling (desktop + mobile)
   ======================================== */
.nav-iframe::-webkit-scrollbar,
::-webkit-scrollbar {
	width: 8px;
}

.nav-iframe::-webkit-scrollbar-thumb,
::-webkit-scrollbar-thumb {
	background-color: var(--color-scroll-thumb);
	border-radius: 4px;
}

.nav-iframe::-webkit-scrollbar-track,
::-webkit-scrollbar-track {
	background-color: var(--color-scroll-track);
}

/* ========================================
   Media Queries: Mobile adjustments
   ======================================== */
@media only screen and (max-width: 1100px) {

    #main-content {
	padding: 6rem 1.5rem 1.5rem 1.5rem;
    }

    h2 {
        border-left: none;
        padding-left: 0rem;
    }

	.layout {
		flex-direction: column;
	}

	.layout .col {
		/*width: 100%;*/
	}

	/* Hamburger: show on mobile */
	#hamburger {
		display: block;
	}

	/* Nav iframe mobile */
	.nav-iframe {
		position: fixed;
		top: 0;
		left: 0;
		height: 100%;
		width: 80%;
		transform: translateX(-100%);
		z-index: 999;
	}

	.nav-iframe.active {
		transform: translateX(0);
	}

    .nav-helper {
        display: block;
    }   

	/* dim background when nav is open */
	#main-content.dimmed::before {
		content: '';
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0,0,0,0.3);
		z-index: 500;
	}
}