@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');


/* =========================================================
   VARIABLES
   ========================================================= */

:root {

  --ink: #0b1220;

  --muted: #667085;

  --blue: #2563eb;

  --blue2: #60a5fa;

  --soft: #f5f7fa;

  --line: #e5eaf0;

  --white: #ffffff;

  --radius: 22px;

  --shadow:
    0 25px 80px rgba(15, 23, 42, 0.11);

}


/* =========================================================
   RESET
   ========================================================= */

* {

  box-sizing: border-box;

  margin: 0;

  padding: 0;

}


html {

  scroll-behavior: smooth;

}


body {

  font-family:
    "DM Sans",
    sans-serif;

  color: var(--ink);

  background:
    var(--white);

  line-height: 1.6;

  overflow-x: hidden;

}


a {

  text-decoration: none;

  color: inherit;

}


button,
input,
textarea {

  font: inherit;

}


/* =========================================================
   CONTAINER
   ========================================================= */

.container {

  width:
    min(
      1180px,
      calc(100% - 40px)
    );

  margin:
    0 auto;

}


/* =========================================================
   HEADER
   ========================================================= */

.site-header {

  position: fixed;

  z-index: 1000;

  top: 0;

  left: 0;

  right: 0;

  background:
    rgba(
      255,
      255,
      255,
      0.86
    );

  backdrop-filter:
    blur(18px);

  border-bottom:
    1px solid
    rgba(
      229,
      234,
      240,
      0.8
    );

}


.nav {

  height: 82px;

  display: flex;

  align-items: center;

  justify-content:
    space-between;

}


/* =========================================================
   LOGO
   ========================================================= */

.logo {

  font-family:
    Manrope,
    sans-serif;

  font-weight: 800;

  line-height: 0.85;

  letter-spacing: -0.04em;

}


.logo b {

  font-size: 18px;

  display: block;

}


.logo small {

  display: block;

  color:
    var(--blue);

  font-size: 9px;

  letter-spacing: 0.18em;

  margin-top: 6px;

}


/* =========================================================
   NAVIGATION
   ========================================================= */

.nav-links {

  display: flex;

  align-items: center;

  gap: 30px;

}


.nav-links a {

  font-size: 13px;

  font-weight: 700;

  color: #475467;

  transition:
    0.2s;

}


.nav-links a:hover,
.nav-links a.active {

  color:
    var(--blue);

}


.nav-links .nav-cta {

  background:
    var(--ink);

  color:
    #fff;

  padding:
    12px 18px;

  border-radius:
    10px;

}


.nav-links .nav-cta:hover {

  background:
    var(--blue);

  color:
    #fff;

}


/* =========================================================
   MOBILE MENU
   ========================================================= */

.menu {

  display: none;

  border: 0;

  background: none;

  width: 42px;

  height: 42px;

}


.menu i {

  display: block;

  width: 22px;

  height: 2px;

  background:
    var(--ink);

  margin:
    5px auto;

}


/* =========================================================
   HERO
   ========================================================= */

.hero {

  padding:
    175px 0 115px;

  min-height:
    820px;

  display: flex;

  align-items: center;

}


.hero-grid {

  display: grid;

  grid-template-columns:
    1fr 0.9fr;

  gap: 75px;

  align-items: center;

}


.eyebrow {

  display: flex;

  align-items: center;

  gap: 9px;

  color:
    var(--blue);

  font-size: 11px;

  font-weight: 800;

  letter-spacing: 0.13em;

  margin-bottom: 20px;

}


.eyebrow span {

  width: 7px;

  height: 7px;

  border-radius: 50%;

  background:
    var(--blue);

  display: block;

}


h1,
h2,
h3 {

  font-family:
    Manrope,
    sans-serif;

  letter-spacing:
    -0.045em;

  line-height:
    1.05;

}


h1 {

  font-size:
    clamp(
      48px,
      6vw,
      78px
    );

  font-weight:
    800;

}


h2 {

  font-size:
    clamp(
      38px,
      4.5vw,
      60px
    );

  font-weight:
    800;

}


em {

  font-style:
    normal;

  color:
    var(--blue);

}


.lead {

  font-size:
    18px;

  color:
    var(--muted);

  max-width:
    620px;

  margin-top:
    25px;

  line-height:
    1.75;

}


/* =========================================================
   BUTTONS
   ========================================================= */

.actions {

  display: flex;

  gap: 12px;

  margin-top:
    34px;

}


.btn {

  min-height:
    52px;

  padding:
    0 22px;

  border-radius:
    11px;

  display:
    inline-flex;

  align-items:
    center;

  justify-content:
    center;

  gap: 12px;

  font-size:
    13px;

  font-weight:
    800;

  border:
    1px solid
    transparent;

  transition:
    0.22s;

}


.btn:hover {

  transform:
    translateY(-2px);

}


.btn-primary {

  background:
    var(--blue);

  color:
    #fff;

  box-shadow:
    0 14px 35px
    rgba(
      37,
      99,
      235,
      0.2
    );

}


.btn-primary:hover {

  background:
    #1d4ed8;

}


.btn-ghost {

  border-color:
    var(--line);

  background:
    #fff;

}


.btn-light {

  background:
    #fff;

  color:
    var(--ink);

}


/* =========================================================
   MINI STATS
   ========================================================= */

.mini-stats {

  display: flex;

  gap: 20px;

  margin-top:
    55px;

}


.mini-stats div {

  display: flex;

  flex-direction:
    column;

  padding-right:
    20px;

  border-right:
    1px solid
    var(--line);

}


.mini-stats div:last-child {

  border:
    0;

}


.mini-stats strong {

  font:
    800 15px
    Manrope;

}


.mini-stats span {

  font-size:
    10px;

  color:
    #8490a0;

  margin-top:
    2px;

}


/* =========================================================
   HERO MOCKUP
   ========================================================= */

.hero-showcase {

  position:
    relative;

  min-height:
    520px;

  display:
    flex;

  align-items:
    center;

  justify-content:
    center;

}


.showcase-glow {

  position:
    absolute;

  width:
    430px;

  height:
    430px;

  border-radius:
    50%;

  background:
    rgba(
      37,
      99,
      235,
      0.09
    );

  filter:
    blur(75px);

}


.browser {

  position:
    relative;

  z-index:
    2;

  width:
    490px;

  border-radius:
    20px;

  overflow:
    hidden;

  background:
    #fff;

  box-shadow:
    var(--shadow);

  transform:
    rotate(-2deg);

}


.browser-top {

  height:
    43px;

  background:
    #f1f4f7;

  display:
    flex;

  align-items:
    center;

  gap:
    18px;

  padding:
    0 15px;

  color:
    #a1aab8;

  font-size:
    9px;

}


.browser-dots {

  display:
    flex;

  gap:
    5px;

}


.browser-dots i {

  width:
    8px;

  height:
    8px;

  border-radius:
    50%;

  background:
    #cbd5e1;

}


.browser-top > span {

  background:
    #fff;

  border-radius:
    6px;

  text-align:
    center;

  padding:
    5px;

  flex:
    1;

}


.mock-site {

  min-height:
    410px;

  background:
    linear-gradient(
      145deg,
      #fff,
      #f6f9fd
    );

  padding-bottom:
    22px;

}


.mock-nav {

  height:
    62px;

  display:
    flex;

  align-items:
    center;

  justify-content:
    space-between;

  padding:
    0 35px;

}


.mock-nav b {

  font-size:
    10px;

  line-height:
    0.8;

}


.mock-nav small {

  font-size:
    7px;

  color:
    var(--blue);

  letter-spacing:
    0.15em;

}


.mock-nav div {

  display:
    flex;

  gap:
    7px;

}


.mock-nav i {

  width:
    25px;

  height:
    4px;

  border-radius:
    4px;

  background:
    #dce3eb;

}


.mock-body {

  padding:
    58px 50px;

}


.mock-body > p {

  font-size:
    7px;

  font-weight:
    800;

  letter-spacing:
    0.18em;

  color:
    var(--blue);

}


.mock-body h3 {

  font-size:
    35px;

  margin-top:
    12px;

}


.mock-body h3 strong {

  color:
    var(--blue);

}


.mock-lines i {

  display:
    block;

  width:
    80%;

  height:
    6px;

  background:
    #e2e8f0;

  border-radius:
    5px;

  margin-top:
    22px;

}


.mock-lines i + i {

  width:
    58%;

  margin-top:
    8px;

}


.mock-body button {

  border:
    0;

  background:
    var(--blue);

  color:
    #fff;

  border-radius:
    7px;

  padding:
    10px 17px;

  margin-top:
    24px;

  font-size:
    9px;

  font-weight:
    800;

}


.mock-cards {

  display:
    flex;

  gap:
    10px;

  padding:
    0 50px;

}


.mock-cards i {

  height:
    48px;

  flex:
    1;

  background:
    #edf2f7;

  border-radius:
    9px;

}


/* =========================================================
   FLOATING CARDS
   ========================================================= */

.float-card {

  position:
    absolute;

  z-index:
    4;

  background:
    rgba(
      255,
      255,
      255,
      0.97
    );

  border:
    1px solid
    #edf1f5;

  box-shadow:
    0 18px 45px
    rgba(
      15,
      23,
      42,
      0.12
    );

  padding:
    12px 15px;

  border-radius:
    12px;

  display:
    flex;

  gap:
    10px;

  align-items:
    center;

}


.float-card > span {

  width:
    29px;

  height:
    29px;

  border-radius:
    8px;

  background:
    #eff6ff;

  color:
    var(--blue);

  display:
    grid;

  place-items:
    center;

}


.float-card b {

  display:
    block;

  font-size:
    10px;

}


.float-card small {

  display:
    block;

  color:
    #8a96a5;

  font-size:
    8px;

}


.float-one {

  left:
    -8px;

  bottom:
    72px;

}


.float-two {

  right:
    -5px;

  top:
    85px;

}


/* =========================================================
   SECTIONS
   ========================================================= */

.section {

  padding:
    120px 0;

}


.soft {

  background:
    var(--soft);

}


.narrow {

  max-width:
    850px;

}


.statement {

  padding:
    145px 0;

}


.statement h2 {

  font-size:
    clamp(
      42px,
      5vw,
      68px
    );

}


.section-head {

  display:
    flex;

  align-items:
    end;

  justify-content:
    space-between;

  margin-bottom:
    55px;

}


.text-link {

  font-size:
    13px;

  font-weight:
    800;

  color:
    var(--blue);

}


/* =========================================================
   SERVICE ROWS
   ========================================================= */

.service-preview {

  border-top:
    1px solid
    var(--line);

}


.service-row {

  display:
    grid;

  grid-template-columns:
    80px 1fr 40px;

  align-items:
    center;

  gap:
    25px;

  padding:
    28px 0;

  border-bottom:
    1px solid
    var(--line);

  transition:
    0.2s;

}


.service-row:hover {

  padding-left:
    12px;

}


.service-row > span {

  font-size:
    11px;

  color:
    #98a2b3;

  font-weight:
    800;

}


.service-row h3 {

  font-size:
    24px;

}


.service-row p {

  color:
    var(--muted);

  font-size:
    13px;

  margin-top:
    4px;

}


.service-row > b {

  font-size:
    20px;

  color:
    var(--blue);

}


/* =========================================================
   CTA
   ========================================================= */

.cta-panel {

  background:
    var(--ink);

  color:
    #fff;

  border-radius:
    28px;

  padding:
    70px;

  display:
    flex;

  align-items:
    center;

  justify-content:
    space-between;

  gap:
    40px;

}


.cta-panel .eyebrow {

  color:
    var(--blue2);

}


.cta-panel .eyebrow span {

  background:
    var(--blue2);

}


.cta-panel p:not(.eyebrow) {

  color:
    #9aa6b7;

  margin-top:
    17px;

}


.cta-panel h2 {

  font-size:
    clamp(
      40px,
      4vw,
      58px
    );

}


/* =========================================================
   PAGE HERO
   ========================================================= */

.page-hero {

  padding:
    180px 0 95px;

  background:
    linear-gradient(
      180deg,
      #f8fafc 0,
      #fff 100%
    );

}


.page-hero h1 {

  max-width:
    900px;

}


.page-hero .lead {

  max-width:
    700px;

}


/* =========================================================
   BIG SERVICES
   ========================================================= */

.big-services {

  border-top:
    1px solid
    var(--line);

}


.big-service {

  display:
    grid;

  grid-template-columns:
    90px 1fr;

  gap:
    30px;

  padding:
    65px 0;

  border-bottom:
    1px solid
    var(--line);

}


.big-service > span {

  font:
    800 12px
    Manrope;

  color:
    #98a2b3;

}


.big-service h2 {

  font-size:
    44px;

  margin:
    8px 0 18px;

}


.big-service > div > p:not(.eyebrow) {

  max-width:
    650px;

  color:
    var(--muted);

  font-size:
    16px;

}


.big-service ul {

  display:
    flex;

  flex-wrap:
    wrap;

  gap:
    10px 25px;

  margin-top:
    25px;

  list-style:
    none;

}


.big-service li {

  font-size:
    12px;

  font-weight:
    700;

}


.big-service li:before {

  content:
    "✓";

  color:
    var(--blue);

  margin-right:
    7px;

}


/* =========================================================
   CENTERED
   ========================================================= */

.centered {

  text-align:
    center;

}


.centered .eyebrow {

  justify-content:
    center;

}


.centered h2 {

  margin-bottom:
    28px;

}


/* =========================================================
   PORTFOLIO
   ========================================================= */

.portfolio-grid {

  display:
    grid;

  grid-template-columns:
    1fr 1fr;

  gap:
    22px;

}


.project {

  border-radius:
    22px;

  overflow:
    hidden;

  border:
    1px solid
    var(--line);

}


.project:nth-child(3) {

  grid-column:
    1 / -1;

}


.project-art {

  min-height:
    410px;

  display:
    grid;

  place-items:
    center;

  padding:
    40px;

}


.project-dark {

  background:
    #0b1220;

  color:
    #fff;

}


.project-blue {

  background:
    #eaf2ff;

}


.project-light {

  background:
    #f5f7fa;

}


.project-window {

  width:
    min(
      390px,
      90%
    );

  min-height:
    270px;

  border-radius:
    13px;

  background:
    #121c2e;

  box-shadow:
    0 25px 60px
    rgba(
      0,
      0,
      0,
      0.2
    );

  padding:
    35px;

  position:
    relative;

}


.project-window > span {

  display:
    inline-block;

  width:
    7px;

  height:
    7px;

  border-radius:
    50%;

  background:
    #475569;

  margin-right:
    4px;

}


.project-window h3 {

  font-size:
    40px;

  margin-top:
    60px;

}


.project-window h3 em {

  color:
    #60a5fa;

}


.project-window.light {

  background:
    #fff;

  color:
    var(--ink);

}


.project-window.light h3 {

  margin-top:
    50px;

}


.project-window button {

  margin-top:
    25px;

  border:
    0;

  background:
    var(--blue);

  color:
    #fff;

  padding:
    10px 15px;

  border-radius:
    7px;

}


.project-window.minimal {

  background:
    #fff;

  color:
    var(--ink);

  box-shadow:
    0 20px 60px
    rgba(
      15,
      23,
      42,
      0.08
    );

}


.project-window.minimal small {

  font-size:
    8px;

  letter-spacing:
    0.15em;

}


.project-window.minimal h3 {

  margin-top:
    70px;

}


.project-info {

  padding:
    25px 28px;

}


.project-info p {

  font-size:
    10px;

  color:
    #98a2b3;

  font-weight:
    800;

}


.project-info h2 {

  font-size:
    24px;

  margin-top:
    7px;

}


.project-info span {

  font-size:
    12px;

  color:
    var(--muted);

}


/* =========================================================
   ABOUT
   ========================================================= */

.about-layout {

  display:
    grid;

  grid-template-columns:
    0.8fr 1.2fr;

  gap:
    110px;

  align-items:
    center;

}


.portrait-card {

  height:
    510px;

  max-width:
    380px;

  border-radius:
    25px;

  background:
    var(--ink);

  color:
    #fff;

  padding:
    32px;

  display:
    flex;

  flex-direction:
    column;

  justify-content:
    space-between;

  transform:
    rotate(-2deg);

  box-shadow:
    var(--shadow);

}


.portrait-letter {

  height:
    250px;

  width:
    250px;

  border:
    1px solid
    #263248;

  border-radius:
    50%;

  display:
    grid;

  place-items:
    center;

  margin:
    auto;

  font:
    800 130px
    Manrope;

  color:
    #60a5fa;

}


.portrait-card b {

  font:
    800 25px
    Manrope;

  display:
    block;

}


.portrait-card div:last-child span {

  font-size:
    12px;

  color:
    #94a3b8;

}


.about-text h2 {

  font-size:
    clamp(
      38px,
      4vw,
      57px
    );

}


.about-text > p:not(.eyebrow) {

  font-size:
    16px;

  color:
    var(--muted);

  margin-top:
    24px;

  line-height:
    1.8;

}


.about-text .text-link {

  display:
    inline-block;

  margin-top:
    30px;

}


/* =========================================================
   VALUES
   ========================================================= */

.values {

  display:
    grid;

  grid-template-columns:
    repeat(
      3,
      1fr
    );

  gap:
    20px;

}


.values div {

  background:
    #fff;

  border:
    1px solid
    var(--line);

  padding:
    35px;

  border-radius:
    18px;

}


.values span {

  font:
    800 11px
    Manrope;

  color:
    var(--blue);

}


.values h3 {

  font-size:
    23px;

  margin-top:
    50px;

}


.values p {

  font-size:
    13px;

  color:
    var(--muted);

  margin-top:
    10px;

}


/* =========================================================
   CONTACT
   ========================================================= */

.contact-grid {

  display:
    grid;

  grid-template-columns:
    0.9fr 1.1fr;

  gap:
    100px;

}


.contact-info h2 {

  font-size:
    clamp(
      42px,
      4vw,
      58px
    );

}


.contact-info > p:not(.eyebrow) {

  color:
    var(--muted);

  font-size:
    16px;

  margin-top:
    22px;

}


.contact-detail {

  display:
    grid;

  grid-template-columns:
    1fr auto;

  gap:
    3px 20px;

  padding:
    22px 0;

  border-bottom:
    1px solid
    var(--line);

  margin-top:
    25px;

  color:
    var(--blue);

}


.contact-detail small {

  grid-column:
    1 / -1;

  color:
    #98a2b3;

  font-size:
    9px;

  font-weight:
    800;

  letter-spacing:
    0.12em;

}


.contact-detail b {

  font-size:
    14px;

  color:
    var(--ink);

}


.contact-form {

  background:
    var(--soft);

  padding:
    35px;

  border-radius:
    20px;

}


.contact-form label {

  display:
    block;

  font-size:
    11px;

  font-weight:
    800;

  margin-bottom:
    18px;

}


.contact-form input,
.contact-form textarea {

  display:
    block;

  width:
    100%;

  margin-top:
    7px;

  border:
    1px solid
    var(--line);

  background:
    #fff;

  border-radius:
    9px;

  padding:
    13px;

  outline:
    none;

}


.contact-form input:focus,
.contact-form textarea:focus {

  border-color:
    var(--blue);

}


.contact-form textarea {

  resize:
    vertical;

}


.form-note {

  font-size:
    10px;

  color:
    #8a96a5;

  margin-top:
    12px;

}


/* =========================================================
   FAQ
   ========================================================= */

.faq-list {

  max-width:
    850px;

}


.faq-list details {

  border-top:
    1px solid
    var(--line);

  padding:
    25px 0;

}


.faq-list details:last-child {

  border-bottom:
    1px solid
    var(--line);

}


.faq-list summary {

  list-style:
    none;

  cursor:
    pointer;

  display:
    flex;

  justify-content:
    space-between;

  font:
    700 19px
    Manrope;

}


.faq-list summary::-webkit-details-marker {

  display:
    none;

}


.faq-list summary span {

  color:
    var(--blue);

  font-size:
    24px;

}


.faq-list details[open]
summary span {

  transform:
    rotate(45deg);

}


.faq-list details p {

  color:
    var(--muted);

  max-width:
    700px;

  padding-top:
    15px;

  font-size:
    14px;

}


/* =========================================================
   FOOTER
   ========================================================= */

.site-footer {

  background:
    #070d17;

  color:
    #fff;

}


.footer {

  padding:
    70px 0 30px;

  display:
    grid;

  grid-template-columns:
    1.5fr 1fr 1fr;

  gap:
    60px;

}


.footer p {

  color:
    #64748b;

  font-size:
    12px;

  margin-top:
    18px;

  max-width:
    260px;

}


.footer-col {

  display:
    flex;

  flex-direction:
    column;

  gap:
    11px;

}


.footer-col b {

  font-size:
    10px;

  letter-spacing:
    0.12em;

  color:
    #64748b;

  margin-bottom:
    5px;

}


.footer-col a {

  font-size:
    12px;

  color:
    #94a3b8;

}


.footer-col a:hover {

  color:
    #fff;

}


.footer-bottom {

  border-top:
    1px solid
    #172033;

  padding-top:
    22px;

  margin-top:
    35px;

  color:
    #475569;

  font-size:
    10px;

}


/* =========================================================
   REVEAL ANIMATION
   ========================================================= */

.reveal {

  opacity:
    0;

  transform:
    translateY(18px);

  transition:
    opacity 0.65s ease,
    transform 0.65s ease;

}


.reveal.visible {

  opacity:
    1;

  transform:
    none;

}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

  .nav-links {

    position:
      fixed;

    top:
      82px;

    left:
      15px;

    right:
      15px;

    background:
      #fff;

    border:
      1px solid
      var(--line);

    border-radius:
      16px;

    padding:
      18px;

    display:
      flex;

    flex-direction:
      column;

    align-items:
      stretch;

    gap:
      0;

    box-shadow:
      var(--shadow);

    opacity:
      0;

    visibility:
      hidden;

    transform:
      translateY(-8px);

    transition:
      0.2s;

  }


  .nav-links.open {

    opacity:
      1;

    visibility:
      visible;

    transform:
      none;

  }


  .nav-links a {

    padding:
      13px;

    border-bottom:
      1px solid
      #f1f4f7;

  }


  .nav-links .nav-cta {

    text-align:
      center;

    margin-top:
      8px;

    border:
      0;

  }


  .menu {

    display:
      block;

  }


  .hero-grid {

    grid-template-columns:
      1fr;

  }


  .hero-copy {

    text-align:
      center;

  }


  .hero-copy .eyebrow,
  .hero-copy .actions,
  .hero-copy .mini-stats {

    justify-content:
      center;

  }


  .hero-copy .lead {

    margin-left:
      auto;

    margin-right:
      auto;

  }


  .hero-showcase {

    margin-top:
      20px;

  }


  .portfolio-grid {

    grid-template-columns:
      1fr;

  }


  .project:nth-child(3) {

    grid-column:
      auto;

  }


  .about-layout,
  .contact-grid {

    grid-template-columns:
      1fr;

    gap:
      65px;

  }


  .portrait-card {

    margin:
      auto;

  }


  .footer {

    grid-template-columns:
      1fr 1fr;

  }


  .footer-brand {

    grid-column:
      1 / -1;

  }


  .big-service {

    grid-template-columns:
      60px 1fr;

  }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

  .container {

    width:
      calc(
        100% - 30px
      );

  }


  .nav {

    height:
      74px;

  }


  .site-header {

    height:
      74px;

  }


  .nav-links {

    top:
      74px;

  }


  .hero {

    padding:
      135px 0 75px;

    min-height:
      auto;

  }


  .hero h1 {

    font-size:
      44px;

  }


  .lead {

    font-size:
      16px;

  }


  .actions {

    flex-direction:
      column;

  }


  .actions .btn {

    width:
      100%;

  }


  .mini-stats {

    gap:
      12px;

  }


  .browser {

    width:
      100%;

    transform:
      none;

  }


  .float-card {

    display:
      none;

  }


  .hero-showcase {

    min-height:
      390px;

  }


  .mock-body {

    padding:
      45px 30px;

  }


  .mock-cards {

    padding:
      0 30px;

  }


  .mock-body h3 {

    font-size:
      29px;

  }


  .section {

    padding:
      85px 0;

  }


  .statement {

    padding:
      90px 0;

  }


  .section-head {

    display:
      block;

  }


  .section-head .text-link {

    display:
      inline-block;

    margin-top:
      20px;

  }


  .service-row {

    grid-template-columns:
      45px 1fr 25px;

  }


  .service-row h3 {

    font-size:
      20px;

  }


  .page-hero {

    padding:
      140px 0 75px;

  }


  .page-hero h1 {

    font-size:
      45px;

  }


  .big-service {

    grid-template-columns:
      1fr;

    padding:
      45px 0;

  }


  .big-service > span {

    margin-bottom:
      5px;

  }


  .big-service h2 {

    font-size:
      36px;

  }


  .cta-panel {

    padding:
      40px 28px;

    display:
      block;

  }


  .cta-panel .btn {

    margin-top:
      25px;

    width:
      100%;

  }


  .values {

    grid-template-columns:
      1fr;

  }


  .portrait-card {

    height:
      430px;

    width:
      100%;

  }


  .portrait-letter {

    height:
      190px;

    width:
      190px;

    font-size:
      100px;

  }


  .contact-grid {

    gap:
      45px;

  }


  .contact-form {

    padding:
      22px;

  }


  .footer {

    grid-template-columns:
      1fr;

  }


  .footer-brand {

    grid-column:
      auto;

  }

}

/* =========================================================
   MOBILE ACCESSIBILITY + POLISH UPDATE
   Added without removing or replacing the original design.
   ========================================================= */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-width: 320px;
}

img,
svg,
video,
canvas {
  max-width: 100%;
  height: auto;
}

button,
a,
input,
textarea,
select,
summary {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}

/* Better hamburger button for the EXISTING .menu i markup */
.menu {
  position: relative;
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: background .2s ease, transform .2s ease, border-color .2s ease;
}

.menu:hover {
  background: #f8fafc;
}

.menu:active {
  transform: scale(.96);
}

.menu i {
  width: 21px;
  height: 2px;
  margin: 5px auto;
  border-radius: 99px;
  transition: transform .25s ease, opacity .2s ease;
}

.menu.open i:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.menu.open i:nth-child(2) {
  opacity: 0;
}

.menu.open i:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Make important controls comfortable to tap */
.btn,
.nav-links a,
.text-link,
.contact-detail,
.footer-col a,
.faq-list summary {
  min-height: 44px;
}

/* =========================================================
   IMPROVED TABLET / PHONE NAVIGATION
   ========================================================= */

@media (max-width: 900px) {

  body.menu-open {
    overflow: hidden;
  }

  .nav-links {
    top: 82px;
    left: 12px;
    right: 12px;
    max-height: calc(100dvh - 96px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 12px;
    border-radius: 18px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 24px 70px rgba(15,23,42,.16);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
  }

  .nav-links a {
    display: flex;
    align-items: center;
    min-height: 50px;
    padding: 13px 15px;
    border-bottom: 0;
    border-radius: 11px;
    font-size: 15px;
  }

  .nav-links a:hover,
  .nav-links a.active {
    background: #f1f5f9;
    color: var(--blue);
  }

  .nav-links .nav-cta {
    justify-content: center;
    min-height: 52px;
    margin-top: 6px;
    background: var(--ink);
    color: #fff;
    border-radius: 12px;
  }

  .nav-links .nav-cta:hover,
  .nav-links .nav-cta.active {
    background: var(--blue);
    color: #fff;
  }

  .hero-grid {
    gap: 45px;
  }

  .hero-copy {
    max-width: 760px;
    margin: 0 auto;
  }

  .hero-showcase {
    width: 100%;
  }
}

/* =========================================================
   PHONE LAYOUT
   ========================================================= */

@media (max-width: 600px) {

  .container {
    width: calc(100% - 30px);
  }

  .site-header,
  .nav {
    height: 74px;
  }

  .nav-links {
    top: 74px;
    max-height: calc(100dvh - 88px);
  }

  .logo b {
    font-size: 17px;
  }

  .logo small {
    font-size: 8px;
  }

  /* HERO */
  .hero {
    padding: 125px 0 72px;
    min-height: auto;
  }

  .hero-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .hero-copy {
    text-align: left;
  }

  .hero-copy .eyebrow,
  .hero-copy .actions,
  .hero-copy .mini-stats {
    justify-content: flex-start;
  }

  .hero h1 {
    font-size: clamp(38px, 11vw, 52px);
    line-height: 1;
  }

  .lead {
    font-size: 16px;
    line-height: 1.7;
  }

  .actions {
    flex-direction: column;
    width: 100%;
  }

  .actions .btn {
    width: 100%;
    min-height: 54px;
  }

  .mini-stats {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
  }

  .mini-stats div {
    min-width: 0;
    padding: 0 10px;
  }

  .mini-stats div:first-child {
    padding-left: 0;
  }

  .mini-stats div:last-child {
    padding-right: 0;
  }

  .mini-stats strong {
    font-size: 13px;
  }

  .mini-stats span {
    font-size: 9px;
    line-height: 1.3;
  }

  /* HERO MOCKUP */
  .hero-showcase {
    min-height: 350px;
    margin-top: 0;
  }

  .showcase-glow {
    width: 280px;
    height: 280px;
    filter: blur(65px);
  }

  .browser {
    width: 100%;
    max-width: 520px;
    transform: none;
    border-radius: 16px;
  }

  .browser-top {
    height: 38px;
    padding: 0 12px;
    gap: 10px;
  }

  .browser-dots {
    gap: 4px;
  }

  .browser-dots i {
    width: 7px;
    height: 7px;
  }

  .mock-site {
    min-height: 330px;
  }

  .mock-nav {
    height: 52px;
    padding: 0 22px;
  }

  .mock-body {
    padding: 38px 24px;
  }

  .mock-body h3 {
    font-size: clamp(25px, 7vw, 32px);
  }

  .mock-cards {
    padding: 0 24px;
    gap: 7px;
  }

  .mock-cards i {
    height: 38px;
  }

  .float-card {
    display: none;
  }

  /* SECTIONS */
  .section {
    padding: 72px 0;
  }

  .statement {
    padding: 78px 0;
  }

  .statement h2,
  .section-head h2 {
    font-size: clamp(32px, 9vw, 46px);
    line-height: 1.05;
  }

  .section-head {
    display: block;
    margin-bottom: 36px;
  }

  .section-head .text-link {
    display: inline-flex;
    align-items: center;
    margin-top: 14px;
    padding: 8px 0;
  }

  /* SERVICE ROWS */
  .service-row {
    grid-template-columns: 34px minmax(0, 1fr) 25px;
    gap: 10px;
    padding: 22px 0;
  }

  .service-row h3 {
    font-size: 19px;
  }

  .service-row p {
    font-size: 13px;
    line-height: 1.55;
  }

  /* PAGE HERO */
  .page-hero {
    padding: 130px 0 68px;
  }

  .page-hero h1 {
    font-size: clamp(38px, 11vw, 52px);
    line-height: 1;
  }

  /* SERVICES */
  .big-service {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 42px 0;
  }

  .big-service h2 {
    font-size: clamp(31px, 8vw, 40px);
  }

  .big-service ul {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  /* PORTFOLIO */
  .portfolio-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .project:nth-child(3) {
    grid-column: auto;
  }

  .project-art {
    min-height: 270px;
    padding: 22px;
  }

  .project-window {
    width: 100%;
    min-height: 220px;
    padding: 24px;
  }

  .project-window h3 {
    font-size: clamp(29px, 8vw, 39px);
  }

  .project-info {
    padding: 20px 21px;
  }

  /* ABOUT */
  .about-layout,
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .portrait-card {
    width: 100%;
    max-width: 390px;
    height: 430px;
    margin: auto;
  }

  .portrait-letter {
    width: 190px;
    height: 190px;
    font-size: 100px;
  }

  .about-text h2 {
    font-size: clamp(31px, 8vw, 44px);
  }

  .about-text > p:not(.eyebrow) {
    font-size: 15px;
    line-height: 1.75;
  }

  /* VALUES */
  .values {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .values div {
    padding: 27px;
  }

  .values h3 {
    margin-top: 34px;
  }

  /* CONTACT */
  .contact-info h2 {
    font-size: clamp(34px, 9vw, 50px);
  }

  .contact-info > p:not(.eyebrow) {
    font-size: 15px;
    line-height: 1.7;
  }

  .contact-detail {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 12px;
    min-height: 68px;
    padding: 18px 0;
  }

  .contact-detail b {
    overflow-wrap: anywhere;
  }

  .contact-form {
    padding: 20px;
    border-radius: 18px;
  }

  .contact-form input,
  .contact-form textarea {
    min-height: 50px;
    font-size: 16px;
    border-radius: 10px;
  }

  .contact-form textarea {
    min-height: 150px;
  }

  .contact-form .btn {
    width: 100%;
    min-height: 54px;
  }

  /* FAQ */
  .faq-list details {
    padding: 21px 0;
  }

  .faq-list summary {
    gap: 14px;
    min-height: 48px;
    align-items: center;
    font-size: 17px;
    line-height: 1.4;
  }

  .faq-list summary span {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
  }

  .faq-list details p {
    font-size: 14px;
    line-height: 1.7;
  }

  /* CTA */
  .cta-panel {
    padding: 34px 23px;
    border-radius: 20px;
  }

  .cta-panel h2 {
    font-size: clamp(31px, 8vw, 44px);
  }

  .cta-panel .btn {
    width: 100%;
    min-height: 54px;
    margin-top: 22px;
  }

  /* FOOTER */
  .footer {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 55px 0 25px;
  }

  .footer-brand {
    grid-column: auto;
  }

  .footer-col a {
    display: flex;
    align-items: center;
    min-height: 42px;
  }

  .footer-bottom {
    line-height: 1.6;
  }
}

/* =========================================================
   VERY SMALL PHONES
   ========================================================= */

@media (max-width: 390px) {

  .container {
    width: calc(100% - 26px);
  }

  .hero h1,
  .page-hero h1 {
    font-size: 37px;
  }

  .section {
    padding: 60px 0;
  }

  .statement {
    padding: 66px 0;
  }

  .service-row {
    grid-template-columns: 28px minmax(0, 1fr) 22px;
    gap: 8px;
  }

  .service-row h3 {
    font-size: 18px;
  }

  .service-row p {
    font-size: 12px;
  }

  .project-art {
    min-height: 245px;
    padding: 17px;
  }

  .project-window {
    padding: 19px;
  }

  .contact-form {
    padding: 17px;
  }
}

/* =========================================================
   SAFE AREA + REDUCED MOTION
   ========================================================= */

@supports (padding: max(0px)) {
  .site-header {
    padding-top: env(safe-area-inset-top);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}

/* =========================================================
   FINAL MOBILE NAVIGATION FIX
   ========================================================= */

@media (max-width: 900px) {

  .site-header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 74px !important;
    z-index: 9999 !important;
  }

  .site-header .nav {
    height: 74px !important;
    width: calc(100% - 30px) !important;
    margin: 0 auto !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  .site-header .logo {
    display: block !important;

    font-family:
      "Manrope",
      Arial,
      sans-serif !important;

    font-weight: 800 !important;
    line-height: 0.85 !important;
    letter-spacing: -0.04em !important;

    text-decoration: none !important;
  }

  .site-header .logo b {
    display: block !important;

    font-family:
      "Manrope",
      Arial,
      sans-serif !important;

    font-size: 18px !important;
    font-weight: 800 !important;

    color: #0b1220 !important;

    text-decoration: none !important;
  }

  .site-header .logo small {
    display: block !important;

    font-family:
      "Manrope",
      Arial,
      sans-serif !important;

    font-size: 9px !important;
    font-weight: 800 !important;

    color: #2563eb !important;

    letter-spacing: 0.18em !important;

    margin-top: 6px !important;

    text-decoration: none !important;
  }


  /* -----------------------------------------
     HAMBURGER
     ----------------------------------------- */

  .site-header .menu {
    display: flex !important;

    width: 46px !important;
    height: 46px !important;

    min-width: 46px !important;
    min-height: 46px !important;

    padding: 0 !important;

    margin: 0 !important;

    align-items: center !important;
    justify-content: center !important;

    flex-direction: column !important;

    gap: 5px !important;

    border:
      1px solid #e5eaf0 !important;

    border-radius: 12px !important;

    background: #ffffff !important;

    cursor: pointer !important;

    appearance: none !important;
    -webkit-appearance: none !important;
  }


  .site-header .menu i {
    display: block !important;

    width: 21px !important;
    height: 2px !important;

    margin: 0 !important;

    background: #0b1220 !important;

    border-radius: 99px !important;

    transition:
      transform 0.2s ease,
      opacity 0.2s ease !important;
  }


  .site-header .menu.open i:nth-child(1) {
    transform:
      translateY(7px)
      rotate(45deg) !important;
  }

  .site-header .menu.open i:nth-child(2) {
    opacity: 0 !important;
  }

  .site-header .menu.open i:nth-child(3) {
    transform:
      translateY(-7px)
      rotate(-45deg) !important;
  }


  /* -----------------------------------------
     MOBILE NAV PANEL
     ----------------------------------------- */

  .site-header .nav-links {

    position: fixed !important;

    top: 84px !important;

    left: 15px !important;
    right: 15px !important;

    width: auto !important;

    max-height:
      calc(100dvh - 100px) !important;

    overflow-y: auto !important;

    display: flex !important;

    flex-direction: column !important;

    align-items: stretch !important;

    gap: 4px !important;

    padding: 10px !important;

    background:
      rgba(255, 255, 255, 0.98) !important;

    border:
      1px solid #e5eaf0 !important;

    border-radius: 18px !important;

    box-shadow:
      0 25px 70px
      rgba(15, 23, 42, 0.16) !important;

    opacity: 0 !important;

    visibility: hidden !important;

    pointer-events: none !important;

    transform:
      translateY(-10px) !important;

    transition:
      opacity 0.2s ease,
      transform 0.2s ease,
      visibility 0.2s ease !important;

    z-index: 10000 !important;
  }


  .site-header .nav-links.open {

    opacity: 1 !important;

    visibility: visible !important;

    pointer-events: auto !important;

    transform:
      translateY(0) !important;
  }


  /* -----------------------------------------
     MENU LINKS
     ----------------------------------------- */

  .site-header .nav-links a {

    display: flex !important;

    align-items: center !important;

    width: 100% !important;

    min-height: 52px !important;

    padding:
      14px 16px !important;

    margin: 0 !important;

    border: 0 !important;

    border-radius: 11px !important;

    background: transparent !important;

    font-family:
      "DM Sans",
      Arial,
      sans-serif !important;

    font-size: 15px !important;

    line-height: 1.2 !important;

    font-weight: 700 !important;

    color: #0b1220 !important;

    text-decoration: none !important;

    box-shadow: none !important;

    transition:
      background 0.15s ease,
      color 0.15s ease !important;
  }


  .site-header .nav-links a:hover,
  .site-header .nav-links a:focus,
  .site-header .nav-links a.active {

    background:
      #f1f5f9 !important;

    color:
      #2563eb !important;

    text-decoration: none !important;
  }


  /* -----------------------------------------
     CONTACT BUTTON
     ----------------------------------------- */

  .site-header .nav-links .nav-cta {

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    min-height: 52px !important;

    margin-top: 6px !important;

    background:
      #0b1220 !important;

    color:
      #ffffff !important;

    border-radius:
      11px !important;
  }


  .site-header .nav-links .nav-cta:hover,
  .site-header .nav-links .nav-cta:focus {

    background:
      #2563eb !important;

    color:
      #ffffff !important;
  }


  /* -----------------------------------------
     STOP PAGE MOVING WHEN MENU IS OPEN
     ----------------------------------------- */

  body.menu-open {
    overflow: hidden !important;
  }

}