/* ==========================================================================
   Shahed Portfolio — main stylesheet
   Design system: Electric Blue (#0066FF) on a soft off-white / charcoal pair.
   ========================================================================== */

/* ---------- Tokens -------------------------------------------------------- */
:root {
	/* Brand */
	--accent:        #0066FF;
	--accent-ink:    #0046C7;
	--accent-soft:   #E5EEFF;

	/* Light theme — default */
	--bg:            #F6F5F1;
	--bg-2:          #FFFFFF;
	--surface:       #FFFFFF;
	--ink:           #0A0A0B;
	--ink-2:         #1B1C1F;
	--muted:         #5E6066;
	--muted-2:       #8A8C92;
	--line:          #E6E4DE;
	--line-2:        #D8D6CF;
	--shadow:        0 1px 0 rgba(10,10,11,.06);
	--shadow-lg:     0 24px 60px -24px rgba(10,10,11,.18);
	--ring:          0 0 0 1px var(--line);

	/* Type */
	--font-sans:     "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--font-serif:    "Playfair Display", "Times New Roman", serif;
	--font-arabic:   "IBM Plex Sans Arabic", "Inter", system-ui, sans-serif;

	/* Scale (compact + comfortable) */
	--fs-eyebrow:    .74rem;
	--fs-body:       1rem;
	--fs-lead:       clamp(1.02rem, 0.92rem + 0.35vw, 1.18rem);
	--fs-h6:         .76rem;
	--fs-h3:         clamp(1.2rem, 1rem + .6vw, 1.45rem);
	--fs-h2:         clamp(1.6rem, 1.25rem + 1.5vw, 2.6rem);
	--fs-h1:         clamp(2.2rem, 1.6rem + 3vw, 4.4rem);

	/* Layout */
	--container:     min(1180px, calc(100% - 48px));
	--container-tight: min(880px, calc(100% - 40px));
	--radius:        14px;
	--radius-lg:     20px;

	/* Motion */
	--ease:          cubic-bezier(.2,.7,.2,1);
	--ease-out:      cubic-bezier(.16,1,.3,1);
}

[data-theme="dark"] {
	--bg:        #0B0B0D;
	--bg-2:      #111114;
	--surface:   #15161A;
	--ink:       #F3F1EC;
	--ink-2:     #E3E1DB;
	--muted:     #9A9CA3;
	--muted-2:   #6E7079;
	--line:      #25262C;
	--line-2:    #2E3038;
	--accent-soft: rgba(0,102,255,.15);
	--shadow:    0 1px 0 rgba(0,0,0,.4);
	--shadow-lg: 0 24px 60px -20px rgba(0,0,0,.6);
}

[data-lang="ar"] {
	--font-sans: var(--font-arabic);
}

/* ---------- Reset --------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--font-sans);
	font-size: var(--fs-body);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: "ss01", "cv11";
	overflow-x: hidden;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
ul, ol { margin: 0; padding: 0; list-style: none; }
input, textarea, select { font: inherit; color: inherit; }
hr { border: 0; border-top: 1px solid var(--line); margin: 0; }
::selection { background: var(--accent); color: #fff; }

/* Bilingual visibility — driven by [data-lang] on <html>. */
.tk-bi [data-bi="en"] { display: none; }
.tk-bi [data-bi="ar"] { display: none; }
[data-lang="en"] .tk-bi [data-bi="en"],
[data-lang="ar"] .tk-bi [data-bi="ar"] { display: inline; }
[data-lang="en"] .tk-bi[data-bi-block] [data-bi="en"],
[data-lang="ar"] .tk-bi[data-bi-block] [data-bi="ar"] { display: block; }
[data-lang="en"] [data-lang-show="ar"],
[data-lang="ar"] [data-lang-show="en"] { display: none; }

/* Accessibility */
.tk-skip {
	position: fixed; top: -100px; inset-inline-start: 12px; z-index: 1000;
	background: var(--ink); color: var(--bg); padding: 10px 14px; border-radius: 8px;
	transition: top .2s var(--ease);
}
.tk-skip:focus { top: 12px; }

/* ---------- Layout primitives -------------------------------------------- */
.tk-container { width: var(--container); margin-inline: auto; }
.tk-container--tight { width: var(--container-tight); }
.tk-section {
	padding-block: clamp(56px, 5vw, 92px);
	position: relative;
}
.tk-section__head { margin-bottom: clamp(28px, 3vw, 48px); max-width: 780px; }
.tk-section__head--row {
	display: flex; flex-wrap: wrap; gap: 32px;
	align-items: flex-end; justify-content: space-between;
	max-width: none;
}
.tk-section__lede { max-width: 460px; color: var(--muted); }

.tk-main { position: relative; z-index: 1; }

/* ---------- Typography ---------------------------------------------------- */
.tk-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: var(--fs-eyebrow);
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--muted);
}
[data-lang="ar"] .tk-eyebrow { letter-spacing: 0; }
.tk-eyebrow--dot::before {
	content: ""; width: 8px; height: 8px; border-radius: 50%;
	background: var(--accent);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);
	animation: tk-pulse 2.4s ease-in-out infinite;
}

.tk-display-1, .tk-display-2 {
	font-family: var(--font-serif);
	font-weight: 600;
	line-height: 1.02;
	letter-spacing: -0.025em;
	margin: 0;
	color: var(--ink);
}
[data-lang="ar"] .tk-display-1,
[data-lang="ar"] .tk-display-2 {
	font-family: var(--font-arabic);
	font-weight: 700;
	line-height: 1.18;
	letter-spacing: 0;
}
.tk-display-1 { font-size: var(--fs-h1); }
.tk-display-2 { font-size: var(--fs-h2); }
.tk-display-1 em, .tk-display-2 em {
	font-style: italic;
	color: var(--accent);
	font-family: var(--font-serif);
}
[data-lang="ar"] .tk-display-1 em,
[data-lang="ar"] .tk-display-2 em {
	font-style: normal;
	font-family: var(--font-arabic);
}

.tk-lead { font-size: var(--fs-lead); line-height: 1.5; color: var(--ink-2); margin: 0; }
.tk-lead strong { color: var(--ink); }

h6, .tk-skills__subtitle {
	font-size: var(--fs-h6);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .14em;
	color: var(--muted);
	margin: 0 0 18px;
}

/* ---------- Buttons ------------------------------------------------------- */
.tk-btn {
	display: inline-flex; align-items: center; gap: 9px;
	padding: 10px 18px;
	border-radius: 999px;
	font-size: .88rem;
	font-weight: 600;
	letter-spacing: -0.005em;
	transition: transform .35s var(--ease-out), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
	border: 1px solid transparent;
	white-space: nowrap;
	will-change: transform;
}
.tk-btn--lg { padding: 13px 22px; font-size: .94rem; }
.tk-btn--accent {
	background: var(--accent);
	color: #fff;
	box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--accent) 80%, transparent);
}
.tk-btn--accent:hover { background: var(--accent-ink); transform: translateY(-2px); box-shadow: 0 18px 40px -16px color-mix(in srgb, var(--accent) 90%, transparent); }
.tk-btn--ghost {
	background: transparent;
	color: var(--ink);
	border-color: var(--line-2);
}
.tk-btn--ghost:hover { border-color: var(--ink); transform: translateY(-2px); }
.tk-btn svg { transition: transform .35s var(--ease-out); }
.tk-btn:hover svg { transform: translateX(4px); }
[dir="rtl"] .tk-btn:hover svg { transform: translateX(-4px) rotate(180deg); }
[dir="rtl"] .tk-btn svg { transform: rotate(180deg); }

.tk-iconbtn {
	width: 36px; height: 36px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 10px;
	border: 1px solid var(--line);
	color: var(--ink-2);
	transition: background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
	font-size: .76rem;
	font-weight: 600;
	letter-spacing: .02em;
	background: var(--bg-2);
}
.tk-iconbtn:hover { border-color: var(--ink); color: var(--ink); background: var(--bg); }

/* Refined segmented language toggle — EN | عربي in one pill */
.tk-langseg {
	display: inline-flex; align-items: center;
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 3px;
	background: var(--bg-2);
	gap: 2px;
	height: 36px;
}
.tk-langseg__btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 38px; height: 28px;
	padding: 0 12px;
	border-radius: 999px;
	font-size: .76rem;
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--muted);
	transition: background .22s var(--ease), color .22s var(--ease);
	font-family: var(--font-sans);
}
.tk-langseg__btn[data-lang-target="ar"] { font-family: var(--font-arabic); letter-spacing: 0; font-weight: 700; }
.tk-langseg__btn:hover { color: var(--ink); }
.tk-langseg__btn.is-active {
	background: var(--ink);
	color: var(--bg-2);
}
[data-lang="en"] .tk-langseg__btn[data-lang-target="en"],
[data-lang="ar"] .tk-langseg__btn[data-lang-target="ar"] { background: var(--ink); color: var(--bg-2); }

.tk-pill {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 9px 18px;
	border-radius: 999px;
	border: 1px solid var(--line);
	color: var(--muted);
	font-size: .9rem; font-weight: 500;
	background: var(--bg-2);
	transition: all .25s var(--ease);
}
.tk-pill:hover { color: var(--ink); border-color: var(--ink); }
.tk-pill.is-active { background: var(--ink); color: var(--bg-2); border-color: var(--ink); }

/* ---------- Header -------------------------------------------------------- */
.tk-header {
	position: sticky; top: 0; z-index: 100;
	background: color-mix(in srgb, var(--bg) 85%, transparent);
	backdrop-filter: saturate(160%) blur(14px);
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color .3s var(--ease), background .3s var(--ease);
}
.tk-header.is-scrolled { border-bottom-color: var(--line); }
.tk-header__row {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 20px;
	padding-block: 14px;
}
.tk-logo {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--font-serif);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}
[data-lang="ar"] .tk-logo { font-family: var(--font-arabic); }
.tk-logo__mark {
	width: 30px; height: 30px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--ink); color: var(--bg-2);
	border-radius: 50%;
	font-family: var(--font-sans);
	font-size: .7rem;
	letter-spacing: .04em;
	font-weight: 700;
	transition: transform .4s var(--ease-out);
}
.tk-logo:hover .tk-logo__mark { transform: rotate(360deg); }
.tk-logo__name em { font-style: italic; color: var(--accent); font-family: var(--font-serif); }
[data-lang="ar"] .tk-logo__name em { font-style: normal; font-family: var(--font-arabic); }

.tk-nav__list {
	display: flex; gap: 22px;
	justify-content: center;
}
.tk-nav__list a {
	font-size: .88rem;
	color: var(--ink-2);
	position: relative;
	padding-block: 6px;
	transition: color .25s var(--ease);
}
.tk-nav__list a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0;
	height: 1px; background: var(--accent);
	transform: scaleX(0); transform-origin: right;
	transition: transform .4s var(--ease-out);
}
.tk-nav__list a:hover { color: var(--accent); }
.tk-nav__list a:hover::after { transform: scaleX(1); transform-origin: left; }

.tk-header__actions { display: inline-flex; align-items: center; gap: 8px; justify-self: end; }
.tk-theme .tk-icon-moon { display: none; }
[data-theme="dark"] .tk-theme .tk-icon-sun { display: none; }
[data-theme="dark"] .tk-theme .tk-icon-moon { display: block; }

/* Mobile burger / mobile nav */
.tk-burger { display: none; width: 40px; height: 40px; position: relative; }
.tk-burger span { position: absolute; left: 10px; right: 10px; height: 1.5px; background: var(--ink); transition: transform .3s var(--ease), opacity .3s var(--ease); }
.tk-burger span:nth-child(1) { top: 14px; }
.tk-burger span:nth-child(2) { top: 19px; }
.tk-burger span:nth-child(3) { top: 24px; }
.tk-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.tk-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.tk-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

.tk-mobile-nav {
	position: fixed; inset: 0; z-index: 90;
	background: var(--bg);
	transform: translateY(-101%);
	transition: transform .5s var(--ease-out);
	padding: 110px 28px 60px;
	display: flex; flex-direction: column; justify-content: space-between;
}
.tk-mobile-nav[aria-hidden="false"] { transform: translateY(0); }
.tk-mobile-nav ul { display: flex; flex-direction: column; gap: 18px; }
.tk-mobile-nav a {
	font-family: var(--font-serif);
	font-size: 2rem;
	color: var(--ink);
	letter-spacing: -0.01em;
}
[data-lang="ar"] .tk-mobile-nav a { font-family: var(--font-arabic); font-weight: 700; }
.tk-mobile-nav__foot { display: flex; justify-content: space-between; color: var(--muted); font-size: .9rem; }

/* Custom cursor removed for a lighter, simpler feel */
.tk-cursor { display: none !important; }

/* ---------- Hero ---------------------------------------------------------- */
.tk-hero {
	position: relative;
	padding-block: clamp(40px, 4.5vw, 72px) clamp(40px, 4vw, 64px);
	overflow: hidden;
	isolation: isolate;
}
.tk-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	grid-template-areas:
		"meta meta"
		"title visual"
		"intro visual"
		"scroll visual";
	gap: 26px 48px;
	align-items: start;
}
.tk-hero__meta { grid-area: meta; }
.tk-hero__title { grid-area: title; margin: 0; }
.tk-hero__line { display: block; }
.tk-hero__intro { grid-area: intro; max-width: 520px; }
.tk-hero__intro .tk-lead { margin-bottom: 20px; }
.tk-hero__visual { grid-area: visual; position: relative; }
.tk-hero__scroll { grid-area: scroll; display: inline-flex; align-items: center; gap: 14px; color: var(--muted); font-size: .82rem; text-transform: uppercase; letter-spacing: .16em; }
[data-lang="ar"] .tk-hero__scroll { letter-spacing: 0; text-transform: none; }
.tk-hero__scroll-dot { animation: tk-scroll-dot 2s ease-in-out infinite; }

.tk-hero__cta { display: inline-flex; gap: 10px; flex-wrap: wrap; }
.tk-hero__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 22px; }
.tk-hero__chips li {
	padding: 4px 11px;
	border: 1px solid var(--line);
	border-radius: 999px;
	font-size: .76rem;
	color: var(--muted);
}

/* Portrait */
.tk-hero__portrait {
	position: relative;
	aspect-ratio: 4 / 5;
	max-width: 380px;
	margin-inline: auto;
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: linear-gradient(160deg, var(--accent-soft), transparent 60%), var(--bg-2);
	box-shadow: 0 12px 32px -16px rgba(10,10,11,.18);
}
.tk-hero__portrait img {
	width: 100%; height: 100%;
	object-fit: cover; object-position: center top;
	filter: contrast(1.02) saturate(.95);
	transition: transform 1.2s var(--ease-out);
}
.tk-hero__portrait:hover img { transform: scale(1.04); }
.tk-hero__portrait-bg {
	position: absolute; inset: -20px;
	background: radial-gradient(closest-side, var(--accent-soft), transparent 70%);
	z-index: -1;
}
.tk-hero__portrait-frame {
	position: absolute; inset: 14px;
	border: 1px solid color-mix(in srgb, var(--bg-2) 70%, transparent);
	border-radius: calc(var(--radius-lg) - 8px);
	pointer-events: none;
}

.tk-hero__badge {
	position: absolute;
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 11px 14px;
	box-shadow: 0 8px 22px -12px rgba(10,10,11,.2);
	display: grid; gap: 2px;
	min-width: 118px;
}
.tk-hero__badge--year { top: 16px; inset-inline-start: -18px; }
.tk-hero__badge--counter { bottom: 16px; inset-inline-end: -18px; }
.tk-hero__badge-k { font-family: var(--font-serif); font-size: 1.35rem; font-weight: 700; color: var(--ink); display: inline; }
[data-lang="ar"] .tk-hero__badge-k { font-family: var(--font-arabic); }
.tk-hero__badge-plus { font-family: var(--font-serif); font-size: 1.35rem; color: var(--accent); }
.tk-hero__badge-sub { font-size: .68rem; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
[data-lang="ar"] .tk-hero__badge-sub { letter-spacing: 0; text-transform: none; }

/* Hero background — subtle, nothing busy */
.tk-hero__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.tk-hero__grid-lines { display: none; }
.tk-hero__blob {
	position: absolute; top: 0; right: -20%; width: 60%; height: 80%;
	background: radial-gradient(closest-side, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%);
	filter: blur(60px);
	opacity: .6;
}
[data-theme="dark"] .tk-hero__blob { opacity: .3; }

/* ---------- Marquee ------------------------------------------------------- */
.tk-marquee {
	border-block: 1px solid var(--line);
	background: var(--bg-2);
	overflow: hidden;
	padding-block: 14px;
}
.tk-marquee__track {
	display: inline-flex; gap: 20px; align-items: center;
	font-family: var(--font-serif);
	font-size: clamp(1rem, .85rem + .8vw, 1.5rem);
	font-weight: 400;
	color: var(--ink);
	white-space: nowrap;
	animation: tk-marquee 40s linear infinite;
}
[data-lang="ar"] .tk-marquee__track { font-family: var(--font-arabic); font-weight: 600; }
.tk-marquee__dot { color: var(--accent); }

/* ---------- About --------------------------------------------------------- */
.tk-about__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 40px 56px;
	align-items: start;
}
.tk-about__copy p + p { margin-top: 14px; }
.tk-about__facts {
	display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
	margin-top: 26px;
	padding-top: 22px;
	border-top: 1px solid var(--line);
}
.tk-about__facts dt { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); margin-bottom: 4px; }
[data-lang="ar"] .tk-about__facts dt { letter-spacing: 0; text-transform: none; }
.tk-about__facts dd { margin: 0; color: var(--ink); font-weight: 500; }

.tk-about__signature { margin-top: 32px; color: var(--accent); width: 200px; opacity: .8; }

.tk-about__counters {
	display: grid; grid-template-columns: 1fr 1fr; gap: 22px 14px;
	padding: 24px;
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	position: relative;
}
.tk-about__counters::before {
	content: ""; position: absolute; top: -1px; left: -1px;
	width: 26px; height: 26px;
	border-top: 1.5px solid var(--accent);
	border-left: 1.5px solid var(--accent);
	border-radius: var(--radius) 0 0 0;
}
.tk-about__counters::after {
	content: ""; position: absolute; bottom: -1px; right: -1px;
	width: 26px; height: 26px;
	border-bottom: 1.5px solid var(--accent);
	border-right: 1.5px solid var(--accent);
	border-radius: 0 0 var(--radius) 0;
}
.tk-counter__k {
	font-family: var(--font-serif);
	font-size: clamp(1.8rem, 1.3rem + 1.4vw, 2.4rem);
	line-height: 1;
	font-weight: 600;
	color: var(--ink);
	display: inline-flex; align-items: baseline; gap: 2px;
}
[data-lang="ar"] .tk-counter__k { font-family: var(--font-arabic); font-weight: 800; }
.tk-counter__k span:last-child { color: var(--accent); }
.tk-counter__l { font-size: .82rem; color: var(--muted); margin-top: 4px; }

/* ---------- Services ------------------------------------------------------ */
.tk-services__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--bg-2);
}
.tk-service {
	padding: 26px 24px;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	transition: background .35s var(--ease), color .35s var(--ease);
	position: relative;
	min-height: 240px;
	display: flex; flex-direction: column;
	cursor: pointer;
}
.tk-service:nth-child(3n) { border-right: 0; }
.tk-service:nth-last-child(-n+3) { border-bottom: 0; }
.tk-service:hover { background: var(--ink); color: var(--bg-2); }
.tk-service:hover .tk-service__title,
.tk-service:hover .tk-service__num,
.tk-service:hover .tk-service__desc,
.tk-service:hover .tk-service__list li { color: inherit; }
.tk-service__head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; }
.tk-service__num {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: .9rem;
	color: var(--accent);
}
.tk-service__title {
	font-family: var(--font-serif);
	font-weight: 600;
	font-size: var(--fs-h3);
	letter-spacing: -0.015em;
	margin: 0;
	color: var(--ink);
}
[data-lang="ar"] .tk-service__title { font-family: var(--font-arabic); font-weight: 700; letter-spacing: 0; }
.tk-service__desc { color: var(--muted); margin: 0 0 16px; flex: 1; font-size: .92rem; line-height: 1.55; }
.tk-service__list { display: flex; flex-wrap: wrap; gap: 6px; }
.tk-service__list li {
	font-size: .72rem;
	padding: 3px 9px;
	border: 1px solid currentColor;
	border-radius: 999px;
	opacity: .7;
}
.tk-service__arrow {
	position: absolute;
	top: 22px; inset-inline-end: 22px;
	width: 30px; height: 30px;
	border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--accent-soft);
	color: var(--accent);
	opacity: 0; transform: translateY(8px);
	transition: opacity .3s var(--ease), transform .35s var(--ease-out), background .25s var(--ease), color .25s var(--ease);
}
.tk-service__arrow svg { width: 16px; height: 16px; }
.tk-service:hover .tk-service__arrow {
	opacity: 1; transform: translateY(0);
	background: var(--accent); color: #fff;
}
[dir="rtl"] .tk-service:hover .tk-service__arrow svg { transform: rotate(180deg); }

/* ---------- Portfolio ----------------------------------------------------- */
.tk-portfolio__filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; }

.tk-portfolio__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px 18px;
}
.tk-portfolio__filters { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 22px; }
.tk-card { transition: opacity .25s var(--ease); }
.tk-card.is-hidden { display: none; }

.tk-card__link {
	display: block;
	height: 100%;
}
.tk-card__media {
	position: relative;
	margin: 0 0 10px;
	border-radius: var(--radius);
	overflow: hidden;
	aspect-ratio: 5 / 4;
	background: var(--bg-2);
	border: 1px solid var(--line);
}
.tk-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .8s var(--ease-out);
}
.tk-card:hover .tk-card__media img { transform: scale(1.03); }
.tk-card__shade { display: none; }
.tk-card__view {
	position: absolute;
	top: 10px; inset-inline-end: 10px;
	background: rgba(255, 255, 255, .94);
	color: var(--ink);
	border-radius: 999px;
	padding: 5px 11px;
	font-size: .7rem; font-weight: 600;
	display: inline-flex; align-items: center; gap: 5px;
	opacity: 0;
	transition: opacity .25s var(--ease);
	backdrop-filter: blur(8px);
}
.tk-card__view svg { width: 11px; height: 11px; }
[data-theme="dark"] .tk-card__view { background: rgba(20, 20, 24, .94); color: var(--ink); }
.tk-card:hover .tk-card__view { opacity: 1; }

.tk-card__head { padding: 0 2px; }
.tk-card__meta {
	display: flex; flex-wrap: wrap; gap: 4px;
	font-size: .68rem; color: var(--muted);
	letter-spacing: .04em;
	margin-bottom: 3px;
}
.tk-card__meta .tk-card__role { display: none; }
.tk-card__dot { color: var(--accent); }
.tk-card__title {
	font-family: var(--font-sans);
	font-weight: 600;
	font-size: .98rem;
	letter-spacing: -0.005em;
	margin: 0;
	color: var(--ink);
	line-height: 1.35;
}
[data-lang="ar"] .tk-card__title { font-family: var(--font-arabic); font-weight: 700; }
.tk-card__excerpt { display: none; }

.tk-portfolio__cta { margin-top: 40px; display: flex; justify-content: center; }

/* ---------- Skills -------------------------------------------------------- */
.tk-skills__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 56px;
}
.tk-software { display: flex; flex-direction: column; gap: 16px; }
.tk-software__item { display: grid; grid-template-columns: 36px 1fr; gap: 14px; align-items: center; }
.tk-software__icon {
	width: 36px; height: 36px; border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--accent-soft);
	color: var(--accent);
}
.tk-software__icon svg { width: 18px; height: 18px; }
.tk-software__row {
	display: flex; align-items: baseline; justify-content: space-between;
	margin-bottom: 6px;
}
.tk-software__name { font-weight: 600; color: var(--ink); font-size: .92rem; }
.tk-software__pct {
	font-family: var(--font-serif); font-size: .92rem; color: var(--accent); font-weight: 600;
}
[data-lang="ar"] .tk-software__pct { font-family: var(--font-arabic); }
.tk-bar { height: 4px; border-radius: 999px; background: var(--line); overflow: hidden; }
.tk-bar__fill {
	display: block; height: 100%; width: 0%;
	background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 50%, #fff));
	border-radius: inherit;
	transition: width 1.4s var(--ease-out);
}
.tk-bar.is-in .tk-bar__fill { width: var(--bar-w); }

.tk-rings {
	display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
	margin-bottom: 24px;
}
.tk-ring {
	position: relative;
	padding: 18px;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	background: var(--bg-2);
	display: grid; gap: 6px; justify-items: center;
}
.tk-ring svg { width: 88px; height: 88px; transform: rotate(-90deg); }
.tk-ring__track { stroke: var(--line); }
.tk-ring__fill {
	stroke: var(--accent);
	stroke-linecap: round;
	transition: stroke-dashoffset 1.4s var(--ease-out);
}
.tk-ring__k {
	position: absolute; top: 60px; left: 50%; transform: translateX(-50%);
	font-family: var(--font-serif); font-weight: 600; font-size: 1.05rem;
	color: var(--ink);
}
[data-lang="ar"] .tk-ring__k { font-family: var(--font-arabic); font-weight: 700; }
.tk-ring__l { text-align: center; font-size: .8rem; color: var(--muted); margin-top: 10px; }

.tk-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.tk-tags li {
	padding: 5px 11px;
	border-radius: 999px;
	border: 1px solid var(--line);
	font-size: .78rem;
	color: var(--ink-2);
	background: var(--bg-2);
}
.tk-ring svg circle { stroke-width: 6; }

/* ---------- Process ------------------------------------------------------- */
.tk-process__list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	counter-reset: step;
}
.tk-step {
	padding: 22px 20px;
	border-radius: var(--radius);
	background: var(--bg-2);
	border: 1px solid var(--line);
	position: relative;
	overflow: hidden;
	transition: transform .35s var(--ease-out), border-color .25s var(--ease), background .25s var(--ease);
}
.tk-step:hover { transform: translateY(-3px); border-color: var(--accent); }
.tk-step__n {
	display: inline-block;
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--accent);
	font-size: .9rem;
	margin-bottom: 10px;
}
.tk-step__t {
	font-family: var(--font-serif); font-weight: 600;
	font-size: 1.1rem; margin: 0 0 8px;
	color: var(--ink); letter-spacing: -0.01em;
}
[data-lang="ar"] .tk-step__t { font-family: var(--font-arabic); font-weight: 700; }
.tk-step__d { color: var(--muted); margin: 0; font-size: .86rem; line-height: 1.55; }
.tk-step::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
	background: var(--accent); transform: scaleX(0); transform-origin: left;
	transition: transform .5s var(--ease-out);
}
.tk-step:hover::after { transform: scaleX(1); }

/* ---------- Testimonials -------------------------------------------------- */
.tk-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.tk-quote {
	padding: 24px 22px;
	border-radius: var(--radius);
	background: var(--bg-2);
	border: 1px solid var(--line);
	margin: 0;
	position: relative;
}
.tk-quote__mark { color: var(--accent); opacity: .7; margin-bottom: 12px; width: 32px; height: auto; }
.tk-quote__body { margin: 0 0 14px; }
.tk-quote__body p { font-family: var(--font-serif); font-size: .98rem; line-height: 1.55; color: var(--ink); margin: 0; font-weight: 400; }
[data-lang="ar"] .tk-quote__body p { font-family: var(--font-arabic); font-weight: 500; line-height: 1.75; }
.tk-quote__cap strong { display: block; color: var(--ink); font-weight: 600; font-size: .9rem; }
.tk-quote__cap span { color: var(--muted); font-size: .78rem; }

/* ---------- Contact ------------------------------------------------------- */
.tk-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
	gap: 48px;
	align-items: start;
}
.tk-contact__aside .tk-display-2 { margin: 10px 0 16px; }
.tk-contact__links { display: grid; gap: 10px; margin: 20px 0; padding: 18px 0; border-block: 1px solid var(--line); }
.tk-contact__links li { display: grid; grid-template-columns: 92px 1fr; gap: 14px; align-items: center; font-size: .9rem; }
.tk-contact__links span { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
[data-lang="ar"] .tk-contact__links span { letter-spacing: 0; text-transform: none; }
.tk-contact__links a:hover { color: var(--accent); }
.tk-contact__social { display: flex; gap: 12px; }
.tk-contact__social { display: flex; gap: 8px; }
.tk-contact__social a {
	width: 36px; height: 36px;
	border-radius: 50%;
	border: 1px solid var(--line);
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--ink);
	transition: all .25s var(--ease);
}
.tk-contact__social a svg { width: 18px; height: 18px; }
.tk-contact__social a:hover { background: var(--accent); border-color: var(--accent); color: #fff; transform: translateY(-3px); }

.tk-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	padding: 26px;
	background: var(--bg-2);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
}
.tk-field { display: flex; flex-direction: column; gap: 6px; }
.tk-field--full { grid-column: 1 / -1; }
.tk-field--hp { position: absolute !important; left: -9999px !important; opacity: 0 !important; }
.tk-field label { font-size: .74rem; text-transform: uppercase; letter-spacing: .09em; color: var(--muted); font-weight: 600; }
[data-lang="ar"] .tk-field label { letter-spacing: 0; text-transform: none; }
.tk-field label span { color: var(--accent); }
.tk-field input, .tk-field textarea, .tk-field select {
	padding: 11px 13px;
	background: var(--bg);
	border: 1px solid var(--line);
	border-radius: 10px;
	color: var(--ink);
	outline: none;
	font-size: .94rem;
	transition: border-color .2s var(--ease), background .2s var(--ease);
}
.tk-field input:focus, .tk-field textarea:focus, .tk-field select:focus {
	border-color: var(--accent);
	background: var(--bg-2);
}
.tk-field textarea { resize: vertical; min-height: 110px; }
.tk-form__foot { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; justify-content: space-between; }
.tk-form__hint { color: var(--muted); font-size: .88rem; margin: 0; }
.tk-form__hint a { color: var(--accent); }
.tk-form__status { grid-column: 1 / -1; font-size: .92rem; }
.tk-form__status.is-ok { color: #1B8A3A; }
.tk-form__status.is-err { color: #C53030; }

/* ---------- Footer -------------------------------------------------------- */
/* Footer keeps fixed dark colors regardless of theme — never inverts */
.tk-footer {
	background: #0A0A0B;
	color: #F3F1EC;
	padding-block: clamp(56px, 5vw, 86px) 24px;
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
[data-theme="dark"] .tk-footer { background: #050507; }
.tk-footer * { color: inherit; }
.tk-footer .tk-display-2 em { color: var(--accent); }
.tk-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 40px;
	padding-bottom: 36px;
	border-bottom: 1px solid rgba(243, 241, 236, 0.12);
}
.tk-footer__brand .tk-display-2 { color: #F3F1EC; margin-bottom: 20px; }
.tk-footer__brand .tk-display-2 br { display: block; }
.tk-footer__cols {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
.tk-footer__cols h6 { color: rgba(243, 241, 236, 0.5); margin-bottom: 10px; }
.tk-footer__cols ul { display: grid; gap: 6px; font-size: .9rem; }
.tk-footer__cols a { color: rgba(243, 241, 236, 0.78); transition: color .2s var(--ease); }
.tk-footer__cols a:hover { color: var(--accent); }
.tk-footer__bottom {
	display: flex; justify-content: space-between; align-items: center;
	padding-top: 20px;
	color: rgba(243, 241, 236, 0.5);
	font-size: .78rem;
}
.tk-footer__bg {
	position: absolute;
	bottom: -40px; left: 0;
	font-family: var(--font-serif);
	font-size: clamp(7rem, 12vw, 14rem);
	font-weight: 900;
	color: rgba(243, 241, 236, 0.04);
	white-space: nowrap;
	letter-spacing: -0.04em;
	pointer-events: none;
	z-index: -1;
}
[data-lang="ar"] .tk-footer__bg { font-family: var(--font-arabic); }

/* ---------- Single project & misc ---------------------------------------- */
.tk-single__head { padding-bottom: 40px; }
.tk-single__back { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: .9rem; margin-bottom: 24px; }
.tk-single__back:hover { color: var(--ink); }
.tk-single__facts {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
	margin: 40px 0 0;
	padding-top: 28px;
	border-top: 1px solid var(--line);
}
.tk-single__facts dt { font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: 6px; }
.tk-single__facts dd { margin: 0; font-weight: 500; }
.tk-single__cover { margin: 0; aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden; }
.tk-single__cover img { width: 100%; height: 100%; object-fit: cover; }
.tk-single__body { max-width: 800px; }
.tk-prose p { font-size: 1.1rem; line-height: 1.65; color: var(--ink-2); margin: 0 0 1.2em; }
.tk-prose p strong { color: var(--ink); }
.tk-single__cta { margin-top: 36px; }
.tk-single__nav-row { display: flex; justify-content: space-between; padding-top: 32px; border-top: 1px solid var(--line); }
.tk-single__nav-row span { display: block; font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: 6px; }
.tk-single__nav-row a { color: var(--ink); font-family: var(--font-serif); font-size: 1.2rem; }
.tk-single__nav-right { text-align: right; }
[dir="rtl"] .tk-single__nav-right { text-align: left; }

.tk-404__inner { text-align: center; max-width: 640px; margin: 0 auto; padding-block: 80px; }
.tk-404__big {
	font-family: var(--font-serif);
	font-size: clamp(8rem, 22vw, 22rem);
	color: var(--accent);
	line-height: .9; opacity: .15;
	margin-bottom: -60px;
}

/* ---------- Reveal animations (set by JS / scroll trigger) --------------- */
[data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .9s var(--ease-out), transform .9s var(--ease-out);
}
[data-reveal].is-in { opacity: 1; transform: none; }
[data-reveal-stagger] > * {
	opacity: 0; transform: translateY(20px);
	transition: opacity .8s var(--ease-out), transform .8s var(--ease-out);
}
[data-reveal-stagger].is-in > * { opacity: 1; transform: none; }
[data-reveal-stagger].is-in > *:nth-child(1) { transition-delay: .05s; }
[data-reveal-stagger].is-in > *:nth-child(2) { transition-delay: .12s; }
[data-reveal-stagger].is-in > *:nth-child(3) { transition-delay: .19s; }
[data-reveal-stagger].is-in > *:nth-child(4) { transition-delay: .26s; }
[data-reveal-stagger].is-in > *:nth-child(5) { transition-delay: .33s; }
[data-reveal-stagger].is-in > *:nth-child(6) { transition-delay: .40s; }
[data-reveal-stagger].is-in > *:nth-child(7) { transition-delay: .47s; }
[data-reveal-stagger].is-in > *:nth-child(8) { transition-delay: .54s; }

/* ---------- RTL adjustments ---------------------------------------------- */
[dir="rtl"] .tk-hero__badge--year { inset-inline-start: -24px; }
[dir="rtl"] .tk-hero__badge--counter { inset-inline-end: -24px; }
[dir="rtl"] .tk-marquee__track { animation-direction: reverse; }
[dir="rtl"] .tk-footer__bg { animation-direction: reverse; }
[dir="rtl"] .tk-service__arrow svg { transform: rotate(180deg); }
[dir="rtl"] .tk-form__hint { text-align: right; }

/* ---------- Responsive ---------------------------------------------------- */
@media (max-width: 1100px) {
	.tk-services__grid { grid-template-columns: repeat(2, 1fr); }
	.tk-service:nth-child(3n) { border-right: 1px solid var(--line); }
	.tk-service:nth-child(2n) { border-right: 0; }
	.tk-service:nth-last-child(-n+3) { border-bottom: 1px solid var(--line); }
	.tk-service:nth-last-child(-n+2) { border-bottom: 0; }
	.tk-quotes { grid-template-columns: 1fr; }
	.tk-process__list { grid-template-columns: repeat(2, 1fr); }
	.tk-single__facts { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
	.tk-header__row { grid-template-columns: auto auto; }
	.tk-nav, .tk-header__cta { display: none; }
	.tk-burger { display: inline-flex; }
	.tk-hero__grid { grid-template-columns: 1fr; grid-template-areas: "meta" "title" "visual" "intro" "scroll"; }
	.tk-hero__visual { max-width: 460px; margin-inline: auto; }
	.tk-about__grid { grid-template-columns: 1fr; }
	.tk-skills__grid { grid-template-columns: 1fr; gap: 48px; }
	.tk-contact__grid { grid-template-columns: 1fr; }
	.tk-footer__top { grid-template-columns: 1fr; }
	.tk-footer__cols { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
	.tk-portfolio__grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
}

@media (max-width: 640px) {
	:root { --container: calc(100% - 28px); --radius: 12px; --radius-lg: 16px; }
	.tk-portfolio__grid { grid-template-columns: 1fr; gap: 16px; }
	.tk-services__grid { grid-template-columns: 1fr; }
	.tk-service { border-right: 0 !important; border-bottom: 1px solid var(--line) !important; }
	.tk-service:last-child { border-bottom: 0 !important; }
	.tk-process__list, .tk-single__facts, .tk-about__counters, .tk-rings, .tk-about__facts, .tk-form { grid-template-columns: 1fr; }
	.tk-form { padding: 22px 18px; }
	.tk-hero__badge--year { top: 10px; inset-inline-start: -6px; padding: 8px 11px; }
	.tk-hero__badge--counter { bottom: 10px; inset-inline-end: -6px; padding: 8px 11px; }
	.tk-hero__badge-k, .tk-hero__badge-plus { font-size: 1.05rem; }
	.tk-section { padding-block: 56px; }
	.tk-footer__cols { grid-template-columns: 1fr; }
	.tk-footer__bottom { flex-direction: column; gap: 8px; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
	[data-reveal], [data-reveal-stagger] > * { opacity: 1 !important; transform: none !important; }
}
