/* Reference motion layers. All content remains readable without JavaScript. */
:root { scroll-behavior: auto; scroll-padding-top: 0; scrollbar-width: none; touch-action: pan-y; }
:root::-webkit-scrollbar { display: none; }
body { touch-action: pan-y; }
[hidden] { display: none !important; }
.dark-surface {
  --ink: #e2e8e4;
  --muted: #a5b3ab;
  --line: #29372f;
  --mint-dark: #34d399;
  background: #0a0f0d;
  color: var(--ink);
}
.dark-surface em { color: var(--mint); }
.dark-surface a:focus-visible,
.dark-surface button:focus-visible { outline-color: var(--mint); }
.intro-flow { position: relative; }
.hero-stage {
  position: sticky;
  top: 0;
  z-index: 1;
  height: 100svh;
  min-height: 0;
  transform-origin: 50% 50%;
}
.hero {
  min-height: 100%;
  height: 100%;
  max-height: none;
  padding: clamp(128px, 16svh, 180px) clamp(24px, 7vw, 112px) clamp(104px, 13svh, 148px);
}
.hero-content { max-width: 1040px; padding-top: 0; }
.hero h1 { position: relative; }
.hero .first-name { font-size: clamp(64px, min(14vw, 23svh), 208px); }
.hero .last-name { font-size: clamp(92px, min(14.2vw, 22svh), 208px); }
.hero-description { font-size: clamp(16px, 1.45vw, 19px); line-height: 1.55; margin: 20px auto 8px; }
.hero-actions { margin-top: 20px; }
.hero-actions .button { white-space: nowrap; }
.founder-link { min-height: 44px; }
.wordmark { min-height: 44px; }
.text-link { min-height: 44px; padding-top: 10px; padding-bottom: 10px; }
.header .desktop-navigation a { min-height: 44px; }
.hero-bottom a, .footer > a:last-child { min-height: 44px; }
.email-link { min-height: 44px; }
.copy-email { min-width: 44px; min-height: 44px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; border-radius: 28px; font-size: 12px; }
.copy-email .icon { width: 18px; height: 18px; }
.dark-flow {
  position: relative;
  z-index: 2;
  border-radius: 32px 32px 0 0;
}
.about { border-top: 0; }
.about .statement a { text-decoration-color: var(--mint); }
.about-note .text-link { border-color: var(--line); }
.expertise .section-heading { margin-bottom: 80px; }
.service-stack { position: relative; border: 0; padding-bottom: 96px; }
.service-panel {
  position: relative;
  background: #0a0f0d;
  padding: 0 0 80px;
}
.service-panel h3 {
  border-top: 1px solid var(--line);
  padding: 30px 5% 35px 8.333%;
  font-size: clamp(28px, 3.4vw, 48px);
  line-height: 1.1;
  letter-spacing: -.03em;
  font-weight: 650;
}
.service-content { margin-left: 42%; padding-top: 20px; }
.service-content p { font-size: 18px; line-height: 1.7; }
.service-topics { list-style: none; margin: 28px 0 0; padding: 0; counter-reset: topic; }
.service-topics li {
  display: flex;
  gap: 18px;
  align-items: baseline;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  font-size: 16px;
  line-height: 1.5;
  font-weight: 600;
  counter-increment: topic;
}
.service-topics li:last-child { border-bottom: 0; }
.service-topics li::before {
  content: counter(topic, decimal-leading-zero);
  font-size: 12px;
  color: #6ee7b7;
  font-variant-numeric: tabular-nums;
}
.curve-bridge { position: relative; z-index: 3; overflow: hidden; pointer-events: none; }
.curve-fill { width: 120%; position: relative; left: -10%; height: 150px; border-radius: 0 0 50% 50%; }
.curve-to-light { background: var(--paper); }
.curve-to-light .curve-fill { background: #0a0f0d; }
.curve-to-dark { background: #0a0f0d; }
.curve-to-dark .curve-fill { background: var(--paper); }
.work { position: relative; z-index: 3; background: var(--paper); }
.featured-project.case-study { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; gap: 48px; margin-bottom: 50px; }
.product-screen { padding: 12px; background: #d9e0dc; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px; }
.product-screen img { width: 100%; height: auto; display: block; }
.screen-caption { color: var(--muted); font-size: 11px; line-height: 1.5; padding: 0 3px 2px; }
.case-copy .project-meta { padding: 0; margin-bottom: 20px; display: block; }
.case-copy .project-meta h3 { font-size: clamp(28px, 3vw, 42px); }
.case-copy .project-role { display: inline-flex; margin-top: 12px; }
.case-summary { font-size: 15px; color: var(--muted); line-height: 1.75; max-width: 60ch; }
.case-details { display: grid; gap: 14px; margin: 24px 0; }
.case-details dt { font-size: 12px; font-weight: 600; }
.case-details dd { margin: 5px 0 0; font-size: 14px; color: var(--muted); line-height: 1.65; }
.case-study .tags { justify-content: flex-start; margin-top: 20px; }
.case-study .text-link { margin-top: 22px; align-self: flex-start; }
.secondary-case { display: flex; flex-direction: column; }
.project-grid .product-screen { aspect-ratio: 1.55; padding: 10px; justify-content: center; }
.project-grid .product-screen img { height: 100%; min-height: 0; object-fit: contain; }
.secondary-case .komak-art { aspect-ratio: 1.55; }
.secondary-case .komak-graphic { width: 170px; height: 110px; top: 42%; }
.secondary-case .komak-art > strong { position: absolute; bottom: 24px; left: 24px; font-size: 21px; letter-spacing: -.03em; font-weight: 500; }
.secondary-case .project-meta { padding: 22px 0 16px; flex-wrap: wrap; }
.secondary-case .case-summary { flex-grow: 1; }
.work-footer { margin-top: 38px; border-top: 1px solid var(--line); padding-top: 24px; }
.header { position: fixed; }
.header .desktop-navigation { display: flex; }
.floating-menu {
  display: grid;
  place-items: center;
  position: fixed;
  top: 24px;
  right: 24px;
  z-index: 110;
  width: 60px;
  height: 60px;
  padding: 0;
  border: 1px solid #435248;
  border-radius: 50%;
  background: #111c16;
  color: #e2e8e4;
  opacity: 0;
  visibility: hidden;
  transition: background .25s, border-color .25s;
}
.floating-menu:hover { background: #20362a; border-color: var(--mint); }
.floating-menu .menu-lines {
  display: block;
  width: 20px;
  height: 10px;
  border-top: 1px solid;
  border-bottom: 1px solid;
  position: relative;
  transition: transform .25s;
}
.floating-menu[aria-expanded=true] .menu-lines { height: 0; border-bottom: 0; transform: rotate(45deg); }
.floating-menu[aria-expanded=true] .menu-lines::after {
  content: ''; position: absolute; width: 20px; height: 1px;
  background: currentColor; transform: rotate(90deg); left: 0; top: -1px;
}
.menu-backdrop { position: fixed; inset: 0; z-index: 98; background: rgb(0 0 0 / 55%); }
.menu-panel {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 100;
  width: min(720px, 65vw);
  padding: clamp(100px, 16vh, 160px) 65px 45px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.menu-panel nav { display: flex; flex-direction: column; gap: 18px; }
.menu-panel nav a { min-height: 44px; font-size: clamp(28px, 3.5vw, 52px); line-height: 1.15; letter-spacing: -.035em; }
.menu-panel nav a:hover { color: var(--mint); }
.menu-panel nav em { font-size: 1.12em; }
.menu-email { display: flex; min-height: 44px; align-items: center; margin: 50px 0 25px; font-size: 14px; overflow-wrap: anywhere; }
.menu-panel .text-link { font-size: 12px; }
.contact-surface { position: relative; }
.contact { overflow: hidden; }
.footer.dark-surface { border-color: var(--line); }
.marquee { position: relative; z-index: 3; background: var(--paper); margin: 0; padding: 18px 0; border-top: 1px solid var(--line); }
.marquee-track { animation: none; }
.marquee-track > span { font-size: 13px; letter-spacing: .05em; gap: 24px; font-weight: 500; padding-right: 24px; }
.marquee-track em { font-family: Geist, Arial, sans-serif; font-size: 1em; font-style: normal; }
.marquee-star { color: var(--mint-dark); font-size: 17px; padding: 0 10px; }
.scroll-word { transform-origin: 50% 100%; }
.hero-char, .heading-char { transform-origin: 50% 100%; }
.heading-word { display: inline-block; white-space: nowrap; }
@media (max-width: 1000px) and (min-width: 768px) {
  .round-link { top: 110px; right: 7vw; width: 80px; height: 80px; }
  .round-link > span { inset: 22px; }
  .service-content { margin-left: 37%; }
  .service-panel h3 { padding-left: 0; font-size: 34px; }
  .service-content p { font-size: 16px; }
}
@media (max-width: 767px) {
  .hero-stage { min-height: 0; height: min(100svh, 760px); }
  .hero { padding: 112px max(24px, env(safe-area-inset-left)) max(96px, env(safe-area-inset-bottom)); }
  .hero .first-name { font-size: clamp(60px, min(16.2vw, 14svh), 112px); }
  .hero .last-name { font-size: clamp(104px, min(24vw, 21svh), 160px); }
  .hero-description { font-size: 16px; line-height: 1.5; margin: 20px auto 8px; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 18px; }
  .hero-actions .button { padding: 0 10px; gap: 6px; font-size: 11px; }
  .hero-actions .icon { width: 14px; height: 14px; }
  .hero .round-link { top: 96px; width: 64px; height: 64px; }
  .hero .round-link > span { inset: 17px; }
  .contact-top h2 { font-size: clamp(38px, 10.5vw, 64px); }
  .email-row { flex-direction: column; align-items: flex-start; gap: 14px; }
  .email-link { font-size: clamp(17px, 5.2vw, 28px); gap: 10px; }
  .copy-email { min-width: 44px; min-height: 44px; padding: 0 16px; }
  .copy-email .icon { width: 18px; height: 18px; }
  .featured-project.case-study { grid-template-columns: 1fr; gap: 24px; margin-bottom: 36px; }
  .case-copy .project-meta h3 { font-size: 30px; }
  .case-copy .project-meta { margin-bottom: 16px; }
  .case-details { margin: 20px 0; }
  .product-screen { padding: 8px; gap: 8px; }
  .project-grid { gap: 38px; }
  .project-grid .product-screen { padding: 8px; }
  .work { padding-top: 64px; padding-bottom: 64px; }
  .work-footer { margin-top: 28px; }
  .header { height: 80px; }
  .header .desktop-navigation { display: none; }
  .floating-menu { top: 20px; right: 24px; width: 44px; height: 44px; }
  .menu-panel { width: 100%; padding: 110px 30px 40px; }
  .menu-panel nav { gap: 23px; }
  .menu-panel nav a { font-size: clamp(30px, 8vw, 45px); }
  .dark-flow { border-radius: 28px 28px 0 0; }
  .expertise .section-heading { margin-bottom: 40px; }
  .service-stack { padding-bottom: 25px; }
  .service-panel { padding-bottom: 45px; }
  .service-panel h3 { padding: 24px 0 10px; font-size: 28px; }
  .service-content { margin-left: 0; padding-top: 12px; }
  .service-content p { font-size: 15px; line-height: 1.7; }
  .service-topics { margin-top: 23px; }
  .service-topics li { font-size: 14px; padding: 13px 0; }
  .curve-fill { height: 100px; }
}
@media (max-height: 700px) {
  .hero { padding-top: 112px; padding-bottom: 88px; }
  .hero-description { font-size: 16px; margin-top: 18px; margin-bottom: 10px; }
  .hero-actions { margin-top: 22px; }
  .hero .round-link { display: none; }
}
@media (max-height: 540px) {
  .hero-stage { height: auto; position: relative; }
  .hero { height: auto; min-height: 100svh; padding-top: 128px; padding-bottom: 104px; }
}
@media (prefers-reduced-motion: reduce) {
  .header { position: absolute; }
  .hero-stage { position: relative; }
  .floating-menu { opacity: 1; visibility: visible; }
  .curve-fill { height: 64px; }
}
