@charset "UTF-8";
/*!
Theme Name: portfolio_ds
Theme URI: http://underscores.me/
Author: Giraffe
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: portfolio_ds
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

portfolio_ds is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
/* Normalize
--------------------------------------------- */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
	 ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
	 ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
	 ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type=checkbox],
[type=radio] {
  box-sizing: border-box;
  padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

/* Interactive
	 ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
	 ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* Box sizing
--------------------------------------------- */
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
  color: #404040;
  font-family: "Obviously-wide", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  clear: both;
  font-family: "Obviously", sans-serif;
}

h2 {
  font-weight: 600;
  font-size: 2rem;
  margin-bottom: 2rem;
}

@media (min-width: 767px) {
  h2 {
    font-size: 2.4rem;
  }
}
p {
  margin-bottom: 1.2em;
}

dfn,
cite,
em,
i {
  font-style: italic;
}

blockquote {
  margin: 0 1.5em;
}

address {
  margin: 0 0 1.5em;
}

pre {
  background: #eee;
  font-family: "Courier 10 Pitch", courier, monospace;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
}

code,
kbd,
tt,
var {
  font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}

mark,
ins {
  background: #fff9c0;
  text-decoration: none;
}

big {
  font-size: 125%;
}

.p-highlight {
  font-family: "Obviously", sans-serif;
  font-size: 120%;
}

.orange {
  color: #F5AB61;
}

.italic {
  font-family: "Source Serif 4", serif;
  font-size: 120%;
  letter-spacing: 0.05rem;
  font-style: italic;
}

/* Elements
--------------------------------------------- */
html {
  font-size: 10px;
}

html::-webkit-scrollbar-thumb {
  scrollbar-color: red yellow;
}

body {
  background: #fff;
  font-size: 1.8rem;
  font-family: "Inter", sans-serif;
}

@media (max-width: 576px) {
  .container {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
section {
  overflow-x: hidden;
}

.site-footer {
  color: black;
}
.site-footer .site-info {
  font-size: 16px;
}

::selection {
  background: white;
  color: black;
}

.bg-black {
  background: black;
  color: white;
}

.bg-green {
  background: green;
  color: black;
}

.bg-pink {
  background: pink;
  color: black;
}

.bg-yellow {
  background: yellow;
  color: black;
}

.bg-purple {
  background: purple;
  color: black;
}

.bg-blue {
  background: blue;
  color: black;
}

.text-pink {
  color: pink;
}

.text-purple {
  color: purple;
}

.text-blue {
  color: blue;
}

.text-white {
  color: white;
}

.text-green {
  color: green;
}

.text-yellow {
  color: yellow;
}

.s-padding {
  padding-bottom: 5rem;
  padding-top: 5rem;
}

/* Button styling */
#themeToggle {
  position: fixed;
  top: 2rem;
  right: 1rem;
  background: #fcfbf0;
  border: none;
  padding: 1rem;
  border-radius: 100px;
  cursor: pointer;
  font-size: 0.9rem;
  z-index: 10;
  transition: all 0.3s ease;
}

#themeToggle:hover {
  background: #ddd;
}

#themeToggle .icon {
  display: block;
}

#themeToggle .icon--dark {
  display: none;
}

body.darkmode #themeToggle .icon--light {
  display: none;
}

body.darkmode #themeToggle .icon--dark {
  display: block;
}

section {
  margin: 0 auto;
}

.dots-bg {
  background-image: radial-gradient(#D5D5D5 1px, transparent 0);
  background-size: 20px 20px;
  background-position: -19px -19px;
}

.darkmode .dots-bg {
  background-image: radial-gradient(#3E3E3E 1px, transparent 0);
}

body {
  margin: 0;
  color: #222;
  background: radial-gradient(ellipse 70% 800px at 10% 10%, rgba(255, 233, 179, 0.8) 30%, rgba(255, 233, 179, 0) 90%), radial-gradient(circle 1200px at 45% -10%, rgba(230, 211, 255, 0.7) 50%, rgba(230, 211, 255, 0) 90%), radial-gradient(ellipse 1400px 900px at 75% 0%, rgba(191, 255, 210, 0.7) 50%, rgba(191, 255, 210, 0) 90%), radial-gradient(circle 40vw at 100% 60%, rgba(230, 211, 255, 0.7) 50%, rgba(230, 211, 255, 0) 120%), radial-gradient(circle 50vw at 15% 95%, rgba(255, 233, 179, 0.5) 50%, rgba(255, 233, 179, 0) 90%), radial-gradient(circle 30vw at 95% 100%, rgba(191, 255, 210, 0.4) 50%, rgba(191, 255, 210, 0) 90%);
  background-color: #fff;
  background-repeat: no-repeat;
  transition: background 0.6s ease, color 0.6s ease;
}

/* 🌙 DARK MODE */
body.darkmode {
  color: white;
  background: radial-gradient(ellipse 70% 800px at 10% 10%, rgba(212, 148, 90, 0.85) 30%, rgba(212, 148, 90, 0) 70%), radial-gradient(circle 1200px at 45% -10%, rgba(70, 130, 120, 0.4) 40%, rgba(70, 130, 120, 0) 70%), radial-gradient(ellipse 1400px 900px at 75% 0%, rgba(191, 255, 210, 0.7) 10%, rgba(191, 255, 210, 0) 90%), radial-gradient(circle 40vw at 100% 60%, rgba(130, 100, 160, 0.7) 50%, rgba(130, 100, 160, 0) 120%), radial-gradient(circle 50vw at 15% 95%, rgba(212, 148, 90, 0.9) 50%, rgba(212, 148, 90, 0) 90%), radial-gradient(circle 50vw at 95% 95%, rgba(191, 255, 210, 0.5) 50%, rgba(70, 130, 120, 0) 80%);
  /* warm amber glow (left) */
  background-color: #181a1d;
  background-blend-mode: soft-light;
}

body.darkmode #themeToggle {
  background: #333;
  color: #fff;
}

body.darkmode #themeToggle:hover {
  background: #444;
}

.s-padding {
  padding-bottom: 3rem;
  padding-top: 3rem;
}
.s-padding-top {
  padding-top: 3rem;
}
.s-padding-bottom {
  padding-bottom: 3rem;
}

.m-padding {
  padding-bottom: 4.2rem;
  padding-top: 4.2rem;
}
.m-padding-top {
  padding-top: 4.2rem;
}
.m-padding-bottom {
  padding-bottom: 4.2rem;
}

.l-padding {
  padding-bottom: 8rem;
  padding-top: 8rem;
}
.l-padding-top {
  padding-top: 8rem;
}
.l-padding-bottom {
  padding-bottom: 8rem;
}

@media screen and (max-width: 767px) {
  .dots-bg {
    background-image: radial-gradient(#D5D5D5 1.5px, transparent 0);
    background-size: 20px 20px;
    background-position: -19px -19px;
    margin-top: 3rem;
  }
  .darkmode .dots-bg {
    background-image: radial-gradient(#3E3E3E 1.5px, transparent 0);
    margin-top: 3rem;
  }
}
@media screen and (min-width: 768px) {
  .s-padding {
    padding-bottom: 3rem;
    padding-top: 3rem;
  }
  .s-padding-top {
    padding-top: 3rem;
  }
  .s-padding-bottom {
    padding-bottom: 3rem;
  }
  .m-padding {
    padding-bottom: 6rem;
    padding-top: 6rem;
  }
  .m-padding-top {
    padding-top: 6rem;
  }
  .m-padding-bottom {
    padding-bottom: 6rem;
  }
  .l-padding {
    padding-bottom: 8rem;
    padding-top: 8rem;
  }
  .l-padding-top {
    padding-top: 8rem;
  }
  .l-padding-bottom {
    padding-bottom: 8rem;
  }
}
@media screen and (min-width: 992px) {
  .s-padding {
    padding-bottom: 5rem;
    padding-top: 5rem;
  }
  .s-padding-top {
    padding-top: 5rem;
  }
  .s-padding-bottom {
    padding-bottom: 5rem;
  }
  .m-padding {
    padding-bottom: 8rem;
    padding-top: 8rem;
  }
  .m-padding-top {
    padding-top: 8rem;
  }
  .m-padding-bottom {
    padding-bottom: 8rem;
  }
  .l-padding {
    padding-bottom: 12rem;
    padding-top: 12rem;
  }
  .l-padding-top {
    padding-top: 12rem;
  }
  .l-padding-bottom {
    padding-bottom: 12rem;
  }
}
hr {
  background-color: #ccc;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
}

ul,
ol {
  margin: 0 0 1.5em 3em;
}

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

li > ul,
li > ol {
  margin-bottom: 0;
  margin-left: 1.5em;
}

dt {
  font-weight: 700;
}

dd {
  margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
  max-width: 100%;
}

img {
  height: auto;
  max-width: 100%;
}

figure {
  margin: 1em 0;
}

table {
  margin: 0 0 1.5em;
  width: 100%;
}

/* Links
--------------------------------------------- */
a {
  color: #4169e1;
  text-decoration: none;
}
a:visited {
  color: #800080;
}
a:focus {
  outline: thin dotted;
}
a:hover, a:active {
  outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type=button],
input[type=reset],
input[type=submit] {
  border: 1px solid;
  border-color: #ccc #ccc #bbb;
  border-radius: 3px;
  background: #e6e6e6;
  color: rgba(0, 0, 0, 0.8);
  line-height: 1;
  padding: 0.6em 1em 0.4em;
}
button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover {
  border-color: #ccc #bbb #aaa;
}
button:active, button:focus,
input[type=button]:active,
input[type=button]:focus,
input[type=reset]:active,
input[type=reset]:focus,
input[type=submit]:active,
input[type=submit]:focus {
  border-color: #aaa #bbb #bbb;
}

a.btn-main {
  position: relative;
  padding: 8px 10px 10px 20px;
  border: 1px solid white;
  background: #fcfbf0;
  font-family: "Obviously", sans-serif;
  font-weight: 500;
  border-radius: 999px;
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
  transition: color 100ms ease-in-out;
  color: #44BA9B;
  cursor: pointer;
}
a.btn-main svg {
  padding-left: 10px;
  vertical-align: sub;
  width: 40px;
  padding-right: 10px;
  transition: padding 100ms ease-in-out;
}
a.btn-main svg path {
  fill: #44BA9B;
  transition: fill 100ms ease-in-out;
}
a.btn-main:hover {
  color: #23232B;
}
a.btn-main:hover svg {
  padding-right: 5px;
  padding-left: 15px;
  width: 40px;
}
a.btn-main:hover svg path {
  fill: #23232B;
}

.darkmode div a.btn-main {
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
  border: 1px solid #3C3D40;
  background: rgba(60, 61, 64, 0.8);
  color: #44BA9B;
}
.darkmode div a.btn-main:hover {
  background: rgba(39, 39, 39, 0.8);
  color: white;
}
.darkmode div a.btn-main:hover svg path {
  fill: white;
}

a.btn-glow {
  text-decoration: none;
}

.btn-glow-small,
.btn-glow,
.btn-glow-small:visited,
.btn-glow:visited {
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: background 200ms ease-in-out, color 200ms ease-in-out;
}
.btn-glow-small svg,
.btn-glow svg,
.btn-glow-small:visited svg,
.btn-glow:visited svg {
  margin-left: 5px;
}
.btn-glow-small svg path,
.btn-glow svg path,
.btn-glow-small:visited svg path,
.btn-glow:visited svg path {
  fill: #fff;
  transition: fill 200ms ease-in-out;
}
.btn-glow-small::before,
.btn-glow::before,
.btn-glow-small:visited::before,
.btn-glow:visited::before {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  border: 1px solid #fff;
  background: transparent;
  filter: blur(1px);
  z-index: -1;
  transition: background 200ms ease-in-out, border-color 200ms ease-in-out;
}

.btn-glow {
  position: relative;
  padding: 5px 20px 7px;
}

.btn-glow-small:hover,
.btn-glow:hover {
  color: #fff;
}

.btn-glow-small {
  padding: 0;
}
.btn-glow-small::before {
  border: 1.5px solid #fff;
  filter: blur(1.5px);
}
.btn-glow-small svg {
  margin: 0;
}

.highlight-card:hover .btn-glow-purple {
  background: #977CEE;
}

.highlight-card:hover .btn-glow-purple::before {
  background-color: #977CEE;
}

.darkmode .highlight-card .btn-glow-purple svg path {
  fill: #23232B;
}

.darkmode .highlight-card:hover .btn-glow-purple::before {
  border: 1.5px solid #977CEE;
  background: #977CEE;
}

body.darkmode .btn-glow {
  color: #23232B;
}
body.darkmode .btn-glow svg path {
  fill: #23232B;
}

@media (max-width: 767px) {
  .about-body .btn-glow::before {
    z-index: 0;
  }
  .about-body .btn-glow {
    margin-top: 2rem;
  }
}
.about-block:hover .btn-glow::before {
  background: transparent;
  border-color: #fff;
}

@media (min-width: 767px) {
  .about-block:hover .btn-glow-orange::before {
    background: #F5AB61;
    border-color: #F5AB61;
  }
  .about-block:hover .btn-glow-green::before {
    background: #44BA9B;
    border-color: #44BA9B;
  }
}
input[type=text],
input[type=email],
input[type=url],
input[type=password],
input[type=search],
input[type=number],
input[type=tel],
input[type=range],
input[type=date],
input[type=month],
input[type=week],
input[type=time],
input[type=datetime],
input[type=datetime-local],
input[type=color],
textarea {
  color: #666;
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 3px;
}
input[type=text]:focus,
input[type=email]:focus,
input[type=url]:focus,
input[type=password]:focus,
input[type=search]:focus,
input[type=number]:focus,
input[type=tel]:focus,
input[type=range]:focus,
input[type=date]:focus,
input[type=month]:focus,
input[type=week]:focus,
input[type=time]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=color]:focus,
textarea:focus {
  color: #111;
}

select {
  border: 1px solid #ccc;
}

textarea {
  width: 100%;
}

/* Animation
--------------------------------------------- */
@media (prefers-reduced-motion) {
  hidden {
    transition: none;
  }
}
.slide-up.hidden {
  opacity: 0;
  transform: translateY(50px);
  transition: transform 1ms, opacity 1ms;
}

.slide-up.show {
  opacity: 1;
  transform: translateY(0);
  transition: transform 700ms, opacity 700ms;
}

.slide-down.hidden {
  opacity: 0;
  transform: translateY(-50px);
  transition: transform 1ms, opacity 1ms;
}

.slide-down.show {
  opacity: 1;
  transform: translateY(0);
  transition: transform 700ms, opacity 700ms;
}

.slide-right.hidden {
  opacity: 0;
  transform: translateX(-50px);
  transition: transform 1ms, opacity 1ms;
}

.slide-right.show {
  opacity: 1;
  transform: translateX(0);
  transition: transform 700ms, opacity 700ms;
}

.slide-left.hidden {
  opacity: 0;
  transform: translateX(50px);
  transition: transform 1ms, opacity 1ms;
}

.slide-left.show {
  opacity: 1;
  transform: translateX(0);
  transition: transform 700ms, opacity 700ms;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
/* Navigation
--------------------------------------------- */
body {
  overflow-x: hidden;
}

header {
  font-family: "Obviously", sans-serif;
}

.site-header {
  margin-top: 2rem;
}

/* ---------------------------
   Main navigation (base)
   ---------------------------- */
.main-navigation {
  display: flex;
  justify-content: space-between;
  width: 100%;
  font-size: 1.7rem;
  font-weight: lighter;
  background: #fcfbf0;
  /* Current item */
  /* Menu list */
  /* Top-level spacing */
}
.main-navigation a {
  display: block;
  text-decoration: none;
  color: #23232B;
  padding: 3px 15px 4px;
  margin: auto 0;
  border-radius: 25px;
  border: 1px solid transparent;
  outline: none;
}
.main-navigation .current_page_item > a,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_ancestor > a,
.main-navigation .current-menu-ancestor > a {
  color: #23232B;
  border-radius: 25px;
}
.main-navigation ul {
  display: none;
  list-style: none;
  margin: 0;
  padding-left: 0;
}
.main-navigation ul li {
  position: relative;
}
.main-navigation ul li::before {
  content: "/";
  position: absolute;
  transform: scaleY(1.2) scaleX(0.7);
  font-size: 2rem;
  font-weight: 100;
  padding-right: 1rem;
  transform-origin: center;
  color: #F5AB61;
  left: 0;
  top: 0;
  transition: left 300ms cubic-bezier(0.3, 0.8, 0.3, 1.2), right 200ms ease-in-out;
}
.main-navigation ul li:hover a {
  color: #F5AB61;
}
.main-navigation ul li:hover::before {
  right: 0;
  left: 100%;
  transition: left 300ms cubic-bezier(0.3, 0.8, 0.3, 1.2), right 200ms ease-in-out;
  color: black;
}
.main-navigation ul li:nth-of-type(2)::before {
  color: #44BA9B;
}
.main-navigation ul li:nth-of-type(2):hover::before {
  color: black;
}
.main-navigation ul li:nth-of-type(2):hover a {
  color: #44BA9B;
}
.main-navigation > ul > li {
  position: relative;
  margin-left: 5rem;
  margin-top: 3rem;
}
.main-navigation .desktop-logo {
  max-width: 5rem;
}

/* Small menu / toggled menu */
.menu-toggle,
.main-navigation.toggled ul {
  display: block;
}

/* Centre-align top-level links (you had this near the end) */
.main-navigation #primary-menu > li > a {
  text-align: center;
}

/* ---------------------------
   Mobile logo + hamburger bits
   ---------------------------- */
.mobile-logo {
  position: relative;
  z-index: 99;
  display: inline-flex;
  align-items: center;
}
.mobile-logo img {
  max-width: 6rem;
}

/* Hamburger animation */
.menu-open .bar1 {
  transform: rotate(-45deg) translate(-6px, 11px);
}

.menu-open .bar2 {
  transform: rotate(45deg) translate(-2px, -17px);
}

/* Mobile nav close button */
#mobileNav .closebtn svg {
  margin: 0;
}

#mobileNavClose {
  opacity: 0;
  display: flex;
  align-items: center;
}
#mobileNavClose span {
  font-size: 4rem;
  margin-right: 1rem;
  margin-bottom: 4px;
}
#mobileNavClose.open {
  opacity: 1;
  transition: opacity 400ms 500ms;
}

/* ---------------------------
   Post navigation (leave as-is, but tightened)
   ---------------------------- */
.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
  margin: 0 0 1.5em;
}
.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
  display: flex;
}
.comment-navigation .nav-previous,
.comment-navigation .nav-next,
.posts-navigation .nav-previous,
.posts-navigation .nav-next,
.post-navigation .nav-previous,
.post-navigation .nav-next {
  flex: 1 0 50%;
}
.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  text-align: end;
}

/* ---------------------------
   Breakpoints
   ---------------------------- */
@media (max-width: 991.98px) {
  .desktop-menu {
    display: none;
  }
}
@media (min-width: 992px) {
  .mobile-logo {
    display: none;
  }
  .site-header {
    position: relative;
    z-index: 3;
    height: 11rem;
  }
  .main-navigation,
.menu-main-menu-container,
.menu-main-menu-container .menu {
    height: 100%;
  }
  .main-navigation {
    padding: 0 3rem;
    border-radius: 100px;
  }
  .main-navigation ul {
    display: flex;
    align-items: center;
    justify-content: flex-end;
  }
  .main-navigation #primary-menu > li {
    margin: 2rem 2rem 2rem 1.8rem;
  }
  .main-navigation > li {
    z-index: 5;
  }
}
.darkmode .main-navigation {
  background: rgba(60, 61, 64, 0.8);
  color: white;
}
.darkmode .main-navigation ul li a {
  color: white;
}
.darkmode .main-navigation ul li:hover a {
  color: #F5AB61;
}
.darkmode .main-navigation ul li:hover::before {
  color: white;
}
.darkmode .main-navigation li:nth-of-type(2)::before {
  color: #44BA9B;
}
.darkmode .main-navigation li:nth-of-type(2):hover a {
  color: #44BA9B;
}
.darkmode .main-navigation li:nth-of-type(3)::before {
  color: #F5AB61;
}

@media screen and (min-width: 992px) {
  .site-header .desktop-menu::before {
    position: absolute;
    opacity: 0;
    transition: opacity 300ms ease-in-out, visibility 300ms ease-in-out;
    transition-delay: 100ms;
    z-index: 0;
    width: 1600px;
    top: -250px;
    right: 50%;
    visibility: hidden;
  }
  .site-header .sub-menu {
    opacity: 0;
    transition: opacity 200ms ease-in-out;
  }
  .site-header.bg-active .sub-menu {
    opacity: 1;
    z-index: 0;
    transition: opacity 200ms ease-in-out;
  }
  .site-header.bg-active .desktop-menu::before {
    visibility: visible;
    opacity: 1;
    transition: opacity 300ms ease-in-out, visibility 300ms ease-in-out;
  }
}
@media screen and (min-width: 1400px) {
  .site-header .desktop-menu::before {
    top: -220px;
    right: 40%;
  }
}
/* This class will disable body scrolling */
.no-scroll {
  overflow: hidden;
}

#mobileNav svg {
  min-height: 38px;
}

#mobileNav svg {
  margin: 4rem 2rem;
}

#mobileNav {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.overlay {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 20;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}

.overlay.is-open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transition: opacity 0.3s ease, visibility 0s;
}

/* Position the content inside the overlay */
.overlay-content {
  position: relative;
  top: 0;
  width: 100%;
  padding-top: 8rem;
  z-index: 5;
}
.overlay-content ul {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}

/* The navigation links inside the overlay */
.overlay a {
  padding: 4px 8px;
  text-decoration: none;
  font-size: 36px;
  display: block;
  transition: 0.7s;
}

.overlay-content {
  text-align: right;
}

.overlay-content li:nth-of-type(2) a::before {
  color: #44BA9B;
}

.overlay-content a {
  font-size: 3rem;
  margin-bottom: 1rem;
  margin-top: 1rem;
  position: relative;
  display: inline-block;
}
.overlay-content a::before {
  content: "/";
  position: absolute;
  transform: scaleY(1.2) scaleX(0.7);
  font-weight: 100;
  padding-right: 1rem;
  transform-origin: center;
  color: #F5AB61;
  left: -2rem;
  top: 0;
}

/* Position the close button (top right corner) */
.overlay .closebtn {
  position: absolute;
  bottom: 4rem;
  right: 3.2rem;
  z-index: 6;
}

.mobile-nav-open {
  position: absolute;
  top: 2.6rem;
  right: 3.2rem;
  z-index: 1;
}
.mobile-nav-open .nav-icon-bar {
  width: 75px;
  height: 4px;
  border-radius: 200;
  background-color: white;
  margin: 24px 0;
}
.mobile-nav-open::before {
  z-index: -1;
  content: "";
  position: absolute;
  right: -3.1rem;
  top: -2.7rem;
  background-size: cover;
}

@media (max-width: 576px) {
  .mobile-nav-open span {
    top: 2.6rem;
  }
}
.mobile-nav {
  display: none;
}
.mobile-nav a {
  color: #23232B;
}
.mobile-nav a:visited {
  color: #23232B;
}

/* When the height of the screen is less than 450 pixels, change the font-size of the links and position the close button again, so they don't overlap */
@media screen and (max-height: 450px) {
  .overlay a {
    font-size: 20px;
  }
  .overlay .closebtn {
    font-size: 4rem;
    top: 15px;
    right: 35px;
  }
}
@media only screen and (max-width: 991px) {
  .mobile-nav {
    display: block;
  }
}
@media only screen and (max-width: 991px) {
  #themeToggle {
    display: none;
  }
}
.mobile-nav-toggle {
  background: white;
  border: 0;
  padding: 0.6rem;
  border-radius: 100px;
  position: absolute;
  right: 2rem;
  top: 2rem;
  cursor: pointer;
  z-index: 99;
}

.mobile-nav-toggle svg {
  width: 34px;
  height: 34px;
  transition: transform 0.3s ease;
  transform-origin: 50% 50%;
}

.mobile-nav-toggle.is-open svg {
  transform: rotate(45deg);
}

#mobileNav.overlay {
  margin: 0;
  color: white;
  background: radial-gradient(ellipse 70% 800px at 10% 10%, rgba(255, 233, 179, 0.8) 30%, rgba(255, 233, 179, 0) 90%), radial-gradient(circle 1200px at 45% -10%, rgba(230, 211, 255, 0.7) 50%, rgba(230, 211, 255, 0) 90%), radial-gradient(ellipse 1400px 900px at 75% 0%, rgba(191, 255, 210, 0.7) 50%, rgba(191, 255, 210, 0) 90%), radial-gradient(circle 40vw at 100% 60%, rgba(230, 211, 255, 0.7) 50%, rgba(230, 211, 255, 0) 120%), radial-gradient(circle 50vw at 15% 95%, rgba(255, 233, 179, 0.5) 50%, rgba(255, 233, 179, 0) 90%), radial-gradient(circle 30vw at 95% 100%, rgba(191, 255, 210, 0.4) 50%, rgba(191, 255, 210, 0) 90%);
  background-color: #fff;
  background-repeat: no-repeat;
  transition: background 0.6s ease, color 0.6s ease;
}

/* 🌙 DARK MODE */
body.darkmode #mobileNav.overlay {
  color: #23232B;
  background: radial-gradient(ellipse 70% 800px at 10% 10%, rgba(212, 148, 90, 0.85) 30%, rgba(212, 148, 90, 0) 70%), radial-gradient(circle 1200px at 45% -10%, rgba(70, 130, 120, 0.4) 40%, rgba(70, 130, 120, 0) 70%), radial-gradient(ellipse 1400px 900px at 75% 0%, rgba(191, 255, 210, 0.7) 10%, rgba(191, 255, 210, 0) 90%), radial-gradient(circle 40vw at 100% 60%, rgba(130, 100, 160, 0.7) 50%, rgba(130, 100, 160, 0) 120%), radial-gradient(circle 50vw at 15% 95%, rgba(212, 148, 90, 0.9) 50%, rgba(212, 148, 90, 0) 90%), radial-gradient(circle 50vw at 95% 95%, rgba(191, 255, 210, 0.5) 50%, rgba(70, 130, 120, 0) 80%);
  /* warm amber glow (left) */
  background-color: #181a1d;
  background-blend-mode: soft-light;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
  display: block;
}

.post,
.page {
  margin: 0 0 1.5em;
}

.updated:not(.published) {
  display: none;
}

.page-content,
.entry-content,
.entry-summary {
  margin: 1.5em 0 0;
}

.page-links {
  clear: both;
  margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
  word-wrap: break-word;
}

.bypostauthor {
  display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
  margin: 0 0 1.5em;
}
.widget select {
  max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
  display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}
.wp-caption img[class*=wp-image-] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

.wp-caption-text {
  text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
  margin-bottom: 1.5em;
  display: grid;
  grid-gap: 1.5em;
}

.gallery-item {
  display: inline-block;
  text-align: center;
  width: 100%;
}

.gallery-columns-2 {
  grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
  grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
  grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
  grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
  grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
  grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
  grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
  grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
  display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/
/* Jetpack infinite scroll
--------------------------------------------- */
/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
  display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/
/* Accessibility
--------------------------------------------- */
/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
  outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {
  /*rtl:ignore*/
  float: left;
  /*rtl:ignore*/
  margin-right: 1.5em;
  margin-bottom: 1.5em;
}

.alignright {
  /*rtl:ignore*/
  float: right;
  /*rtl:ignore*/
  margin-left: 1.5em;
  margin-bottom: 1.5em;
}

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}

/* Pages
--------------------------------------------- */
#home-highlights .highlight-card__body {
  position: relative;
  z-index: 3;
  height: 100%;
  padding: 10px 18px 10px;
  color: white;
}

#home-highlights .highlight-card:hover .highlight-card__body {
  color: black;
}

#home-highlights .highlight-card__title {
  margin: 0 0 10px;
  font-weight: normal;
  line-height: 1.2;
}

#home-highlights .highlight-card__cta {
  position: absolute;
  right: 6px;
  bottom: 6px;
  z-index: 4;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 0;
  text-decoration: none;
}

/* =========================
   Splide tweaks (highlights only)
   ========================= */
#home-highlights #highlightsSplide .splide__track {
  padding-bottom: 2rem;
}

@media (max-width: 767px) {
  #home-highlights #highlightsSplide .splide__slide {
    display: flex;
    justify-content: center;
  }
  #home-highlights #highlightsSplide .splide__slide .highlight-card {
    width: 100%;
    transform: scale(0.92);
    transition: transform 0.3s ease;
  }
  #home-highlights #highlightsSplide .splide__slide.is-active .highlight-card {
    transform: scale(1);
  }
}
@media (max-width: 767px) {
  .headshot-wrapper {
    max-width: 300px;
    margin: 0 auto;
  }
}
@media (max-width: 991px) {
  #home-intro {
    text-align: center;
  }
  #home-intro .p-highlight {
    font-size: 105%;
    margin-top: 3rem;
  }
  .entry-title {
    font-size: 3.4rem;
    font-weight: 400;
  }
  .entry-title span.italic {
    font-weight: 500;
  }
}
@media (min-width: 992px) {
  #home-intro .row {
    padding-left: 6rem;
    padding-right: 6rem;
  }
  .intro-short {
    padding-top: 5rem;
    padding-right: 6rem;
    font-size: 130%;
  }
  .intro-short p {
    max-width: 56rem;
  }
}
.headshot-wrapper {
  text-align: end;
}

.entry-title {
  line-height: 1.3;
}

/* =========================
ABOUT BLOCKS
========================= */
/* Gradients */
.about-block {
  border: 1px solid white;
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
  position: relative;
  width: 100%;
  padding: 2.6rem 1.6rem;
  border-radius: 3rem;
  overflow: hidden;
  background: transparent;
  color: #fff;
  transition: color 200ms ease-in-out;
}
.about-block .about-title {
  font-size: 2.2rem;
  color: inherit;
  transition: color 200ms ease-in-out;
}
.about-block::before, .about-block::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: 0;
}
.about-block::before {
  background: radial-gradient(ellipse 90% 100% at 110% 120%, #977CEE, #44BA9B);
  opacity: 1;
  transition: opacity 200ms ease-in-out;
}
.about-block::after {
  background: radial-gradient(ellipse 90% 100% at 110% 120%, #E9DBFD, #fcfbf0);
  opacity: 0;
  transition: opacity 300ms ease-in-out;
}
.about-block > * {
  position: relative;
}

/* Block 2 overrides (light mode) */
#about-block-2::before {
  background: radial-gradient(ellipse 90% 100% at 110% 120%, #E775F0, #F5AB61);
}
#about-block-2::after {
  background: radial-gradient(ellipse 80% 85% at 110% 120%, rgba(231, 117, 240, 0.2), #fcfbf0);
}

/* Dark mode */
body.darkmode .about-block {
  color: #fff;
  border: 1px solid #3C3D40;
}
body.darkmode #about-block-1::after {
  background: radial-gradient(ellipse 90% 95% at 100% 110%, rgba(231, 117, 240, 0.2), #23232B);
}
body.darkmode #about-block-2::before {
  background: radial-gradient(ellipse 90% 100% at 110% 120%, #E775F0, #F5AB61);
}
body.darkmode #about-block-2::after {
  background: radial-gradient(ellipse 90% 95% at 100% 110%, rgba(231, 117, 240, 0.2), #23232B);
}

/* =========================
TOGGLE / HEADER
========================= */
.about-toggle {
  width: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.about-icon {
  display: inline-block;
  transition: transform 0.2s ease;
}

.darkmode .about-toggle {
  color: #23232B;
}

.darkmode .about-toggle {
  color: #23232B;
}

/* =========================
CONTENT
========================= */
#about-block-1 .about-content {
  padding: 0 0 2rem 0;
}
#about-block-1 .about-content p:last-child {
  margin-bottom: 0;
}

/* =========================
MOBILE (ACCORDION)
========================= */
@media (max-width: 767px) {
  .tools-card__cta-desktop {
    display: none;
  }
  .about-block {
    margin-bottom: 12px;
    border: 1px solid #ccc;
    border-radius: 32px;
    background: #fff;
    color: #23232B;
  }
  .about-block::before, .about-block::after {
    display: none;
  }
  .about-body {
    display: none;
    margin-top: 0;
  }
  .about-block.open .about-body {
    display: block;
  }
  .about-block.open .about-icon {
    transform: rotate(45deg);
  }
  .about-block.open .about-toggle {
    padding-bottom: 12px;
    margin-bottom: 12px;
  }
}
/* =========================
DESKTOP
========================= */
@media (min-width: 768px) {
  .about-block {
    padding: 2.6rem 3.4rem;
  }
  #about-block-1 .about-content {
    margin-top: 3rem;
    padding: 0 3rem 2rem;
  }
  .tools-card__cta-mobile {
    display: none;
  }
  .about-blocks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }
  .about-block {
    height: 100%;
  }
  .about-toggle {
    width: auto;
    cursor: default;
    margin-bottom: 1rem;
    display: inline;
  }
  .about-icon {
    display: none;
  }
  button.about-toggle {
    color: inherit;
    transition: color 200ms ease-in-out;
  }
  .about-content {
    margin: 4rem 0;
  }
  #about-block-2 .about-content {
    margin: 5rem 0 3rem;
  }
  #about-block-2 .tools-card__cta-desktop {
    float: right;
    margin-top: 5px;
  }
  #about-block-1 .about-content {
    display: block;
    height: 190px;
    overflow: auto;
  }
  /* Hover flip (text + title transition together) */
  .about-block:hover {
    color: #23232B;
  }
  .about-block:hover::before {
    opacity: 0;
  }
  .about-block:hover::after {
    opacity: 1;
  }
  body.darkmode .about-block:hover {
    color: #fff;
  }
  body.darkmode .about-block:hover .about-toggle {
    color: white;
  }
  /* Scrollbar styling */
  .about-content::-webkit-scrollbar {
    width: 8px;
  }
  .about-content::-webkit-scrollbar-thumb {
    border-radius: 6px;
    background-color: #fff;
  }
  .about-content::-webkit-scrollbar-track {
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="8" height=".5" viewBox="0 0 8 2"><rect width="8" height="2" fill="%233C3D40"/></svg>');
    background-repeat: repeat-y;
    background-size: contain;
  }
  .about-block:hover .about-content::-webkit-scrollbar-thumb {
    background-color: #44BA9B;
  }
}
/* =========================
BLOCK 2 TOOL LIST
========================= */
#about-block-2 ul {
  display: grid;
}
#about-block-2 ul li {
  display: flex;
  align-items: center;
  gap: 20px;
}

@media (min-width: 768px) {
  #about-block-2 ul {
    display: grid;
  }
  #about-block-2 ul li {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  #about-block-2 ul li svg {
    width: 40px;
  }
}
@media (min-width: 768px) {
  #about-block-2:hover .tools-grid svg path {
    fill: #F5AB61;
    transition: fill 200ms ease-in-out;
  }
}
/* =========================
TOOLS CARD
========================= */
.tools-card {
  border-radius: 2.5rem;
  padding: 3rem;
  background: rgba(255, 255, 255, 0.65);
}

.tools-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 3rem;
}

.tools-card__title {
  margin: 0;
  font-size: 2rem;
}

.tools-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.8rem 1.6rem;
  border-radius: 999px;
  text-decoration: none;
}

.tools-grid {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7rem 2rem;
  align-items: start;
}

.tool {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  min-width: 0;
}

.tool__icon {
  width: 56px;
  height: 56px;
}
.tool__icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.tool__label {
  line-height: 1.1;
  white-space: nowrap;
}
.tool__label br {
  content: "";
}

/* Responsive */
@media (max-width: 991px) {
  .tools-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .tools-card__head {
    flex-direction: column;
    align-items: flex-start;
  }
  .tools-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .tool__label {
    white-space: normal;
  }
}
#about-block-2 ul li#php-icon .tool__icon {
  transform: scale(1.2);
}

.about-block {
  position: relative;
}

.about-stretched-link {
  display: none;
}

@media (max-width: 767px) {
  #about-block-1 {
    background: radial-gradient(ellipse 90% 100% at 110% 120%, #977CEE, #44BA9B);
    color: white;
  }
  #about-block-1 .about-title {
    color: white;
    font-size: 2.3rem;
  }
  #about-block-2 {
    background: radial-gradient(ellipse 90% 100% at 110% 120%, #E775F0, #F5AB61);
    color: white;
  }
  #about-block-2 .about-body {
    text-align: center;
  }
  #about-block-2 .about-title {
    color: white;
    font-size: 2.3rem;
  }
  .about-content {
    margin-bottom: 3rem;
  }
  /* 2-column grid on mobile */
  .tools-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem 1.25rem; /* row / column gap */
    padding: 2rem 0;
  }
  /* Each tool becomes a centred vertical stack */
  /* Make label centred and allow wrapping */
  .tool__label {
    white-space: normal;
    line-height: 1.2;
  }
  /* Optional: keep icons consistent */
  .tool__icon {
    width: 56px;
    height: 56px;
  }
}
@media (min-width: 768px) {
  .about-stretched-link {
    display: block;
    position: absolute;
    inset: 0;
    z-index: 1;
  }
  /* Put actual interactive things above the stretched link */
  .about-toggle,
.about-content,
.about-cta {
    position: relative;
    z-index: 2;
  }
}
.about-cta--desktop {
  display: none;
}

.about-cta--mobile {
  display: inline-flex;
}

@media (min-width: 768px) {
  .about-cta--desktop {
    display: inline-flex;
  }
  .about-cta--mobile {
    display: none;
  }
}
@media (min-width: 768px) and (max-width: 1199px) {
  #about-block-2 .tools-grid li {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  #about-block-1 .about-content {
    height: 260px;
    margin-bottom: 2rem;
  }
}
@media (min-width: 768px) and (max-width: 1199px) {
  #about-block-2 .about-content {
    margin: 7rem 0 3rem;
  }
  .about-block {
    padding: 2.6rem 2.4rem;
  }
  .tools-grid {
    gap: 2rem 2rem;
  }
  .tools-grid .tool__icon {
    width: 40px;
    height: 40px;
  }
}
@media (min-width: 1200px) {
  #about-block-2 ul li svg {
    width: 50px;
  }
}
/* =========================
   Highlights wrapper + switch
   ========================= */
#home-highlights {
  /* Only show one at a time */
}
#home-highlights .highlights-wrapper {
  margin: 20px auto;
  width: 100%;
}
#home-highlights .highlights-desktop {
  display: none;
}
#home-highlights .highlights-mobile {
  display: block;
}
@media (min-width: 768px) {
  #home-highlights .highlights-desktop {
    display: block;
    padding-bottom: 2rem;
  }
  #home-highlights .highlights-mobile {
    display: none;
  }
}

/* =========================
   Desktop grid
   ========================= */
#home-highlights .highlights-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

/* Gradients */
.highlight-card {
  border: 1px solid white;
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
  position: relative;
  width: 100%;
  padding: 1rem 1rem;
  border-radius: 3rem;
  overflow: hidden;
  background: transparent;
  min-height: 34rem;
  color: #fff;
  transition: color 200ms ease-in-out;
}
.highlight-card .highlight-card__project-title {
  font-size: 2.6rem;
  color: inherit;
  margin-bottom: 1rem;
  font-weight: 500;
  transition: color 200ms ease-in-out;
}
.highlight-card::before, .highlight-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
}
.highlight-card::before {
  background: radial-gradient(ellipse 90% 100% at 110% 120%, #977CEE, #44BA9B);
  opacity: 1;
  transition: opacity 200ms ease-in-out;
}
.highlight-card::after {
  background: radial-gradient(ellipse 90% 100% at 110% 120%, #E9DBFD, #fcfbf0);
  opacity: 0;
  transition: opacity 300ms ease-in-out;
}
.highlight-card > * {
  position: relative;
}

.highlight-card:hover {
  color: #23232B;
}
.highlight-card:hover::before {
  opacity: 0;
}
.highlight-card:hover::after {
  opacity: 1;
}

.highlight-card-1::before {
  background: radial-gradient(ellipse 200px 200px at 80% 80%, #90E6D9, #977CEE);
}
.highlight-card-1::after {
  background: radial-gradient(ellipse 200px 200px at 80% 80%, #90E6D9, #fcfbf0);
}
.highlight-card-1 .highlight-card__cta {
  position: absolute;
  right: 0;
  top: 10px;
}
.highlight-card-1 .highlight-card__project-title {
  margin-top: 1.4rem;
}
.highlight-card-1 .highlight-card__project-title {
  max-width: calc(100% - 50px);
}
.highlight-card-1 .highlight-card__mockup {
  position: absolute;
  transform: scale(1);
  transition: transform 300ms ease-in-out;
}
.highlight-card-1:hover .highlight-card__mockup {
  transform: scale(1.3);
  transform-origin: center;
  transition: transform 300ms ease-in-out;
}
@media (max-width: 767px) {
  .highlight-card-1 .highlight-card__mockup {
    right: -20px;
    bottom: -30px;
    width: 300px;
    transform: scale(1.2);
  }
  .highlight-card-1:hover .highlight-card__mockup {
    transform: scale(1.4);
  }
}

.highlight-card-2 {
  position: relative;
}
.highlight-card-2::before {
  background: radial-gradient(ellipse 200px 200px at 5% 5%, #EBD265, #977CEE);
}
.highlight-card-2::after {
  background: radial-gradient(ellipse 200px 200px at 5% 5%, #EBD265, #fcfbf0);
}
.highlight-card-2 .highlight-card__mockup {
  margin: 0 auto;
  transform: scale(0.9);
  transition: transform 200ms ease-in-out;
}
.highlight-card-2 .highlight-card__cta {
  position: absolute;
  right: 0;
  bottom: 0;
}
.highlight-card-2 .highlight-card__title {
  margin-bottom: 1.4rem;
}
.highlight-card-2:hover .highlight-card__mockup {
  transform: scale(1);
  transform-origin: center;
  transition: transform 300ms ease-in-out;
}

.highlight-card-3 {
  position: relative;
}
.highlight-card-3::before {
  background: radial-gradient(ellipse 200px 200px at 80% 80%, #E775F0, #977CEE);
}
.highlight-card-3::after {
  background: radial-gradient(ellipse 80% 85% at 110% 120%, rgba(231, 117, 240, 0.2), #fcfbf0);
}
.highlight-card-3 .highlight-card__cta {
  position: absolute;
  right: 0;
  top: 10px;
}
.highlight-card-3 .highlight-card__project-title {
  margin-top: 1.4rem;
}
.highlight-card-3 .highlight-card__project-title {
  max-width: calc(100% - 50px);
}
.highlight-card-3 .highlight-card__mockup {
  position: absolute;
  transform: scale(1);
  transition: transform 300ms ease-in-out;
  width: 380px;
  right: -30px;
  bottom: -80px;
}
.highlight-card-3:hover .highlight-card__mockup {
  transform: scale(1.24);
  transform-origin: center;
  transition: transform 300ms ease-in-out;
}
@media (max-width: 767px) {
  .highlight-card-3 .highlight-card__mockup {
    right: -20px;
    width: 310px;
    bottom: -30px;
    transform: scale(1);
  }
  .highlight-card-3:hover .highlight-card__mockup {
    transform: scale(1.25);
  }
}

.darkmode .highlights-wrapper .highlight-card:hover {
  color: white;
}
.darkmode .highlights-wrapper .highlight-card-1::after {
  background: radial-gradient(ellipse 200px 200px at 80% 80%, rgba(144, 230, 217, 0.6), #23232B), #23232B;
}
.darkmode .highlights-wrapper .highlight-card-2::after {
  background: radial-gradient(ellipse 200px 200px at 5% 5%, rgba(235, 210, 101, 0.6), #23232B), #23232B;
}
.darkmode .highlights-wrapper .highlight-card-3::after {
  background: radial-gradient(ellipse 80% 85% at 110% 120%, rgba(40, 82, 76, 0.2), #23232B);
}

/* =========================
Splide tweaks (highlights only)
========================= */
#home-highlights #highlightsSplide .splide__track {
  padding-bottom: 2rem;
}

@media (min-width: 767px) {
  .highlight-card {
    min-height: 36rem;
  }
}
@media (min-width: 767px) and (max-width: 991px) {
  .highlight-card {
    min-height: 25rem;
  }
  .highlight-card h4 {
    max-width: calc(100% - 30px);
  }
}
@media (max-width: 767px) {
  .highlight-card .highlight-card__project-title {
    font-size: 2rem;
  }
  #home-highlights #highlightsSplide .splide__slide {
    display: flex;
    justify-content: center;
    padding-top: 10px;
  }
  #home-highlights #highlightsSplide .splide__slide .highlight-card {
    margin-left: 7.5px;
    margin-right: 7.5px;
  }
  #home-highlights #highlightsSplide .splide__slide .highlight-card {
    width: 100%;
    transform: scale(0.92);
    transition: transform 0.3s ease;
  }
  #home-highlights #highlightsSplide .splide__slide.is-active .highlight-card {
    transform: scale(1);
  }
}
.highlight-card {
  background-color: #977CEE;
  color: white;
}

.darkmode .highlight-card {
  border: 1px solid #3C3D40;
}
.darkmode .highlights-wrapper .highlight-card__title {
  color: #23232B;
}
.darkmode .highlight-card:hover .highlight-card__project-title {
  color: white;
}
.darkmode .highlight-card:hover .highlight-card__title {
  color: #977CEE;
}

#home-highlights .highlight-card__body {
  min-height: calc(100% - 165px);
}

@media (min-width: 500px) and (max-width: 767px) {
  .highlight-card .highlight-card__project-title {
    font-size: 2.4rem;
  }
  .highlight-card-1 .highlight-card__mockup {
    width: 480px;
  }
  .highlight-card-3 .highlight-card__mockup {
    width: 380px;
  }
}
@media (min-width: 768px) and (max-width: 991px) {
  .highlight-card .highlight-card__project-title {
    font-size: 2rem;
  }
}
.project-title h1 {
  font-weight: normal;
}

.key-steps,
.project-img-wrapper {
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
  border: 1px solid white;
}

.project-img-full-width {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
  border: 1px solid white;
}
.project-img-full-width .project-img-wrapper {
  margin-bottom: 0;
}

.key-steps,
.project-img-full-width {
  background: white;
  padding: 1rem;
}

.project-website {
  margin-bottom: 6rem;
  margin-top: 5rem;
}

.mockups-responsive {
  display: flex;
  gap: 5%;
  padding: 6rem 7rem 6rem 7rem;
  justify-content: space-around;
}
.mockups-responsive .project-img-wrapper img {
  width: 100%;
}

.mockup-small, .mockup-large {
  text-align: center;
}
.mockup-small .project-img-wrapper, .mockup-large .project-img-wrapper {
  margin-bottom: 2rem;
}
.mockup-small .responsive-badge, .mockup-large .responsive-badge {
  white-space: nowrap;
  padding: 8px 20px 10px 20px;
  border: 1px solid white;
  background: #fcfbf0;
  font-size: 1.4rem;
  border-radius: 999px;
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
}
.mockup-small .responsive-badge svg, .mockup-large .responsive-badge svg {
  margin-right: 10px;
}

.key-steps {
  padding: 4rem;
}
.key-steps ul {
  margin-left: 0;
  padding-left: 0;
}
.key-steps ul li {
  padding-left: 3rem;
  position: relative;
  margin-bottom: 2rem;
  list-style: none;
}
.key-steps ul li::before {
  content: "";
  background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="21.502" height="21.511" viewBox="0 0 21.502 21.511"><path id="Path_136" data-name="Path 136" d="M25.468,19.906a15.312,15.312,0,0,0-9.208,9.2.961.961,0,0,1-1.8,0,15.325,15.325,0,0,0-9.239-9.2.962.962,0,0,1,0-1.8,15.408,15.408,0,0,0,9.244-9.253.96.96,0,0,1,1.8,0A15.408,15.408,0,0,0,25.47,18.1a.963.963,0,0,1,0,1.8" transform="translate(-4.589 -8.222)" fill="%23977cee"/></svg>');
  background-size: contain;
  height: 16px;
  width: 16px;
  left: 0rem;
  top: 5px;
  position: absolute;
}

@media (max-width: 767px) {
  .project-page .row .col-md-1 {
    display: none;
  }
  .mockup-large {
    margin-bottom: 4rem;
  }
  .mockups-responsive {
    flex-wrap: wrap;
  }
}
@media (min-width: 992px) {
  .mockups-responsive {
    gap: 10%;
  }
}
@media (min-width: 767px) {
  .project-img-full-width {
    padding: 3rem;
  }
  .key-steps ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 2rem;
    row-gap: 1rem;
    margin-bottom: 0;
  }
  .key-steps ul li {
    margin-bottom: 0;
  }
}
.darkmode .project-img-wrapper {
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
  border: 1px solid #3C3D40;
}
.darkmode .key-steps,
.darkmode .project-img-full-width {
  border-color: #3C3D40;
  color: white;
  background: rgba(60, 61, 64, 0.8);
}
.darkmode .responsive-badge {
  border-color: #3C3D40;
  color: white;
  background: rgba(60, 61, 64, 0.8);
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.5);
}
.darkmode .responsive-badge svg {
  margin-right: 10px;
}

.project-page h3 {
  margin-bottom: 3rem;
}

.tech-tools h1 {
  font-weight: 400;
  margin-bottom: 6rem;
}
.tech-tools blockquote {
  color: #F5AB61;
  margin-bottom: 2rem;
  font-size: 120%;
  font-family: "Obviously", sans-serif;
}

.image-wrapper {
  border-radius: 16px;
  overflow: hidden;
}

.tools-approach-block {
  padding: 3rem;
  background: #F5AB61;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
  border: 1px solid white;
}
.tools-approach-block h3 {
  color: white;
  margin-bottom: 2rem;
}

.tools-approach-block span.underline {
  position: relative;
  font-weight: 600;
}
.tools-approach-block span.underline::after {
  content: "";
  position: absolute;
  width: 100%;
  border-bottom: 2px solid white;
  height: 1px;
  left: 0px;
  bottom: 0px;
}

@media (min-width: 992px) {
  .tech-tools .image-wrapper {
    max-width: 90%;
  }
  .tools-approach-block {
    padding: 4rem 5rem;
    display: grid;
    grid-template-columns: 2fr 3fr;
    column-gap: 4rem;
  }
  .tools-approach-block h3 {
    font-size: 2.8rem;
    margin-bottom: 4rem;
  }
  .tools-approach-block .tools-approach-heading p {
    font-size: 3.4rem;
  }
}
.darkmode .tools-approach-block {
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
  border: 1px solid #3C3D40;
  color: black;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Desktop: show tabs + panels */
.tech-tools__desktop {
  display: block;
}

.tech-tools__mobile {
  display: none;
}

@media (max-width: 900px) {
  .tech-tools__desktop {
    display: none;
  }
  .tech-tools__mobile {
    display: block;
  }
}
/* desktop only */
@media (min-width: 901px) {
  .tool[data-tooltip] {
    position: relative;
  }
  .tool[data-tooltip]:hover::after {
    content: attr(data-tooltip);
    position: absolute;
  }
}
.flag {
  border-radius: 5px;
}
.flag img {
  height: 26px;
  margin-right: 1rem;
}

.footer-acknowledgements {
  font-size: 1.4rem;
  max-width: 70rem;
  justify-content: space-between;
  padding: 2.4rem 2.6rem;
  flex-wrap: wrap;
  border: 1px solid white;
  background: rgba(252, 251, 240, 0.8);
  border-radius: 20px;
  box-shadow: 0px 0px 15px rgba(110, 109, 98, 0.2);
}

.site-info > .row {
  align-items: end;
}

.site-info {
  font-family: "Obviously", sans-serif;
}
.site-info p {
  font-size: 1.3rem;
}

.darkmode footer {
  color: #fcfbf0;
}
.darkmode .footer-acknowledgements {
  border-color: #3C3D40;
  color: #fcfbf0;
  background: rgba(60, 61, 64, 0.8);
}

@media (max-width: 1199px) {
  .footer-acknowledgements {
    gap: 1.5rem;
    margin-bottom: 3rem;
  }
  .flag {
    display: flex;
    align-items: center;
  }
  .flag img {
    height: 30px;
  }
}
footer a {
  text-decoration: underline;
  color: #44BA9B;
}
footer a:hover {
  text-decoration: none;
  color: #44BA9B;
}

@media (min-width: 1200px) {
  .footer-acknowledgements {
    font-size: 1.5rem;
    max-width: 78rem;
  }
}
.slash-green {
  transform: scale(1.2);
  font-size: 5rem;
  padding-right: 1rem;
  transform-origin: bottom;
  color: #44BA9B;
}

/*# sourceMappingURL=custom.css.map */
