.landingpage {
  --tt-bg: #f0eee7;
  --tt-bg-soft: #e8e5dc;
  --tt-text: #171715;
  --tt-text-soft: rgba(23, 23, 21, 0.66);
  --tt-line: rgba(23, 23, 21, 0.14);
  --tt-line-strong: rgba(23, 23, 21, 0.28);
  --tt-accent-a: #6485ff;
  --tt-accent-b: #a86aff;
  --tt-accent-c: #ff8b5c;
  --tt-mx: 50%;
  --tt-my: 34%;
  --tt-shift: 0;
  --tt-sans: "Helvetica Neue", "SF Pro Display", "Segoe UI", Arial, sans-serif;
  --tt-serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --tt-ease: cubic-bezier(0.22, 1, 0.36, 1);
  min-width: 320px;
  overflow: clip;
  background: var(--tt-bg);
  color: var(--tt-text);
  font-family: var(--tt-sans);
  font-size: 16px;
  line-height: 1.5;
  transition: background-color 600ms var(--tt-ease), color 600ms var(--tt-ease);
}

html[data-aorta-theme="dark"] .landingpage {
  --tt-bg: #10100f;
  --tt-bg-soft: #171715;
  --tt-text: #f1efe7;
  --tt-text-soft: rgba(241, 239, 231, 0.66);
  --tt-line: rgba(241, 239, 231, 0.16);
  --tt-line-strong: rgba(241, 239, 231, 0.28);
}

.landingpage *,
.landingpage *::before,
.landingpage *::after { box-sizing: border-box; }
.landingpage a { color: inherit; text-decoration: none; }
.landingpage button { color: inherit; font: inherit; }
.landingpage ::selection { background: var(--tt-accent-b); color: #fff; }
.landingpage .tt-lang-en { display: none; }
.landingpage[data-tt-lang="en"] .tt-lang-de { display: none; }
.landingpage[data-tt-lang="en"] .tt-lang-en { display: revert; }

.tt-header-section {
  position: fixed !important;
  z-index: 30;
  inset: 0 0 auto !important;
  pointer-events: none;
}
.tt-header {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  padding: 1.35rem clamp(1.25rem, 4vw, 4.5rem);
  background: linear-gradient(to bottom, var(--tt-bg) 0%, transparent 100%);
  pointer-events: none;
}
.tt-header > * { pointer-events: auto; }
.tt-monogram {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border: 1px solid var(--tt-line-strong);
  border-radius: 50%;
  font-size: .73rem;
  font-weight: 600;
  letter-spacing: -.15em;
  transition: border-color 240ms ease, transform 240ms var(--tt-ease);
}
.tt-monogram span { grid-area: 1 / 1; transform: translateX(-.14rem); }
.tt-monogram span:last-child { font-family: var(--tt-serif); font-style: italic; transform: translateX(.14rem); }
.tt-monogram:hover { border-color: var(--tt-accent-b); transform: rotate(-8deg); }
.tt-header-controls,
.tt-language-switch { display: flex; align-items: center; }
.tt-header-controls { gap: clamp(1rem, 3vw, 2.5rem); }
.tt-language-switch { gap: .35rem; color: var(--tt-text-soft); font-size: .68rem; letter-spacing: .12em; }
.tt-language-button,
.tt-theme-toggle,
.tt-phone-reveal {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.tt-language-button { opacity: .48; }
.tt-language-button.is-active { color: var(--tt-text); opacity: 1; }
.tt-theme-toggle {
  position: relative;
  min-width: 4.8rem;
  padding-left: 2.75rem;
  color: var(--tt-text-soft);
  font-size: .68rem;
  letter-spacing: .08em;
  text-align: left;
  text-transform: uppercase;
}
.tt-theme-toggle::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 2.2rem;
  height: 1.2rem;
  border: 1px solid var(--tt-line-strong);
  border-radius: 2rem;
  content: "";
  transform: translateY(-50%);
}
.tt-theme-toggle::after {
  position: absolute;
  top: 50%;
  left: .25rem;
  width: .7rem;
  height: .7rem;
  border-radius: 50%;
  background: var(--tt-text);
  content: "";
  transform: translateY(-50%) translateX(.98rem);
  transition: transform 500ms var(--tt-ease);
}
html[data-aorta-theme="dark"] .tt-theme-toggle::after { transform: translateY(-50%) translateX(0); }

.tt-hero-section { background: var(--tt-bg); }
.tt-hero {
  position: relative;
  display: grid;
  min-height: 100svh;
  padding: clamp(7rem, 14vh, 10rem) clamp(1.25rem, 4vw, 4.5rem) clamp(2rem, 5vh, 4rem);
  align-content: space-between;
  overflow: hidden;
}
.tt-hero::after,
.tt-perspective::after,
.tt-contact::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  opacity: .024;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
  content: "";
  pointer-events: none;
}
.tt-kicker {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 1rem;
  color: var(--tt-text-soft);
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.tt-index { color: var(--tt-accent-c); font-variant-numeric: tabular-nums; }
.tt-hero-content { position: relative; z-index: 2; align-self: end; width: min(100%, 94rem); }
.tt-role { margin: 0 0 clamp(1.4rem, 4vh, 3.5rem); color: var(--tt-text-soft); font-size: clamp(.7rem, .8vw, .82rem); letter-spacing: .13em; }
.tt-headline { margin: 0; font-size: clamp(3.4rem, 9.8vw, 10.4rem); font-weight: 480; letter-spacing: -.075em; line-height: .78; }
.tt-headline-line { display: block; width: max-content; max-width: 100%; }
.tt-headline-line:nth-child(2) { margin-left: clamp(1rem, 9vw, 9rem); }
.tt-headline-line:nth-child(3) { margin-left: clamp(0rem, 2.5vw, 2.5rem); }
.tt-headline-serif { font-family: var(--tt-serif); font-weight: 400; font-style: italic; letter-spacing: -.06em; }
.tt-headline-accent {
  color: transparent;
  background: linear-gradient(92deg, var(--tt-text) 0%, var(--tt-accent-a) 42%, var(--tt-accent-b) 67%, var(--tt-accent-c) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  background-size: 180% 100%;
  animation: tt-iridescence 10s ease-in-out infinite alternate;
}
@keyframes tt-iridescence { from { background-position: 0 50%; } to { background-position: 100% 50%; } }
.tt-identity-row { display: flex; align-items: flex-end; justify-content: space-between; margin-top: clamp(2rem, 6vh, 5rem); padding-top: 1rem; border-top: 1px solid var(--tt-line-strong); }
.tt-name { margin: 0; font-size: clamp(1rem, 1.4vw, 1.35rem); letter-spacing: -.02em; }
.tt-text-link,
.tt-email-link,
.tt-back-top { display: inline-flex; align-items: center; gap: .6rem; }
.tt-text-link { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.tt-scroll-cue { position: absolute; z-index: 3; right: clamp(1.25rem, 4vw, 4.5rem); bottom: clamp(8rem, 20vh, 13rem); display: flex; align-items: center; gap: .8rem; color: var(--tt-text-soft); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; transform: rotate(90deg) translateX(100%); transform-origin: right bottom; }
.tt-scroll-line { display: block; width: 3.5rem; height: 1px; overflow: hidden; background: var(--tt-line-strong); }
.tt-scroll-line::after { display: block; width: 100%; height: 100%; background: var(--tt-text); content: ""; animation: tt-scroll-line 2.4s ease-in-out infinite; }
@keyframes tt-scroll-line { 0% { transform: translateX(-105%); } 55%,100% { transform: translateX(105%); } }

.tt-hero-field { position: absolute; z-index: 0; inset: 0; pointer-events: none; }
.tt-field-grid { position: absolute; inset: -12%; opacity: .55; background-image: linear-gradient(var(--tt-line) 1px,transparent 1px),linear-gradient(90deg,var(--tt-line) 1px,transparent 1px); background-size: clamp(42px,5vw,76px) clamp(42px,5vw,76px); -webkit-mask-image: radial-gradient(circle at var(--tt-mx) var(--tt-my),#000 0%,transparent 68%); mask-image: radial-gradient(circle at var(--tt-mx) var(--tt-my),#000 0%,transparent 68%); }
.tt-orbit { position: absolute; top: 8vh; right: -12vw; width: min(58vw,52rem); aspect-ratio: 1; border: 1px solid var(--tt-line-strong); border-radius: 50%; transform: translate3d(calc((var(--tt-mx) - 50%) * -.07),calc((var(--tt-my) - 50%) * -.07),0); }
.tt-orbit-inner { top: calc(8vh + min(14.5vw,13rem)); right: calc(-12vw + min(14.5vw,13rem)); width: min(29vw,26rem); border-style: dashed; animation: tt-spin 40s linear infinite; }
.tt-orbit-core { position: absolute; top: calc(8vh + min(24.94vw,22.36rem)); right: calc(-12vw + min(24.94vw,22.36rem)); width: min(8.12vw,7.28rem); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 35% 30%,var(--tt-accent-c),var(--tt-accent-b) 42%,var(--tt-accent-a) 78%); box-shadow: 0 0 80px rgba(139,100,255,.35); }
.tt-orbit-node { position: absolute; width: .55rem; height: .55rem; border-radius: 50%; background: var(--tt-accent-c); box-shadow: 0 0 1.5rem var(--tt-accent-c); }
.tt-orbit-node-a { top: 14vh; right: 31vw; }
.tt-orbit-node-b { top: 54vh; right: 8vw; background: var(--tt-accent-a); box-shadow: 0 0 1.5rem var(--tt-accent-a); }
@keyframes tt-spin { to { transform: rotate(360deg); } }

.tt-perspective-section { overflow: clip; background: var(--tt-bg); }
.tt-perspective { position: relative; display: grid; grid-template-columns: minmax(15rem,.7fr) 1.3fr; padding: clamp(9rem,20vh,15rem) clamp(1.25rem,4vw,4.5rem); align-items: start; gap: clamp(2rem,7vw,8rem); overflow: visible; }
.tt-perspective-copy { position: sticky; z-index: 2; top: clamp(6rem,14vh,9rem); align-self: start; }
.tt-section-title,
.tt-contact-title { margin: clamp(1.6rem,4vh,3rem) 0 0; font-size: clamp(2.9rem,6.6vw,7.5rem); font-weight: 470; letter-spacing: -.065em; line-height: .92; }
.tt-section-title span,
.tt-section-title em,
.tt-contact-title span,
.tt-contact-title em { display: block; }
.tt-section-title em,
.tt-contact-title em { font-family: var(--tt-serif); font-weight: 400; font-style: italic; }
.tt-thoughts { position: relative; z-index: 2; display: grid; margin-top: 0; }
.tt-thought { display: grid; min-height: 46svh; grid-template-columns: 3rem 1fr; padding: 1.7rem 0; align-content: center; border-top: 1px solid var(--tt-line); gap: 1rem; opacity: calc(.24 + var(--tt-active,0) * .76); transform: translateX(calc((1 - var(--tt-active,0)) * 2rem)); transition: opacity 650ms var(--tt-ease),transform 750ms var(--tt-ease); }
.tt-thought:last-child { border-bottom: 1px solid var(--tt-line); }
.tt-thought-index { padding-top: .35rem; color: var(--tt-accent-c); font-size: .64rem; letter-spacing: .1em; }
.tt-thought p { max-width: 25ch; margin: 0; font-family: var(--tt-serif); font-size: clamp(1.3rem,2.2vw,2.15rem); line-height: 1.2; }
.tt-shift-visual { position: absolute; z-index: 0; bottom: -8vw; left: -7vw; width: min(48vw,44rem); aspect-ratio: 1; opacity: .78; transform: rotate(calc(-18deg + var(--tt-shift) * 72deg)) scale(calc(.76 + var(--tt-shift) * .32)); }
.tt-axis { position: absolute; top: 50%; left: 50%; background: var(--tt-line-strong); }
.tt-axis-x { width: 140%; height: 1px; transform: translate(-50%,-50%); }
.tt-axis-y { width: 1px; height: 140%; transform: translate(-50%,-50%); }
.tt-shift-ring { position: absolute; border: 1px solid var(--tt-line-strong); border-radius: 50%; }
.tt-shift-ring-one { inset: 9%; }
.tt-shift-ring-two { inset: 31%; border-style: dashed; }
.tt-shift-point { position: absolute; width: clamp(.65rem,1.2vw,1rem); aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 2rem currentColor; }
.tt-shift-point-one { top: 6%; left: 47%; color: var(--tt-accent-a); background: currentColor; }
.tt-shift-point-two { right: 9%; bottom: 27%; color: var(--tt-accent-b); background: currentColor; }
.tt-shift-point-three { bottom: 13%; left: 17%; color: var(--tt-accent-c); background: currentColor; }

.tt-contact-section { background: var(--tt-bg); border-top: 1px solid var(--tt-line); }
.tt-contact { position: relative; display: flex; min-height: 100svh; flex-direction: column; justify-content: space-between; padding: clamp(7rem,14vh,10rem) clamp(1.25rem,4vw,4.5rem) clamp(2rem,5vh,4rem); overflow: hidden; }
.tt-contact-header,
.tt-contact-details,
.tt-footer { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; }
.tt-availability { display: flex; margin: 0; align-items: center; gap: .65rem; color: var(--tt-text-soft); font-size: .72rem; }
.tt-availability-dot { width: .48rem; height: .48rem; border-radius: 50%; background: #73c883; box-shadow: 0 0 .7rem rgba(115,200,131,.7); }
.tt-contact-main { position: relative; z-index: 2; padding-block: clamp(5rem,12vh,9rem); }
.tt-contact-title { margin-top: 0; }
.tt-contact-title em { margin-left: clamp(0rem,7vw,7rem); color: transparent; background: linear-gradient(90deg,var(--tt-text),var(--tt-accent-a),var(--tt-accent-b),var(--tt-accent-c)); background-clip: text; -webkit-background-clip: text; }
.tt-email-link { position: relative; margin-top: clamp(3rem,7vh,5.5rem); font-size: clamp(1.4rem,3vw,3rem); letter-spacing: -.04em; }
.tt-email-link::after { position: absolute; right: 0; bottom: -.3rem; left: 0; height: 1px; background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform 450ms var(--tt-ease); }
.tt-email-link:hover::after { transform: scaleX(1); transform-origin: left; }
.tt-email-arrow { transition: transform 350ms var(--tt-ease); }
.tt-email-link:hover .tt-email-arrow { transform: translate(.25rem,-.25rem); }
.tt-contact-details { padding-top: 1.5rem; border-top: 1px solid var(--tt-line-strong); }
.tt-detail-block { display: grid; gap: .35rem; font-size: .9rem; }
.tt-detail-block-right { text-align: right; }
.tt-detail-label { color: var(--tt-text-soft); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.tt-phone-reveal { min-width: 8rem; color: var(--tt-text); text-align: left; }
.tt-phone-reveal:hover { color: var(--tt-accent-c); }
.tt-phone-number { display: none; }
.tt-detail-block.is-visible .tt-phone-reveal { display: none; }
.tt-detail-block.is-visible .tt-phone-number { display: inline; }

.tt-footer-section { background: var(--tt-bg); border-top: 1px solid var(--tt-line); }
.tt-footer { min-height: 6rem; padding: 1.5rem clamp(1.25rem,4vw,4.5rem); color: var(--tt-text-soft); font-size: .7rem; letter-spacing: .04em; }
.tt-back-top { transition: color 200ms ease; }
.tt-back-top:hover { color: var(--tt-text); }
.landingpage :focus-visible { outline: 2px solid var(--tt-accent-c); outline-offset: 4px; }

@media (max-width:820px) {
  .tt-hero { padding-bottom: 2rem; }
  .tt-orbit-outer { top: 12vh; right: -35vw; width: 92vw; }
  .tt-orbit-inner { top: calc(12vh + 23vw); right: -12vw; width: 46vw; }
  .tt-orbit-core { top: calc(12vh + 39.5vw); right: 4.5vw; width: 13vw; }
  .tt-role { max-width: 28ch; }
  .tt-headline { font-size: clamp(3.25rem,15.5vw,6.5rem); line-height: .86; }
  .tt-headline-line:nth-child(2) { margin-left: .6rem; }
  .tt-headline-line:nth-child(3) { margin-left: 0; font-size: .85em; }
  .tt-scroll-cue { display: none; }
  .tt-perspective { grid-template-columns: 1fr; padding-top: 16svh; padding-bottom: 18svh; align-content: start; gap: 3rem; }
  .tt-perspective-copy { position: relative; top: auto; }
  .tt-section-title,.tt-contact-title { font-size: clamp(3rem,13vw,5.5rem); }
  .tt-thoughts { margin-top: 0; }
  .tt-thought { min-height: 36svh; padding: 1.1rem 0; }
  .tt-thought p { font-size: clamp(1.2rem,4.7vw,1.7rem); }
  .tt-shift-visual { bottom: 28%; left: -25vw; width: 80vw; opacity: .42; }
  .tt-contact-header { align-items: flex-start; gap: 1.2rem; }
  .tt-availability { max-width: 17rem; justify-content: flex-end; text-align: right; }
}

@media (max-width:520px) {
  .tt-header { padding-top: 1rem; }
  .tt-theme-toggle { min-width: 2.2rem; padding-left: 2.2rem; font-size: 0; }
  .tt-hero-kicker { margin-top: 1.5rem; }
  .tt-identity-row { align-items: center; }
  .tt-contact-header,.tt-contact-details { align-items: flex-start; }
  .tt-availability { max-width: 13rem; font-size: .64rem; }
  .tt-contact-title em { margin-left: 0; }
  .tt-email-link { font-size: clamp(1.3rem,7vw,2rem); }
  .tt-footer { min-height: 5rem; }
}

@media (prefers-reduced-motion:reduce) {
  .landingpage *,
  .landingpage *::before,
  .landingpage *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .tt-orbit,.tt-shift-visual { transform: none !important; }
}
