/* Custom development portfolio. Shared product styling remains in style.css. */
.agency-home { padding: 138px 0 76px; border-bottom: 1px solid var(--border); background: var(--bg-2); }
.agency-home-grid { display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 80px; }
.agency-home h1 { margin: 16px 0 24px; font-size: clamp(44px, 5.6vw, 76px); line-height: 1.02; letter-spacing: -.06em; }
.agency-home p:not(.label) { max-width: 620px; margin-bottom: 16px; color: var(--text-2); }
.agency-home strong { color: var(--text); font-weight: 600; }
.agency-home .hero-actions { flex-wrap: wrap; }
.home-project-board { border: 1px solid var(--border-strong); border-radius: 18px; background: var(--card); padding: 25px; box-shadow: 0 18px 50px var(--shadow); }
.home-project-board > p { font: 10px/1.6 var(--mono); letter-spacing: .07em; }
.home-project-board > a { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 17px 0; border-top: 1px solid var(--border); font-size: 20px; font-weight: 700; }
.home-project-board > a:hover { color: var(--accent); }
.home-project-board small { display: block; margin-top: 3px; color: var(--text-2); font-size: 12px; font-weight: 400; }
.home-project-board .board-all { padding-bottom: 0; font-size: 13px; color: var(--accent); }
.agency-hero { padding: 132px 0 0; }
.agency-kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 38px; font: 11px/1.6 var(--mono); letter-spacing: .08em; color: var(--text-2); }
.agency-dot { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: var(--accent-2); }
.agency-hero-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 70px; align-items: center; }
.agency-hero h1 { font-size: clamp(56px, 7.5vw, 98px); line-height: .99; font-weight: 850; letter-spacing: -.065em; }
.agency-lead { margin: 30px 0 16px; max-width: 600px; font-size: clamp(19px, 2vw, 23px); line-height: 1.5; letter-spacing: -.02em; }
.agency-description { max-width: 550px; color: var(--text-2); font-size: 16px; }
.agency-page .hero-actions { margin-top: 30px; flex-wrap: wrap; }
.brand-stack { position: relative; border: 1px solid var(--border-strong); border-radius: 20px; box-shadow: 0 25px 70px var(--shadow); overflow: hidden; }
.stack-top { padding: 34px; background: var(--card); }
.stack-top > span, .stack-bottom > span { display: block; font: 10px/1.5 var(--mono); letter-spacing: .1em; margin-bottom: 25px; }
.stack-top > a { display: block; font-size: clamp(30px, 3.7vw, 46px); font-weight: 800; line-height: 1.08; letter-spacing: -.05em; }
.stack-top strong { font-weight: 400; }
.stack-top a > span { float: right; font-size: 28px; color: var(--accent); }
.stack-top p, .stack-bottom p { margin-top: 18px; font-size: 13px; }
.stack-top p { color: var(--text-2); }
.stack-bottom { padding: 34px; background: #5142c7; color: #fff; }
.stack-bottom > strong { font: 700 clamp(28px, 3.2vw, 40px)/1.2 var(--mono); letter-spacing: -.05em; }
.stack-cursor { color: #bdf6dc; }
.stack-connector { position: absolute; top: 50%; right: 26px; transform: translateY(-50%); width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--border-strong); border-radius: 50%; color: var(--text); background: var(--card); font-size: 20px; }
.agency-strip { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 18px 24px; margin-top: 65px; padding: 24px 0; border-top: 1px solid var(--border-strong); border-bottom: 1px solid var(--border-strong); color: var(--text-2); font-size: 12px; }
.agency-strip > span { font: 10px/1.9 var(--mono); letter-spacing: .05em; }
.agency-story { padding: 80px 0; }
.agency-split { display: grid; grid-template-columns: 1fr 2fr; gap: 60px; }
.agency-split p:not(.label) { margin-top: 22px; color: var(--text-2); max-width: 720px; }
.agency-page .section-title { font-size: clamp(30px, 3.8vw, 46px); }
.agency-projects { padding: 82px 0; background: var(--bg-2); border-block: 1px solid var(--border); }
.portfolio-jumps { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 48px; }
.portfolio-jumps a { padding: 9px 14px; border: 1px solid var(--border-strong); border-radius: 6px; font-size: 12px; background: var(--card); }
.portfolio-jumps a:hover { border-color: var(--accent); color: var(--accent); }
.project-group { margin-top: 48px; scroll-margin-top: 90px; }
.group-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.group-heading h3 { font-size: 22px; letter-spacing: -.03em; }
.group-heading > span { color: var(--text-2); font: 10px/1.5 var(--mono); letter-spacing: .06em; }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.project-card { display: flex; flex-direction: column; padding: 26px; background: var(--card); border: 1px solid var(--border); border-radius: 14px; overflow: hidden; }
.project-top { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.project-monogram { width: 39px; height: 39px; flex: 0 0 39px; display: grid; place-items: center; font: 700 14px var(--mono); color: var(--accent); background: var(--accent-soft); border: 1px solid var(--border); border-radius: 9px; }
.project-kind { color: var(--text-2); font-size: 11px; line-height: 1.5; }
.project-card h3 { font-size: 21px; line-height: 1.25; letter-spacing: -.03em; margin-bottom: 14px; }
.project-card > p { font-size: 14px; color: var(--text-2); line-height: 1.7; margin-bottom: 26px; }
.project-link { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--border); color: var(--accent); font-size: 12px; font-weight: 700; }
.project-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.workshop { display: grid; grid-template-columns: 1fr; gap: 26px; margin-top: 60px; padding: 30px; border: 1px dashed var(--border-strong); border-radius: 12px; scroll-margin-top: 90px; }
.workshop h3 { font-size: 27px; line-height: 1.3; letter-spacing: -.03em; }
.workshop p:not(.label) { margin: 12px 0 24px; font-size: 14px; color: var(--text-2); }
.workshop h4 { font-size: 16px; }
.workshop h4 span { display: block; color: var(--text-2); font: 10px/1.6 var(--mono); margin-top: 3px; }
.agency-services { padding: 85px 0; }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin: 40px 0 55px; }
.service-grid article { border-top: 2px solid var(--accent); padding-top: 20px; }
.service-grid article > span { color: var(--accent); font: 12px var(--mono); }
.service-grid h3 { margin: 14px 0 12px; font-size: 23px; letter-spacing: -.03em; }
.service-grid p { font-size: 15px; color: var(--text-2); }
.agency-process { display: grid; grid-template-columns: 1fr 1.5fr; gap: 60px; padding-top: 40px; border-top: 1px solid var(--border-strong); }
.agency-process h3 { font-size: 27px; letter-spacing: -.03em; }
.agency-process ol { display: grid; gap: 22px; padding-left: 22px; }
.agency-process li { padding-left: 8px; }
.agency-process li::marker { color: var(--accent); font-family: var(--mono); }
.agency-process strong, .agency-process li span { display: block; }
.agency-process li span { color: var(--text-2); font-size: 14px; margin-top: 5px; }
.agency-contact { padding: 85px 0; text-align: center; background: var(--bg-2); border-top: 1px solid var(--border); }
.agency-contact h2 { font-size: clamp(44px, 6.5vw, 80px); line-height: 1.05; letter-spacing: -.06em; }
.agency-contact p:not(.label) { max-width: 560px; margin: 26px auto; color: var(--text-2); }
.contact-address { display: block; margin-top: 20px; font-size: 14px; text-decoration: underline; text-underline-offset: 4px; }
.agency-contact small { display: block; margin-top: 18px; color: var(--text-2); font-size: 12px; }
.agency-page .nav-links a[aria-current="page"] { color: var(--accent); }
.agency-page .btn-primary, .agency-home .btn-primary { background: #5946d4; color: #fff; }
.agency-page .btn-primary:hover, .agency-home .btn-primary:hover { background: #4936bd; }
.preview-note { color: var(--text-2); font-size: 12px; margin-top: 18px; }
.project-preview { display: block; position: relative; margin: -26px -26px 24px; color: #e9e9f3; background: #171720; overflow: hidden; border-bottom: 1px solid var(--border); }
.preview-chrome { display: flex; align-items: center; gap: 5px; height: 28px; padding: 0 12px; background: #242431; }
.preview-chrome i { width: 5px; height: 5px; border-radius: 50%; background: #8c8c9e; }
.preview-chrome > span { margin-left: 8px; font: 9px/1.4 var(--mono); letter-spacing: .02em; }
.project-preview img { width: 100%; aspect-ratio: 16/9; object-fit: contain; background: #11121a; transition: transform .3s ease; }
.project-preview:hover img { transform: scale(1.025); }
.preview-enlarge { position: absolute; right: 12px; bottom: 12px; padding: 7px 11px; border: 1px solid #ffffff38; border-radius: 6px; background: #11121ae8; color: #fff; font-size: 11px; font-weight: 650; }
.project-preview:focus-visible { outline-offset: -4px; }
.workshop-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.workshop-card { min-width: 0; }
.workshop-card .project-preview { margin: 0 0 20px; border-radius: 8px; border: 1px solid var(--border-strong); }
.workshop-heading > p:last-child { margin-bottom: 0; }
.workshop > .text-link { justify-self: start; }
.home-project-board .board-preview { width: 82px; height: 52px; object-fit: cover; border-radius: 5px; border: 1px solid var(--border); flex: 0 0 82px; }
.home-project-board > a > span { flex: 1; }
.home-project-board > a { font-size: 17px; }
.preview-dialog { position: fixed; inset: 0; margin: auto; width: min(1200px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 0; border: 1px solid var(--border-strong); border-radius: 14px; background: var(--card); color: var(--text); box-shadow: 0 24px 90px #0008; overflow: auto; }
.preview-dialog::backdrop { background: #080911d9; backdrop-filter: blur(5px); }
.preview-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; }
.preview-dialog h2 { font-size: 20px; letter-spacing: -.025em; line-height: 1.3; }
.preview-dialog header p { font-size: 12px; color: var(--text-2); margin-top: 4px; }
.preview-close { flex-shrink: 0; padding: 8px 12px; border: 1px solid var(--border-strong); border-radius: 7px; background: var(--bg-2); color: var(--text); cursor: pointer; font-size: 13px; }
.preview-close span { margin-left: 8px; font-size: 18px; }
.preview-dialog img { width: 100%; max-height: calc(100dvh - 175px); object-fit: contain; background: #11121a; }
.preview-dialog-hint { padding: 10px 22px; color: var(--text-2); font-size: 11px; }
.preview-open { overflow: hidden; }
@media (max-width: 1000px) {
  .agency-home-grid, .agency-hero-grid { gap: 35px; }
  .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agency-home .hero-actions .btn { font-size: 12px; }
}
@media (max-width: 780px) {
  .workshop-grid { grid-template-columns: 1fr; }
  .agency-home-grid, .agency-hero-grid, .agency-split, .agency-process, .workshop { grid-template-columns: 1fr; gap: 30px; }
  .agency-home, .agency-hero { padding-top: 105px; }
  .agency-hero h1 { font-size: clamp(52px, 12vw, 80px); }
  .brand-stack { max-width: 540px; }
  .stack-top > a { font-size: 42px; }
  .stack-bottom > strong { font-size: 36px; }
  .service-grid { grid-template-columns: 1fr; gap: 28px; }
  .agency-strip { margin-top: 40px; }
  .agency-strip > span { flex-basis: 100%; }
  .agency-story, .agency-projects, .agency-services, .agency-contact { padding-block: 60px; }
}
@media (max-width: 560px) {
  .preview-dialog header { padding: 14px; }
  .preview-dialog h2 { font-size: 17px; }
  .home-project-board .board-preview { width: 64px; flex-basis: 64px; height: 44px; }
  .home-project-board > a { font-size: 15px; }
  .project-grid { grid-template-columns: 1fr; }
  .agency-kicker { font-size: 9px; margin-bottom: 28px; }
  .agency-home h1 { font-size: 50px; }
  .agency-home .hero-actions .btn { font-size: 13px; }
  .workshop { padding: 24px; }
  .agency-page .footer-links { flex-wrap: wrap; justify-content: center; }
  .agency-page .hero-actions { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) { .project-preview img { transition: none; } .project-preview:hover img { transform: none; } }

/* Preserve the product hero typography beneath the agency introduction. */
.product-hero .hero-copy h2 { font-size: clamp(48px, 5.8vw, 78px); line-height: 1.04; letter-spacing: -.06em; font-weight: 850; }
@media (max-width: 560px) { .product-hero .hero-copy h2 { font-size: 43px; } }
