
:root { font-family: Inter, Arial, Helvetica, sans-serif; color: #121416; background: #fff; font-synthesis: none; }
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
a:focus-visible,button:focus-visible { outline: 2px solid #fb5918; outline-offset: 4px; }
.site-piece { scroll-margin-top: 81px; }
.site-piece [id] { scroll-margin-top: 91px; }
.site-header { position: sticky; top: 0; z-index: 100; height: 81px; padding: 0 28px 0 12px; display: flex; align-items: center; justify-content: space-between; border-bottom: 0; background: #fff; transition: transform .24s ease; will-change: transform; }
.site-header.is-hidden { transform: translateY(-105%); }
.site-header:focus-within { transform: translateY(0); }
.skip-link { position: fixed; z-index: 200; left: 16px; top: 12px; padding: 12px 17px; border-radius: 9px; background: #171717; color: #fff; font-weight: 650; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.brand { display: block; flex: none; width: 174px; height: 58px; }
.brand img { display: block; width: 100%; height: 100%; object-fit: contain; }
.nav { position: absolute; left: 50%; top: 15px; transform: translateX(-50%); height: 49px; padding: 0 9px; display: flex; align-items: center; white-space: nowrap; border-radius: 12px; background: #f7f7f8; }
.nav a { padding: 13px 13px; border-radius: 8px; color: #53565a; font-size: 15px; line-height: 1; transition: background .2s,color .2s; }
.nav a:hover { color: #111; background: #fff; }
.header-cta { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-width: 165px; height: 45px; padding: 0 16px; border: 1px solid #ffffff18; border-radius: 11px; background: linear-gradient(115deg,#1b1b1b,#272222 68%,#1d1b1a); color: #fff; font-size: 15px; font-weight: 650; box-shadow: inset 0 1px #ffffff18,0 5px 15px #00000020; transition: transform .2s,box-shadow .2s; }
.header-cta:hover { transform: translateY(-2px); box-shadow: inset 0 1px #ffffff18,0 9px 22px #0000002a; }
.header-cta .arrow { display: inline-block; font-size: 18px; line-height: 1; }
.menu-button { display: none; }
.mobile-menu-cta { display: none !important; }
@media (max-width: 990px) {
  .site-header { height: 70px; padding: 0 18px 0 4px; }
  .brand { width: 142px; height: 55px; }
  .nav { display: none; position: absolute; left: 12px; right: 12px; top: 70px; transform: none; height: auto; padding: 8px; border: 1px solid #eee; background: white; box-shadow: 0 14px 26px #0002; flex-direction: column; align-items: stretch; white-space: normal; }
  .nav.open { display: flex; }
  .nav a { font-size: 16px; padding: 13px 17px; }
  .header-cta { display: none; }
  .mobile-menu-cta { display: inline-flex !important; align-items: center; justify-content: center; gap: 10px; margin-top: 6px; padding: 13px 17px; border-radius: 8px; background: #171717; color: #fff !important; font-weight: 650; }
  .mobile-menu-cta .arrow { font-size: 18px; line-height: 1; }
  .nav > a:not(.mobile-menu-cta)[href*="contact"] { display: none; }
  .menu-button { display: inline-flex; justify-content: center; align-items: center; width: 40px; height: 40px; margin-left: 10px; border-radius: 8px; border: 1px solid #ddd; background: white; color: #111; font-size: 21px; cursor: pointer; }
  .site-piece { scroll-margin-top: 70px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* landing */
#landing a { color: inherit; text-decoration: none; }
#landing button { font: inherit; }
#landing .dark-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; height: 51px; min-width: 202px; padding: 0 18px; border: 0; border-radius: 8px; background: linear-gradient(115deg,#211815,#232323 68%,#202020); color: white; font-size: 16px; font-weight: 500; box-shadow: 0 4px 10px #00000014; transition: transform .2s, box-shadow .2s; cursor: pointer; }
#landing .dark-button:hover { transform: translateY(-2px); box-shadow: 0 9px 22px #00000024; }
#landing .arrow { display: inline-block; font-size: 18px; font-weight: 400; line-height: 1; }
#landing .hero { position: relative; min-height: max(890px, calc(100svh - 81px)); overflow: hidden; isolation: isolate; background: #fff; }
#landing .art { position: absolute; top: -45px; left: 50%; width: 1619px; height: 620px; transform: translateX(-50%); pointer-events: none; }
#landing .pixel-wash { position: absolute; inset: 0; clip-path: polygon(3% 0,97% 0,97% 5.8%,89.8% 5.8%,89.8% 29.8%,81% 29.8%,81% 50.3%,72.2% 50.3%,72.2% 67.7%,63.4% 67.7%,63.4% 83.8%,54.5% 83.8%,54.5% 99%,45.5% 99%,45.5% 83.8%,36.6% 83.8%,36.6% 67.7%,27.8% 67.7%,27.8% 50.3%,19% 50.3%,19% 29.8%,10.2% 29.8%,10.2% 5.8%,3% 5.8%); background: radial-gradient(ellipse 47% 67% at 50% 84%,#ff843e 0%,#ffa474 25%,#ffcfba 53%,#ffede5 75%,#fff 100%); opacity: .92; }
#landing .pixel-motion { position: absolute; inset: 0; display: grid; grid-template-columns: 166px repeat(9, 143px) 166px; grid-template-rows: repeat(6, 1fr); clip-path: polygon(3% 0,97% 0,97% 5.8%,89.8% 5.8%,89.8% 29.8%,81% 29.8%,81% 50.3%,72.2% 50.3%,72.2% 67.7%,63.4% 67.7%,63.4% 83.8%,54.5% 83.8%,54.5% 99%,45.5% 99%,45.5% 83.8%,36.6% 83.8%,36.6% 67.7%,27.8% 67.7%,27.8% 50.3%,19% 50.3%,19% 29.8%,10.2% 29.8%,10.2% 5.8%,3% 5.8%); }
#landing .pixel-motion span { min-width: 0; min-height: 0; background: linear-gradient(180deg,rgba(255,255,255,.66),rgba(255,104,30,.42)); opacity: 0; animation: pixel-wave 6.4s ease-in-out infinite; animation-delay: var(--delay); }
@keyframes pixel-wave { 0%, 7%, 43%, 100% { opacity: 0; } 15% { opacity: .82; } 23% { opacity: .6; } 32% { opacity: 0; } }
#landing .grid-lines { position: absolute; inset: 0; clip-path: polygon(3% 0,97% 0,97% 5.8%,89.8% 5.8%,89.8% 29.8%,81% 29.8%,81% 50.3%,72.2% 50.3%,72.2% 67.7%,63.4% 67.7%,63.4% 83.8%,54.5% 83.8%,54.5% 99%,45.5% 99%,45.5% 83.8%,36.6% 83.8%,36.6% 67.7%,27.8% 67.7%,27.8% 50.3%,19% 50.3%,19% 29.8%,10.2% 29.8%,10.2% 5.8%,3% 5.8%); background: repeating-linear-gradient(90deg,transparent 0,transparent 141.7px,#9696963b 142.3px,#9696963b 143px) 24px 0,repeating-linear-gradient(0deg,transparent 0,transparent 101px,#96969628 101.6px,#96969628 102px); }
#landing .curve { position: absolute; left: 3%; top: -204px; width: 94%; height: 331px; border-bottom: 1px solid #8c8c8c42; border-radius: 0 0 50% 50% / 0 0 35% 35%; }
#landing .curve.two { left: 10%; top: -98px; width: 80%; height: 331px; opacity: .75; }
#landing .logo-glow { position: absolute; z-index: 1; left: 50%; top: 140px; width: 500px; height: 365px; transform: translateX(-50%); background: radial-gradient(ellipse,#ff703577 3%,#ff8b3a55 39%,#ffae7544 58%,transparent 73%); filter: blur(27px); pointer-events: none; }
#landing .hero-logo { position: absolute; z-index: 2; top: 88px; left: 50%; width: 400px; height: 400px; transform: translateX(-50%); object-fit: contain; filter: drop-shadow(0 6px 5px #6d3b2719); user-select: none; }
#landing .hero-copy { position: relative; z-index: 3; display: grid; grid-template-columns: minmax(0,1fr) 250px minmax(0,1fr); gap: 0; align-items: start; max-width: 1349px; margin: 511px auto 0; }
#landing .intro { max-width: 500px; }
#landing .intro h1 { margin: 0; font-size: 46px; line-height: 1.035; letter-spacing: -1.9px; font-weight: 700; white-space: nowrap; }
#landing .orange { color: #fc5919; }
#landing .intro p, #landing .impact p { color: #505257; font-size: 19px; font-weight: 400; line-height: 1.45; letter-spacing: -.24px; }
#landing .intro p { max-width: 500px; margin: 18px 0 0; }
#landing .center-action { justify-self: center; margin-top: 91px; }
#landing .impact { justify-self: end; width: 390px; padding-top: 5px; }
#landing .impact h2 { margin: 0; font-size: 38px; line-height: 1.08; font-weight: 600; letter-spacing: -1.7px; white-space: nowrap; }
#landing .impact p { margin: 18px 0 0; }
#landing .work-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 25px; font-size: 17px; font-weight: 500; }
#landing .work-link:hover { color: #f05a22; }
#landing .indicators { display: flex; align-items: center; justify-content: center; gap: 13px; margin-top: 24px; }
#landing .dot-letter { display: grid; grid-template-columns: repeat(5,3px); grid-template-rows: repeat(7,3px); gap: 2px; width: 23px; height: 33px; color: #c9cccf; animation: jygen-dot-sequence 5s ease-in-out infinite; }
#landing .dot-letter i { width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
#landing .dot-letter i.off { visibility: hidden; }
#landing .dot-letter:nth-child(2) { animation-delay: -4s; }
#landing .dot-letter:nth-child(3) { animation-delay: -3s; }
#landing .dot-letter:nth-child(4) { animation-delay: -2s; }
#landing .dot-letter:nth-child(5) { animation-delay: -1s; }
@keyframes jygen-dot-sequence { 0%,12% { color: #f45c20; transform: translateY(-2px); } 22%,100% { color: #bfc3c7; transform: translateY(0); } }
@media (max-width: 1450px) {#landing .hero-copy { margin-left: 6%; margin-right: 6%; padding-inline: clamp(12px,2.5vw,36px); }
#landing .intro h1 { font-size: clamp(35px,2.9vw,44px); }
#landing .impact h2 { font-size: clamp(30px,2.45vw,38px); }}
@media (max-width: 1080px) {#landing .art { transform: translateX(-50%) scale(.83); transform-origin: top center; }
#landing .logo-glow { top: 110px; }
#landing .hero-logo { top: 94px; width: 324px; height: 324px; }
#landing .hero-copy { grid-template-columns: 1fr 190px 1fr; margin-top: 445px; }
#landing .intro h1 { font-size: 33px; }
#landing .impact h2 { font-size: 29px; }
#landing .intro p, #landing .impact p { font-size: 16px; }
#landing .impact { width: 270px; }
#landing .center-action .dark-button { min-width: 170px; }}
@media (max-width: 760px) {#landing .hero { min-height: 0; padding-bottom: 80px; }
#landing .art { top: -25px; transform: translateX(-50%) scale(.57); }
#landing .logo-glow { top: 72px; width: 340px; height: 255px; }
#landing .hero-logo { top: 55px; width: 265px; height: 265px; }
#landing .hero-copy { display: flex; flex-direction: column; margin: 325px 24px 0; padding: 0; gap: 0; }
#landing .intro { max-width: 600px; }
#landing .intro h1 { font-size: clamp(32px,7vw,42px); white-space: normal; }
#landing .intro p { font-size: 16px; line-height: 1.5; margin-top: 17px; }
#landing .center-action { margin: 29px 0 0; align-self: flex-start; }
#landing .center-action .dark-button { min-width: 202px; }
#landing .impact { justify-self: auto; width: auto; max-width: 500px; padding: 55px 0 0; }
#landing .impact h2 { font-size: 32px; }
#landing .impact p { font-size: 16px; }
#landing .indicators { display: none; }}
@media (max-width: 400px) {#landing .hero-copy { margin-left: 20px; margin-right: 20px; }
#landing .intro h1 { font-size: 31px; letter-spacing: -1.3px; }
#landing .hero-logo { width: 245px; height: 245px; left: 50%; }
#landing .art { transform: translateX(-50%) scale(.5); }}
/* services */
#services a { color: inherit; text-decoration: none; }
#services button { font: inherit; }
#services .services { padding: 48px 24px 28px; }
#services .services-frame { display: grid; grid-template-columns: 763fr 608fr; width: min(1372px, 100%); height: 822px; margin: 0 auto; border: 1px dashed #d8dbe2; }
#services .visual { position: relative; min-width: 0; min-height: 0; overflow: hidden; border-right: 1px dashed #d8dbe2; background-color: #fff; background-image: radial-gradient(#cdd0d4 .65px, transparent .85px); background-size: 23px 23px; }
#services .visual .reference-fallback { position: absolute; display: block; max-width: none; width: 212.1887%; height: auto; left: -16.2516%; top: -14.5985%; pointer-events: none; }
#services .visual .provided-art { position: absolute; display: none; left: 8px; width: 100%; height: 100%; object-fit: contain; padding: 30px 18px; }
#services .visual.has-art .reference-fallback { display: none; }
#services .visual.has-art .provided-art { display: block; }
#services .service-list { min-width: 0; list-style: none; margin: 0; padding: 56px 37px 29px 59px; }
#services .service-item { position: relative; display: grid; grid-template-columns: 66px minmax(0,1fr); gap: 33px; height: 105px; }
#services .service-item:nth-child(1), #services .service-item:nth-child(2) { height: 103px; }
#services .service-item:nth-child(3) { height: 104px; }
#services .service-item:nth-child(4), #services .service-item:nth-child(5) { height: 106px; }
#services .service-item:nth-child(6) { height: 108px; }
#services .service-item:not(:last-child)::after { content: ""; position: absolute; left: 99px; right: 0; bottom: 19px; border-bottom: 1px dotted #d8dbe2; }
#services .service-icon { width: 66px; height: 66px; border-radius: 9px; display: grid; place-items: center; background: #f5f5f7; }
#services .service-icon svg { width: 43px; height: 43px; overflow: visible; fill: none; stroke: #101213; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
#services .service-icon .accent { stroke: #f45c20; }
#services .service-icon .fill-accent { fill: #f45c20; stroke: none; }
#services .service-content { min-width: 0; padding: 11px 0 23px; }
#services .service-content h2 { font-size: 21px; font-weight: 600; letter-spacing: -.82px; line-height: 1.2; margin: 0; }
#services .service-content p { margin: 5px 0 0; font-size: 16px; font-weight: 400; color: #666c77; letter-spacing: -.15px; line-height: 1.38; }
@media (max-width: 1180px) {#services .services-frame { height: auto; min-height: 0; }
#services .visual { min-height: 730px; }
#services .service-list { padding-left: 35px; padding-right: 25px; }
#services .service-item { gap: 20px; }
#services .service-content h2 { font-size: 19px; }
#services .service-content p { font-size: 14px; }}
@media (max-width: 900px) {#services .services { padding: 30px 20px; }
#services .services-frame { display: block; max-width: 760px; }
#services .visual { width: 100%; min-height: 0; aspect-ratio: 763 / 822; border-right: 0; border-bottom: 1px dashed #d8dbe2; }
#services .service-list { padding: 40px 42px 20px; }
#services .service-item { grid-template-columns: 66px 1fr; gap: 26px; }
#services .service-content h2 { font-size: 21px; }
#services .service-content p { font-size: 16px; }}
@media (max-width: 650px) {#services .services { padding: 25px 15px 45px; }
#services .service-list { padding: 28px 20px 12px; }
#services .service-item { grid-template-columns: 52px minmax(0,1fr); height: auto !important; min-height: 90px; gap: 17px; }
#services .service-item:not(:last-child)::after { left: 69px; bottom: 11px; }
#services .service-icon { width: 52px; height: 52px; }
#services .service-icon svg { width: 34px; height: 34px; stroke-width: 2.4; }
#services .service-content { padding: 2px 0 18px; }
#services .service-content h2 { font-size: 18px; letter-spacing: -.6px; }
#services .service-content p { font-size: 13px; line-height: 1.35; }}
/* approach */
#approach a { color: inherit; text-decoration: none; }
#approach button { font: inherit; }
#approach .approach { max-width: 1314px; padding: 53px 28px 58px; margin: 0 auto; }
#approach .intro { max-width: 1050px; margin: 0 auto; text-align: center; }
#approach .intro h2 { margin: 0; font-size: clamp(50px,5.3vw,82px); line-height: .99; letter-spacing: -.068em; font-weight: 750; }
#approach .intro h2 span { color: #f26224; }
#approach .intro p { margin: 19px auto 0; max-width: 760px; color: #65676b; font-size: clamp(16px,1.35vw,19px); line-height: 1.55; letter-spacing: -.025em; }
#approach .steps { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2,minmax(0,1fr)); gap: 14px; height: 648px; margin-top: 49px; }
#approach .step { position: relative; isolation: isolate; min-width: 0; min-height: 0; overflow: hidden; border: 1px solid #e9e9e9; border-radius: 17px; background: radial-gradient(ellipse at 86% 65%,#dedee0 0%,#f3f3f4 55%,#fafafa 100%); transition: border-color .35s,box-shadow .35s,transform .45s cubic-bezier(.2,.8,.2,1); }
#approach .step:hover { border-color: #e5bdac; box-shadow: 0 20px 45px #16161612; transform: translateY(-4px); }
#approach .step.discover { grid-row: 1 / 3; background: radial-gradient(ellipse at 50% 95%,#3a1d10 0%,#111 42%,#050505 77%); border-color: #141414; color: #fff; }
#approach .step.discover:hover { border-color: #ef6b29; box-shadow: 0 23px 50px #07070728; }
#approach .step-copy { position: absolute; z-index: 2; left: 34px; right: 28px; bottom: 29px; }
#approach .step h2 { margin: 0; font-size: clamp(25px,2.45vw,35px); line-height: 1.1; letter-spacing: -.052em; font-weight: 700; }
#approach .step p { max-width: 270px; margin: 11px 0 0; color: #626468; font-size: clamp(15px,1.27vw,18px); line-height: 1.45; letter-spacing: -.02em; }
#approach .discover .step-copy { top: 35px; bottom: auto; }
#approach .discover h2 { font-size: clamp(28px,2.7vw,38px); }
#approach .discover p { max-width: 390px; color: #b7b7b7; font-size: clamp(17px,1.4vw,20px); line-height: 1.48; }
#approach .art-wrap { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
#approach .step-art { position: absolute; display: block; width: 61%; height: 87%; top: 7%; right: 2%; object-fit: contain; filter: drop-shadow(0 14px 17px #10101010); animation: card-float 6s ease-in-out infinite alternate; transition: scale .65s cubic-bezier(.2,.8,.2,1); }
#approach .step:hover .step-art { scale: 1.045; }
#approach .discover .step-art { width: 77%; height: 61%; top: 36%; right: 10%; filter: drop-shadow(0 15px 20px #ec601a25); }
#approach .build .step-art { animation-delay: -1.5s; }
#approach .deploy .step-art { animation-delay: -3s; }
#approach .art-fallback { display: none; }
#approach .step.art-failed .step-art { display: none; }
#approach .step.art-failed .art-fallback { display: block; position: absolute; top: 24%; right: 10%; width: 55%; height: 45%; background: radial-gradient(circle at 50% 50%,#ff6c2e,#a73b15 38%,transparent 70%); filter: blur(25px); opacity: .34; }
@keyframes card-float { from { transform: translateY(5px); } to { transform: translateY(-8px); } }
@media (max-width: 1060px) {#approach .approach { padding-inline: 20px; }
#approach .steps { height: 580px; }
#approach .step-copy { left: 25px; right: 17px; bottom: 23px; }
#approach .step p { max-width: 225px; font-size: 15px; }
#approach .discover .step-copy { top: 28px; }
#approach .discover p { max-width: 335px; font-size: 17px; }}
@media (max-width: 760px) {#approach .approach { padding: 46px 17px 53px; }
#approach .intro h2 { font-size: clamp(42px,7.8vw,65px); }
#approach .intro p { font-size: 15px; }
#approach .steps { display: flex; flex-direction: column; gap: 13px; height: auto; max-width: 560px; margin: 35px auto 0; }
#approach .step { height: 310px; flex: none; border-radius: 15px; }
#approach .step.discover { height: 490px; }
#approach .step-copy { left: 24px; right: 19px; bottom: 24px; }
#approach .step h2 { font-size: 27px; }
#approach .step p { max-width: 55%; font-size: 15px; }
#approach .discover .step-copy { top: 27px; }
#approach .discover p { max-width: 92%; font-size: 16px; }
#approach .discover .step-art { width: 83%; height: 58%; top: 40%; right: 7%; }
#approach .step:not(.discover) .step-art { width: 60%; height: 78%; top: 8%; right: 0; }}
@media (max-width: 420px) {#approach .intro h2 { font-size: clamp(39px,10.5vw,48px); }
#approach .step:not(.discover) .step-art { width: 56%; right: -2%; }
#approach .step:not(.discover) p { max-width: 54%; font-size: 14px; }
#approach .step:not(.discover) h2 { font-size: 24px; }}
/* about */
#about a { color: inherit; text-decoration: none; }
#about button { font: inherit; }
#about .frame { width: min(1258px,100%); margin: 0 auto; border-right: 1px dashed #dadee1; border-left: 1px dashed #dadee1; }
#about .about-grid { display: grid; grid-template-columns: 1fr 1fr; height: 598px; border-bottom: 1px dashed #dadee1; }
#about .about-copy { position: relative; min-width: 0; }
#about .intro { position: absolute; top: 214px; left: 81px; width: 465px; max-width: calc(100% - 135px); margin: 0; font-size: 25px; line-height: 1.43; font-weight: 400; letter-spacing: -.45px; }
#about .founder-note { position: absolute; top: 453px; left: 81px; width: 460px; max-width: calc(100% - 135px); margin: 0; font-size: 15px; line-height: 1.55; color: #65686d; }
#about .about-art { position: relative; min-width: 0; overflow: hidden; border-left: 1px dashed #dadee1; background-image: radial-gradient(#d7dade .72px,transparent .86px); background-size: 21px 21px; background-position: 12px 13px; }
#about .factory { position: absolute; display: block; width: 615px; height: 560px; max-width: 105%; left: 50%; top: 18px; transform: translateX(-50%); object-fit: contain; pointer-events: none; user-select: none; }
#about .fallback-art { display: none; position: absolute; left: 50%; top: 34px; transform: translateX(-50%); width: 580px; height: 523px; background: url('about/about-reference.webp') no-repeat -838px -124px / 1619px 971px; }
#about .about-art.art-failed .factory { display: none; }
#about .about-art.art-failed .fallback-art { display: block; }
#about .about-grid::after { content: ''; position: absolute; }
#about .frameworks { position: relative; min-height: 294px; padding: 82px 30px 50px; text-align: center; }
#about .frameworks::before, #about .frameworks::after { content: ''; position: absolute; top: -5px; width: 8px; height: 8px; border: 1px solid #d9dde0; border-radius: 50%; background: white; }
#about .frameworks::before { left: -5px; }
#about .frameworks::after { right: -5px; }
#about .frameworks h2 { margin: 0; color: #090909; font-size: clamp(36px,4vw,61px); line-height: 1.16; font-weight: 700; letter-spacing: 1.4px; white-space: nowrap; }
#about .frameworks p { margin: 17px auto 0; max-width: 930px; color: #5f6064; font-size: 20px; line-height: 1.58; letter-spacing: -.17px; }
@media (max-width: 1280px) {#about .frame { max-width: calc(100% - 56px); }
#about .intro { left: 9%; max-width: 82%; font-size: clamp(19px,2vw,24px); }
#about .founder-note { left: 9%; max-width: 82%; }
#about .factory { width: 100%; }
#about .frameworks h2 { white-space: normal; }}
@media (max-width: 850px) {#about .about-grid { height: 490px; }
#about .intro { top: 140px; }
#about .founder-note { top: 345px; font-size: 13px; }
#about .factory { top: 15px; height: 460px; }
#about .frameworks h2 { font-size: 42px; }}
@media (max-width: 760px) {#about .frame { max-width: calc(100% - 24px); }
#about .about-grid { display: flex; height: auto; flex-direction: column; }
#about .about-copy { min-height: 340px; }
#about .intro { top: 58px; left: 27px; width: auto; max-width: calc(100% - 54px); font-size: clamp(19px,4.7vw,25px); line-height: 1.46; }
#about .founder-note { top: auto; bottom: 32px; left: 27px; max-width: calc(100% - 54px); font-size: 13px; }
#about .about-art { height: min(93vw,530px); border-left: 0; border-top: 1px dashed #dadee1; }
#about .factory { width: min(95%,540px); height: 100%; top: 0; }
#about .fallback-art { top: 0; width: 100%; max-width: 560px; height: 100%; background-size: cover; }
#about .frameworks { padding: 56px 18px 66px; min-height: 0; }
#about .frameworks h2 { font-size: clamp(29px,7vw,44px); line-height: 1.13; letter-spacing: .2px; }
#about .frameworks p { font-size: 16px; line-height: 1.5; margin-top: 20px; }
#about .desktop-break { display: none; }}
@media (max-width: 420px) {#about .about-copy { min-height: 380px; }
#about .intro { font-size: 19px; }
#about .founder-note { font-size: 12.5px; }}
/* capabilities */
#capabilities a { color: inherit; text-decoration: none; }
#capabilities button { font: inherit; }
#capabilities .feature-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: min(1186px,100%); margin: 0 auto; border-left: 1px dashed #d8dce0; border-right: 1px dashed #d8dce0; }
#capabilities .feature { min-width: 0; height: 470px; position: relative; overflow: hidden; border-bottom: 1px dashed #d8dce0; background-color: #fff; background-image: radial-gradient(#d6dadd .65px,transparent .9px); background-size: 20px 20px; background-position: 15px 8px; }
#capabilities .feature:nth-child(odd) { border-right: 1px dashed #d8dce0; }
#capabilities .feature:nth-child(3)::before { content: ''; position: absolute; z-index: 2; top: -5px; left: -5px; width: 8px; height: 8px; border: 1px solid #d6dbe0; border-radius: 50%; background: #fff; }
#capabilities .feature:nth-child(4)::before { content: ''; position: absolute; z-index: 2; top: -5px; left: -5px; width: 8px; height: 8px; border: 1px solid #d6dbe0; border-radius: 50%; background: #fff; }
#capabilities .feature:nth-child(4)::after { content: ''; position: absolute; z-index: 2; top: -5px; right: -5px; width: 8px; height: 8px; border: 1px solid #d6dbe0; border-radius: 50%; background: #fff; }
#capabilities .feature-art { position: absolute; display: block; left: 50%; transform: translateX(-50%); object-fit: contain; user-select: none; pointer-events: none; }
#capabilities .integrations .feature-art { top: 72px; width: 455px; height: 217px; }
#capabilities .tailored .feature-art { top: 55px; width: 390px; height: 230px; }
#capabilities .security .feature-art { top: -7px; left: calc(50% - 12px); width: 480px; height: 300px; }
#capabilities .intelligence .feature-art { top: 38px; width: 450px; height: 230px; }
#capabilities .fallback-art { display: none; position: absolute; left: 50%; transform: translateX(-50%); background: url('capabilities/features-reference.webp') no-repeat; background-size: 1619px 971px; }
#capabilities .integrations .fallback-art { top: 55px; width: 456px; height: 244px; background-position: -285px -135px; }
#capabilities .tailored .fallback-art { top: 26px; width: 456px; height: 264px; background-position: -883px -105px; }
#capabilities .security .fallback-art { top: 5px; width: 456px; height: 285px; background-position: -285px -552px; }
#capabilities .intelligence .fallback-art { top: 27px; width: 456px; height: 255px; background-position: -883px -565px; }
#capabilities .feature.art-failed .feature-art { display: none; }
#capabilities .feature.art-failed .fallback-art { display: block; }
#capabilities .copy { position: absolute; left: 58px; right: 48px; top: 300px; }
#capabilities .feature:nth-child(even) .copy { left: 96px; right: 44px; }
#capabilities .feature:nth-child(n+3) .copy { top: 288px; }
#capabilities .copy h2 { margin: 0; font-size: 23px; line-height: 1.2; letter-spacing: -.8px; font-weight: 700; }
#capabilities .copy p { max-width: 410px; margin: 12px 0 0; color: #33383e; font-size: 18px; line-height: 1.42; letter-spacing: -.2px; }
#capabilities .security .copy p { max-width: 385px; }
@media (max-width: 1100px) {#capabilities .feature-grid { max-width: calc(100% - 48px); }
#capabilities .copy { left: 38px; right: 34px; }
#capabilities .feature:nth-child(even) .copy { left: 56px; right: 34px; }
#capabilities .feature-art { max-width: 90%; }
#capabilities .copy h2 { font-size: 21px; }
#capabilities .copy p { font-size: 16px; }}
@media (max-width: 760px) {#capabilities .feature-grid { display: block; max-width: calc(100% - 26px); }
#capabilities .feature { height: 445px; border-right: 0 !important; }
#capabilities .copy, #capabilities .feature:nth-child(n+3) .copy { top: 277px; left: 27px; right: 23px; }
#capabilities .feature:nth-child(even) .copy { left: 27px; right: 23px; }
#capabilities .copy h2 { font-size: 22px; }
#capabilities .copy p { font-size: 16px; }
#capabilities .integrations .feature-art { top: 44px; width: min(96%,390px); height: 236px; }
#capabilities .tailored .feature-art { top: 19px; width: min(96%,390px); height: 263px; }
#capabilities .security .feature-art { top: 9px; width: min(96%,390px); height: 275px; }
#capabilities .intelligence .feature-art { top: 31px; width: min(96%,390px); height: 246px; }}
@media (max-width: 400px) {#capabilities .feature { height: 435px; }
#capabilities .copy, #capabilities .feature:nth-child(n+3) .copy { top: 275px; left: 22px; right: 18px; }
#capabilities .feature:nth-child(even) .copy { left: 22px; right: 18px; }
#capabilities .copy h2 { font-size: 20px; }
#capabilities .copy p { font-size: 15px; }}
/* faq */
#faq button { font: inherit; }
#faq .faq { width: min(1258px,calc(100% - 36px)); min-height: 790px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; border-left: 1px dashed #d9dde0; border-right: 1px dashed #d9dde0; border-top: 1px dashed #d9dde0; border-bottom: 1px dashed #d9dde0; }
#faq .faq-intro { position: relative; display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 60px 45px; overflow: hidden; }
#faq .faq-kicker { display: flex; align-items: center; gap: 12px; margin: 0 0 33px 13px; color: #e75a23; font-size: 12px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
#faq .faq-kicker::before { content: ''; width: 25px; height: 2px; background: currentColor; }
#faq .faq-intro h2 { width: 100%; max-width: 510px; margin: 0 auto; }
#faq .faq-intro h2 span { display: block; }
#faq .faq-intro h2 img { display: block; width: 100%; height: auto; object-fit: contain; object-position: center; }
#faq .faq-list { position: relative; min-width: 0; padding: 82px 0 94px; border-left: 1px dashed #d9dde0; }
#faq .faq-list::before, #faq .faq-list::after { content: ''; position: absolute; left: -5px; width: 8px; height: 8px; border: 1px solid #d9dde0; border-radius: 50%; background: #fff; }
#faq .faq-list::before { top: -5px; }
#faq .faq-list::after { bottom: -5px; }
#faq .faq-item { border-top: 1px dashed #d9dde0; }
#faq .faq-item:last-child { border-bottom: 1px dashed #d9dde0; }
#faq .faq-question { display: grid; grid-template-columns: 34px minmax(0,1fr) 30px; align-items: center; gap: 15px; width: 100%; min-height: 101px; padding: 20px 39px 20px 38px; border: 0; background: #fff; color: #17191b; text-align: left; cursor: pointer; transition: background .25s ease; }
#faq .faq-question:hover { background: #fafafa; }
#faq .faq-question:focus-visible { outline: 2px solid #ff5b19; outline-offset: -5px; }
#faq .faq-index { align-self: center; color: #ff5b19; font-size: 13px; line-height: 1; font-weight: 600; letter-spacing: .045em; }
#faq .faq-label { font-size: 20px; line-height: 1.32; letter-spacing: -.035em; font-weight: 600; }
#faq .faq-icon { position: relative; display: block; width: 25px; height: 25px; justify-self: end; transition: transform .36s cubic-bezier(.2,.8,.2,1); }
#faq .faq-icon::before, #faq .faq-icon::after { content: ''; position: absolute; top: 12px; left: 3px; width: 19px; height: 1.7px; border-radius: 2px; background: #151719; transition: background .25s ease; }
#faq .faq-icon::after { transform: rotate(90deg); }
#faq .faq-question[aria-expanded="true"] .faq-icon { transform: rotate(45deg); }
#faq .faq-question[aria-expanded="true"] .faq-icon::before, #faq .faq-question[aria-expanded="true"] .faq-icon::after { background: #ff5b19; }
#faq .faq-answer { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .38s cubic-bezier(.2,.8,.2,1),opacity .25s ease; }
#faq .faq-answer.is-open { grid-template-rows: 1fr; opacity: 1; }
#faq .faq-answer-inner { min-height: 0; overflow: hidden; }
#faq .faq-answer p { max-width: 470px; margin: -3px 66px 31px 87px; color: #62666b; font-size: 16px; line-height: 1.65; letter-spacing: -.005em; }
@media (max-width: 1100px) {#faq .faq-intro { padding-left: 37px; padding-right: 37px; }
#faq .faq-question { padding-left: 25px; padding-right: 27px; gap: 10px; }
#faq .faq-label { font-size: 18px; }
#faq .faq-answer p { margin-left: 69px; margin-right: 40px; }}
@media (max-width: 760px) {#faq .faq { display: block; width: calc(100% - 24px); min-height: 0; }
#faq .faq-intro { padding: 59px 25px 66px; }
#faq .faq-intro h2 { max-width: 460px; }
#faq .faq-kicker { margin-left: 0; }
#faq .faq-list { padding: 0 0 60px; border-left: 0; }
#faq .faq-list::before, #faq .faq-list::after { display: none; }
#faq .faq-question { min-height: 88px; padding: 17px 21px 17px 23px; grid-template-columns: 28px minmax(0,1fr) 26px; gap: 10px; }
#faq .faq-label { font-size: 17px; line-height: 1.34; }
#faq .faq-answer p { margin: -1px 45px 29px 61px; font-size: 15px; line-height: 1.6; }}
@media (max-width: 400px) {#faq .faq-intro { padding-left: 21px; padding-right: 21px; }
#faq .faq-question { padding-left: 18px; padding-right: 16px; grid-template-columns: 26px minmax(0,1fr) 24px; gap: 8px; }
#faq .faq-label { font-size: 16px; }
#faq .faq-answer p { margin-left: 52px; margin-right: 26px; }}
/* contact */
#contact a { color: inherit; text-decoration: none; }
#contact button { font: inherit; }
#contact .project-cta:hover { transform: translateY(-3px); box-shadow: 0 10px 18px #ff692d26,0 5px 10px #0002; }
#contact .arrow { display: block; color: #ff6024; font-size: 27px; font-weight: 700; line-height: 1; transform: translateY(-1px); transition: transform .25s; }
#contact .statements { display: grid; grid-template-columns: 1fr 1fr; width: min(1178px,calc(100% - 90px)); height: 151px; margin: 29px auto 0; }
#contact .statement { display: flex; align-items: flex-start; gap: 26px; padding-top: 35px; min-width: 0; }
#contact .statement:first-child { padding-left: 57px; padding-right: 30px; }
#contact .statement:last-child { padding-left: 84px; padding-right: 15px; border-left: 1px solid #e7e7e8; }
#contact .statement::before { content: ''; display: block; width: 3px; height: 23px; margin-top: 2px; background: #ff5c20; flex: none; }
#contact .statement h2 { margin: 0; color: #191919; font-size: 19px; font-weight: 700; letter-spacing: -.45px; line-height: 1.32; }
#contact .statement p { max-width: 455px; margin: 3px 0 0; color: #5a5c61; font-size: 19px; letter-spacing: -.25px; line-height: 1.38; }
#contact .hero { position: relative; isolation: isolate; min-height: 699px; overflow: hidden; padding: 141px 24px 105px; text-align: center; }
#contact .hero::before { content: ''; position: absolute; z-index: -2; inset: 7px 0 13%; background: radial-gradient(ellipse 73% 41% at 50% 0%,#ff9a6940 0%,#ffb89319 54%,transparent 100%); }
#contact .grid-art { position: absolute; z-index: -1; left: 50%; top: 5px; width: max(100%,1450px); height: 100%; transform: translateX(-50%); pointer-events: none; animation: grid-appear 1.4s both,grid-drift 12s 1.4s ease-in-out infinite alternate; }
#contact .grid-art svg { display: block; width: 100%; height: 100%; }
#contact .hero h2 { max-width: 1330px; margin: 0 auto; color: #090909; font-size: clamp(51px,5.1vw,85px); font-weight: 800; line-height: 1.02; letter-spacing: -.065em; }
#contact .hero h2 span { display: block; animation: line-enter .8s both; }
#contact .hero h2 span:nth-child(1) { letter-spacing: -.02em; }
#contact .hero h2 span:nth-child(2) { color: #f76532; letter-spacing: -.037em; animation-delay: .12s; }
#contact .hero h2 span:nth-child(3) { letter-spacing: -.05em; animation-delay: .24s; }
#contact .hero-subtitle { margin: 22px auto 0; color: #575a60; font-size: 24px; line-height: 1.4; letter-spacing: -.5px; font-weight: 500; animation: line-enter .8s .4s both; }
#contact .project-cta { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-width: 259px; height: 65px; margin: 49px auto 0; padding: 0 28px; border-radius: 13px; background: #1b1b1b; color: #fff; box-shadow: 0 8px 22px #ff693023,0 3px 9px #0002; font-size: 18px; font-weight: 600; transition: transform .25s,box-shadow .25s; animation: line-enter .8s .55s both; }
#contact .project-cta .arrow { font-size: 29px; }
@keyframes line-enter { from { opacity: 0; transform: translateY(23px); } to { opacity: 1; transform: translateY(0); } }
@keyframes grid-appear { from { opacity: 0; } to { opacity: 1; } }
@keyframes grid-drift { from { transform: translate(-50%,0); } to { transform: translate(-50%,11px); } }
@media (max-width: 1200px) {#contact .statements { width: calc(100% - 72px); }
#contact .statement:first-child { padding-left: 25px; }
#contact .statement:last-child { padding-left: 45px; }
#contact .statement h2, #contact .statement p { font-size: 17px; }}
@media (max-width: 850px) {#contact .statements { margin-top: 15px; height: auto; min-height: 150px; }
#contact .statement { padding-top: 22px; gap: 15px; }
#contact .statement:first-child { padding-left: 0; padding-right: 22px; }
#contact .statement:last-child { padding-left: 25px; }
#contact .statement h2, #contact .statement p { font-size: 15px; }
#contact .hero { min-height: 570px; padding-top: 115px; }
#contact .hero h2 { font-size: clamp(42px,5.1vw,65px); }
#contact .hero-subtitle { font-size: 20px; }}
@media (max-width: 600px) {#contact .statements { display: block; width: calc(100% - 45px); margin-top: 11px; }
#contact .statement { padding: 19px 0 !important; border-left: 0 !important; }
#contact .statement + .statement { border-top: 1px solid #eeeeef; }
#contact .statement h2 { font-size: 15px; }
#contact .statement p { font-size: 14px; line-height: 1.5; }
#contact .hero { min-height: 610px; padding: 76px 17px 100px; }
#contact .hero h2 { font-size: clamp(39px,9.1vw,55px); line-height: 1.035; letter-spacing: -.06em; }
#contact .hero h2 span { white-space: normal; }
#contact .hero-subtitle { max-width: 340px; margin-top: 25px; font-size: 17px; }
#contact .project-cta { height: 59px; min-width: 228px; margin-top: 41px; font-size: 16px; }
#contact .grid-art { width: 1400px; top: 0; }}
/* footer */
#footer a { color: inherit; text-decoration: none; }
#footer button { font: inherit; }
#footer .footer-art { position: relative; height: min(28.78vw,466px); background-image: url('footer/footer-reference.webp'); background-size: 100% auto; background-position: center -6.918vw; background-repeat: no-repeat; background-color: #242424; overflow: hidden; }
#footer .footer-body { min-height: 393px; margin-top: -1px; padding: 0 24px 70px; color: #f4f4f4; background: linear-gradient(180deg,#222 0%,#141414 42%,#080808 100%); }
#footer .footer-columns { width: min(1268px,78.32vw); margin: 0 auto; display: grid; grid-template-columns: 39.1% 21% 21.5% 18.4%; }
#footer .footer-column { min-width: 0; min-height: 304px; border-left: 1px dashed #626263; }
#footer .footer-column:first-child { border-left: 0; }
#footer .footer-column:last-child { border-right: 0; }
#footer .column-head { height: 83px; border-bottom: 1px dashed #626263; }
#footer .footer-brand-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 18px 55px 0 0; }
#footer .footer-wordmark { display: block; font-size: 41px; line-height: 1; font-weight: 800; letter-spacing: -.069em; color: #fff; transform: scaleX(1.24); transform-origin: left center; }
#footer .footer-wordmark span { color: #ff6124; }
#footer .instagram { display: inline-flex; align-items: center; gap: 9px; margin-top: 8px; padding: 3px 0; color: #f5f5f5; font-size: 15px; white-space: nowrap; transition: color .2s,transform .2s; }
#footer .instagram:hover { color: #ff7139; transform: translateY(-2px); }
#footer .instagram svg { width: 23px; height: 23px; stroke-width: 2; flex: none; }
#footer .footer-name { padding: 15px 35px 0 50px; color: #a9a9aa; text-transform: uppercase; font-size: 14px; line-height: 1.3; letter-spacing: .14em; }
#footer .footer-name::after { content: ''; display: block; width: 28px; height: 2px; margin-top: 14px; background: #ff6124; }
#footer .footer-list { list-style: none; margin: 25px 0 0; padding: 0 18px 0 50px; }
#footer .footer-list li + li { margin-top: 10px; }
#footer .footer-list a { position: relative; display: inline-block; color: #f5f5f5; font-size: 17px; line-height: 1.25; transition: color .2s,transform .2s; }
#footer .footer-list a::after { content: '→'; display: inline-block; opacity: 0; color: #ff6124; font-size: 15px; margin-left: 7px; transform: translate(-5px,4px); transition: opacity .2s,transform .2s; }
#footer .footer-list a:hover { color: #ff804d; transform: translateX(2px); }
#footer .footer-list a:hover::after { opacity: 1; transform: translate(0,0); }
#footer .left-space { height: 129px; border-bottom: 1px dashed #626263; }
#footer .copyright { margin: 31px 0 0; color: #a8a8ab; font-size: 15px; letter-spacing: -.08px; }
@media (max-width: 1180px) {#footer .footer-art { height: 28.78vw; }
#footer .footer-brand-head { padding-right: 25px; }
#footer .footer-wordmark { font-size: 34px; }
#footer .instagram { font-size: 13px; }
#footer .footer-name, #footer .footer-list { padding-left: 28px; }
#footer .footer-list a { font-size: 15px; }}
@media (max-width: 850px) {#footer .footer-art { height: min(255px,30vw); min-height: 0; background-size: auto 610px; background-position: center -102px; }
#footer .footer-body { padding: 0 22px 65px; }
#footer .footer-columns { width: 100%; grid-template-columns: 1fr 1fr; }
#footer .footer-column { min-height: 0; }
#footer .footer-column:nth-child(3) { border-left: 0; }
#footer .footer-column:nth-child(-n+2) { border-bottom: 1px dashed #626263; }
#footer .footer-brand-head { padding-right: 32px; }
#footer .footer-name, #footer .footer-list { padding-left: 35px; }
#footer .footer-list { margin-bottom: 39px; }
#footer .left-space { height: 90px; }
#footer .copyright { margin: 24px 0 40px; }}
@media (max-width: 570px) {#footer .footer-art { height: 215px; min-height: 0; background-size: auto 510px; background-position: center -80px; }
#footer .footer-body { padding: 0 22px 65px; }
#footer .footer-columns { display: grid; grid-template-columns: 1fr 1fr; }
#footer .footer-column:first-child { grid-column: 1/-1; min-height: 0; }
#footer .footer-column:nth-child(2) { border-left: 0; }
#footer .footer-column:nth-child(3) { border-left: 1px dashed #626263; }
#footer .footer-column:last-child { grid-column: 1/-1; border-top: 1px dashed #626263; border-left: 0; }
#footer .footer-column:nth-child(-n+2) { border-bottom: 0; }
#footer .footer-brand-head { align-items: center; height: 84px; padding: 0; }
#footer .footer-wordmark { font-size: 36px; }
#footer .instagram { margin-top: 0; font-size: 14px; }
#footer .left-space { height: 38px; }
#footer .copyright { margin: 19px 0 28px; font-size: 13px; }
#footer .column-head { height: 75px; }
#footer .footer-name { padding: 19px 0 0; font-size: 12px; }
#footer .footer-list { padding: 0; margin-top: 24px; margin-bottom: 35px; }
#footer .footer-list a { font-size: 14px; }
#footer .footer-list li + li { margin-top: 11px; }
#footer .footer-column:nth-child(3) .footer-name, #footer .footer-column:nth-child(3) .footer-list { padding-left: 22px; }
#footer .footer-column:last-child .footer-list { display: flex; gap: 24px; flex-wrap: wrap; }
#footer .footer-column:last-child .footer-list li + li { margin-top: 0; }}

/* Pale orange stepped field and fine grid from the approved JYGEN reference. */
#landing .pixel-wash,#landing .pixel-motion {
  clip-path: polygon(9.09% 0,90.91% 0,90.91% 20%,81.82% 20%,81.82% 40%,72.73% 40%,72.73% 60%,63.64% 60%,63.64% 80%,54.55% 80%,54.55% 100%,45.45% 100%,45.45% 80%,36.36% 80%,36.36% 60%,27.27% 60%,27.27% 40%,18.18% 40%,18.18% 20%,9.09% 20%);
}
#landing .pixel-wash {
  background: radial-gradient(ellipse 55% 85% at 50% 88%,#ff762f 0%,#ff985f 35%,#ffc6a4 54%,#ffe7d8 80%,#fff 100%);
  opacity: 1;
}
#landing .pixel-motion { grid-template-columns: repeat(11,minmax(0,1fr)); grid-template-rows: repeat(5,minmax(0,1fr)); }
#landing .pixel-motion span {
  background: #fff;
  opacity: 0;
  animation: jygen-pixel-clear 9s cubic-bezier(.45,0,.55,1) infinite;
  animation-delay: var(--delay);
}
@keyframes jygen-pixel-clear {
  0%,9%,77%,100% { opacity: 0; }
  25%,48% { opacity: .94; }
  62% { opacity: .34; }
}
#landing .grid-lines {
  clip-path: none;
  background-image: linear-gradient(90deg,#99938d2e 1px,transparent 1px),linear-gradient(0deg,#99938d25 1px,transparent 1px);
  background-size: calc(100% / 11) 100%,100% 20%;
  background-position: left top,left top;
  -webkit-mask-image: linear-gradient(#000 0%,#000 51%,transparent 96%);
  mask-image: linear-gradient(#000 0%,#000 51%,transparent 96%);
}
#landing .curve,#landing .curve.two { display: none; }
@media (min-width: 1081px) {
  #landing .hero { --hero-art-height: clamp(500px,60svh,640px); min-height: max(760px, calc(100svh - 155px)); }
  #landing .art { top: 0; width: min(1988px,100vw); height: var(--hero-art-height); }
  #landing .logo-glow { top: calc(var(--hero-art-height) * .28); }
  #landing .hero-logo { top: calc(var(--hero-art-height) * .16); width: clamp(350px,22vw,450px); height: clamp(350px,22vw,450px); }
  #landing .hero-copy { width: min(1800px,92vw); max-width: none; grid-template-columns: repeat(3,minmax(0,1fr)); margin: calc(var(--hero-art-height) - 38px) auto 0; padding-inline: 0; }
  #landing .intro h1 { font-size: 42px; }
  #landing .impact { width: 340px; justify-self: start; margin-left: clamp(20px,3vw,60px); }
  #landing .center-action { min-width: 185px; height: 48px; margin-top: 71px; padding-inline: 14px; font-size: 14px; gap: 10px; }
  #landing .indicators { position: absolute; left: 50%; bottom: 90px; margin: 0; transform: translateX(-50%); }
}
/* Five dotted letters form JYGEN and light up in sequence. */
@media (max-width: 760px) { #landing .indicators { display: flex; margin-top: 28px; } }
/* Keep the original dark CTA shape; give its arrow a small, deliberate nudge. */
#landing .dark-button { background: linear-gradient(115deg,#211815,#232323 68%,#202020); }
#landing .dark-button .arrow,#contact .project-cta .arrow,.header-cta .arrow,#landing .work-link span { transition: transform .3s cubic-bezier(.2,.8,.2,1); }
#landing .dark-button:hover .arrow,#landing .dark-button:focus-visible .arrow,#contact .project-cta:hover .arrow,#contact .project-cta:focus-visible .arrow,.header-cta:hover .arrow,.header-cta:focus-visible .arrow,#landing .work-link:hover span { transform: translateX(5px); }
#landing .intro .brand-name { color: #f75a20; font-weight: 750; }
#landing .hero-logo { animation: jygen-hero-float 7s ease-in-out infinite; }
#services .visual.has-art .provided-art { animation: jygen-art-drift 8s ease-in-out infinite alternate; }
#services .service-icon { transition: transform .35s cubic-bezier(.2,.8,.2,1),background .35s; }
#services .service-item:hover .service-icon { transform: translateY(-3px); background: #fff0e7; }
#approach .step { transition: border-color .35s,box-shadow .35s,transform .35s cubic-bezier(.2,.8,.2,1); }
#approach .step:hover { border-color: #f5b18a; box-shadow: 0 16px 30px #e4611610; transform: translateY(-5px); }
#approach .step-art { animation: jygen-card-art 5.4s ease-in-out infinite alternate; }
#approach .step:nth-child(2) .step-art { animation-delay: -1.5s; }
#approach .step:nth-child(3) .step-art { animation-delay: -3s; }
#about .about-grid { height: 615px; }
#about .about-copy { display: flex; flex-direction: column; padding: 100px 63px 55px 81px; }
#about .about-kicker { display: flex; align-items: center; gap: 12px; color: #e65a22; font-size: 12px; font-weight: 700; letter-spacing: .18em; }
#about .about-kicker::before { content: ''; width: 28px; height: 2px; background: #ed612a; }
#about .about-heading { margin: 29px 0 0; color: #151719; font-size: clamp(37px,3.55vw,51px); line-height: 1.07; font-weight: 750; letter-spacing: -.065em; }
#about .about-heading span { color: #f05d20; }
#about .about-copy .intro { position: static; width: auto; max-width: 480px; margin: 25px 0 0; color: #43474c; font-size: 18px; line-height: 1.57; letter-spacing: -.022em; font-weight: 400; }
#about .about-copy .founder-note { position: static; width: auto; max-width: 480px; margin: auto 0 0; padding-top: 17px; border-top: 1px solid #e4e6e7; color: #62666b; font-size: 14px; line-height: 1.6; }
#about .about-more { display: inline-flex; align-items: center; align-self: flex-start; gap: 9px; margin-top: 18px; color: #da5420; font-weight: 700; transition: color .2s; }
#about .about-more:hover { color: #a94017; }
#about .about-more span { display: inline-block; transition: transform .25s; }
#about .about-more:hover span { transform: translateX(5px); }
#about .about-art::after { content: ''; position: absolute; inset: 12% 7%; background: radial-gradient(ellipse at 55% 57%,#ff7c2526,transparent 60%); pointer-events: none; }
#about .factory { z-index: 1; animation: jygen-factory-float 7s ease-in-out infinite alternate; }
#capabilities .feature-art { animation: jygen-centered-art 6s ease-in-out infinite alternate; }
#capabilities .feature:nth-child(even) .feature-art { animation-delay: -2.4s; }
#faq .faq-intro { background: radial-gradient(circle at 17% 80%,#fff0e8 0%,#fff 54%); }
#faq .faq-intro .faq-stop { color: #f75d21; font-weight: inherit; }
#faq .faq-item { position: relative; transition: background .25s; }
#faq .faq-item::before { content: ''; position: absolute; z-index: 1; left: 0; top: 13px; bottom: 13px; width: 3px; background: #f66626; transform: scaleY(0); transform-origin: center; transition: transform .32s cubic-bezier(.2,.8,.2,1); }
#faq .faq-item:hover::before,#faq .faq-item:has(.faq-question[aria-expanded="true"])::before { transform: scaleY(1); }
#faq .faq-item:hover .faq-question { background: #fffaf7; }
#faq .faq-question[aria-expanded="true"] { background: #fffcfa; }
.site-header { border-bottom: 0; background: rgba(255,255,255,.88); backdrop-filter: blur(18px) saturate(1.25); -webkit-backdrop-filter: blur(18px) saturate(1.25); box-shadow: 0 9px 22px #2323230b; }
.site-header::after { content: ''; position: absolute; left: 0; right: 0; bottom: -12px; height: 18px; background: linear-gradient(180deg,rgba(255,255,255,.68),rgba(200,200,200,.13) 48%,transparent); filter: blur(7px); pointer-events: none; }
.header-cta { border-color: #1a1a1a; background: #171717; box-shadow: inset 0 1px #ffffff26,0 5px 15px #00000020; color: #fff; transition: background .25s,transform .25s,box-shadow .25s; }
.header-cta:hover,.header-cta:focus-visible { border-color: #ef6127; background: #ef6127; box-shadow: inset 0 1px #ffffff4d,0 7px 18px #e45c293b; }
#landing .dark-button,#contact .project-cta { border-radius: 11px; background: linear-gradient(115deg,#1b1b1b,#272222 68%,#1d1b1a); color: white; box-shadow: inset 0 1px #ffffff18,0 5px 15px #00000020; font-weight: 650; }
#landing .dark-button .arrow,#contact .project-cta .arrow,.header-cta .arrow { color: #fff; font-size: 20px; font-weight: 500; transform: none; }
#services,#approach,#about,#capabilities,#faq,#contact { margin-top: 20px; }
#services .services { padding-top: 24px; padding-bottom: 24px; }
#services .services-frame { max-width: 1258px; }
#services .service-content h2 a { transition: color .2s; }
#services .service-content h2 a:hover { color: #ec6028; }
#services .service-content h2 { padding-right: 105px; }
#services .service-content h2 a::after { content: ''; position: absolute; z-index: 3; inset: 0; }
#services .service-item { cursor: pointer; }
#services .service-content { padding-top: 9px; }
#services .service-more { position: absolute; right: 0; top: 15px; display: inline-flex; align-items: center; gap: 5px; color: #e75a23; font-size: 11px; font-weight: 650; line-height: 1.3; white-space: nowrap; }
#approach .step:nth-child(1) { z-index: 3; }
#approach .step:nth-child(2) { z-index: 2; }
#approach .step:nth-child(3) { z-index: 1; }
#footer .footer-art::after { content: ''; position: absolute; z-index: 1; left: 0; right: 0; bottom: -1px; height: 40%; background: linear-gradient(180deg,transparent 0%,rgba(34,34,34,.25) 38%,#222 100%); pointer-events: none; }
#approach .approach { max-width: 1314px; }
#capabilities .feature-grid { width: min(1258px,100%); max-width: 1258px; margin-inline: auto; }
#faq .faq { max-width: 1258px; margin-inline: auto; }
#contact .statements { width: min(1258px,calc(100% - 48px)); }
.header-cta:hover .arrow { transform: translateX(5px); }
#footer .footer-list a::after { transform: translateX(-5px); }
#footer .footer-list a:hover::after { transform: translateX(0); }
.motion-ready .reveal-target { opacity: 0; transform: translateY(27px); transition: opacity .75s ease,transform .8s cubic-bezier(.2,.8,.2,1); transition-delay: var(--reveal-delay,0ms); }
.motion-ready .reveal-target.is-visible { opacity: 1; transform: translateY(0); }
@keyframes jygen-hero-float { 0%,100% { transform: translate(-50%,0); } 50% { transform: translate(-50%,-9px); } }
@keyframes jygen-art-drift { from { transform: translateY(5px); } to { transform: translateY(-6px); } }
@keyframes jygen-card-art { from { transform: translateY(4px); } to { transform: translateY(-6px); } }
@keyframes jygen-centered-art { from { transform: translate(-50%,4px); } to { transform: translate(-50%,-6px); } }
@keyframes jygen-factory-float { from { transform: translate(-50%,5px); } to { transform: translate(-50%,-8px); } }
@media (max-width: 850px) {
  #about .about-grid { height: auto; }
  #about .about-copy { padding: 68px 9% 53px; min-height: 520px; }
  #about .about-heading { font-size: clamp(34px,5vw,45px); }
}
@media (max-width: 760px) {
  #services .service-item { min-height: 112px; }
  #services .service-content h2 { padding-right: 0; }
  #services .service-more { position: static; margin-top: 5px; font-size: 11px; }
  #about .about-copy { padding: 55px 27px 47px; min-height: 0; }
  #about .about-heading { font-size: clamp(37px,9vw,49px); margin-top: 23px; }
  #about .about-copy .intro { margin-top: 26px; font-size: 17px; line-height: 1.57; }
  #about .about-copy .founder-note { margin-top: 38px; font-size: 13px; }
  #faq .faq-intro { background: radial-gradient(circle at 13% 80%,#fff3ec,#fff 65%); }
}
@media (prefers-reduced-motion: reduce) {
  #landing .hero-logo,#services .visual.has-art .provided-art,#approach .step-art,#about .factory,#capabilities .feature-art { animation: none; }
  .motion-ready .reveal-target { opacity: 1; transform: none; }
}

.nav a[aria-current="page"] { background: #fff; color: #171719; box-shadow: 0 1px 3px #0000000d; }
.subpage { overflow: hidden; background: #fff; }
.subpage .container { width: min(1258px,calc(100% - 48px)); margin-inline: auto; }
.subpage .eyebrow { display: inline-flex; align-items: center; gap: 11px; color: #dd5722; font-size: 12px; font-weight: 750; letter-spacing: .2em; text-transform: uppercase; }
.subpage .eyebrow::before { content: ''; width: 24px; height: 2px; background: #f3692e; }
.subpage h1,.subpage h2,.subpage h3,.subpage p { margin-top: 0; }
.subpage h1,.subpage h2,.subpage h3 { color: #171719; letter-spacing: -.065em; }
.subpage p { color: #61636c; line-height: 1.65; }
.subpage .orange { color: #f05e24; }
.subpage .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; }
.subpage .button { display: inline-flex; justify-content: center; align-items: center; gap: 18px; min-width: 202px; min-height: 51px; padding: 0 23px; border: 0; border-radius: 11px; background: linear-gradient(115deg,#1b1b1b,#272222 68%,#1d1b1a); color: #fff; font-size: 16px; font-weight: 650; cursor: pointer; box-shadow: inset 0 1px #ffffff18,0 5px 15px #00000020; transition: transform .25s,box-shadow .25s; }
.subpage .button:hover { transform: translateY(-2px); box-shadow: inset 0 1px #ffffff18,0 10px 24px #0003; }
.subpage .button .arrow { display: inline-block; color: #fff; font-size: 20px; font-weight: 500; line-height: 1; transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.subpage .button:hover .arrow { transform: translateX(5px); }
.subpage .muted-chip { border: 1px dashed #d8dbe2; border-radius: 7px; padding: 8px 12px; color: #565a60; font-size: 12px; font-weight: 600; white-space: nowrap; }
.subpage .intro-hero { position: relative; padding: 113px 0 87px; text-align: center; background: radial-gradient(ellipse at 52% 13%,#fff4ed 0%,transparent 48%),#fff; }
.subpage .intro-hero .eyebrow { justify-content: center; }
.subpage .intro-hero h1 { max-width: 920px; margin: 22px auto 23px; font-size: clamp(48px,6.4vw,91px); line-height: 1.01; font-weight: 750; }
.subpage .intro-hero .lead { max-width: 710px; margin: 0 auto 32px; font-size: clamp(17px,1.5vw,20px); line-height: 1.62; }
.subpage .intro-hero::after { content: ''; display: block; width: min(1258px,calc(100% - 48px)); height: 1px; margin: 95px auto 0; border-top: 1px dashed #d3d6dc; }
.subpage .service-detail { padding: 86px 0 92px; scroll-margin-top: 91px; }
.subpage .service-detail:nth-of-type(odd) { background: #fcfaf8; }
.subpage .detail-frame { border: 1px dashed #d9dbe0; border-radius: 15px; overflow: hidden; background: #fff; }
.subpage .detail-frame { transition: border-color .35s ease,box-shadow .35s ease; }
.subpage .detail-hero { position: relative; display: grid; grid-template-columns: 1fr; min-height: 0; border-bottom: 1px dashed #d9dbe0; }
.subpage .detail-head { padding: 51px 50px; }
.subpage .detail-head h2 { margin: 19px 0 15px; font-size: clamp(43px,4.1vw,60px); line-height: 1.05; }
.subpage .detail-head p { max-width: 650px; margin-bottom: 26px; font-size: 17px; }
.subpage .detail-columns { display: grid; grid-template-columns: 1fr 1fr; }
.subpage .detail-columns > div { padding: 38px 49px 42px; }
.subpage .detail-columns > div + div { border-left: 1px dashed #d9dbe0; background: #fffdfb; }
.subpage .detail-columns h3 { margin-bottom: 14px; font-size: 24px; }
.subpage .detail-columns p { margin-bottom: 0; font-size: 15px; }
.subpage .examples { padding-top: 28px; }
