/* Shared styles extracted from the Claude Design artboards. */
body{margin:0;background:#F6F4EF;font-family:Poppins,"Helvetica Neue",Helvetica,sans-serif;color:#222A35;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}a:hover{color:inherit}
button{font-family:inherit;cursor:pointer}
@keyframes tt-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.tt-marquee{animation:tt-marquee 60s linear infinite}
@keyframes tt-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.tt-float{animation:tt-float 5.6s ease-in-out infinite}
.tt-float-2{animation:tt-float 6.4s ease-in-out .8s infinite}
.tt-float-3{animation:tt-float 7.2s ease-in-out 1.6s infinite}
@keyframes tt-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}
.tt-pulse{animation:tt-pulse 1.8s ease-in-out infinite}
@keyframes tt-travel{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:calc(100% - 10px);opacity:0}}
.tt-travel{position:absolute;top:-4px;left:0;animation:tt-travel 3.4s cubic-bezier(.6,0,.3,1) infinite}
@keyframes tt-blink{0%,92%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.tt-eye{transform-box:fill-box;transform-origin:center;animation:tt-blink 5s infinite}
.tt-card{transition:border-color .35s ease-out,transform .35s ease-out,background-color .35s ease-out}
.tt-card:hover{transform:translateY(-4px);border-color:#C8A47B}
.tt-row{transition:background-color .35s ease-out}
.tt-row:hover{background-color:rgba(200,164,123,.08)}
.tt-link .tt-arrow{transition:transform .35s ease-out}
.tt-link:hover .tt-arrow{transform:translateX(5px)}
.tt-btn{transition:background-color .3s ease-out,color .3s ease-out,border-color .3s ease-out}
.tt-gold:hover{background-color:#D6B790}
.tt-ghost-d:hover{border-color:#EEF0F3}
.tt-ghost-l:hover{background-color:#222A35;color:#FFFFFF}
@supports (offset-path: path("M0 0 L1 1")){}
.tt-mp{position:absolute;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:999px;background:#C8A47B;offset-rotate:0deg;offset-anchor:center;animation:tt-move 2.8s cubic-bezier(.5,0,.3,1) infinite}
@keyframes tt-move{0%{offset-distance:0%;opacity:0}12%{opacity:1}88%{opacity:1}100%{offset-distance:100%;opacity:0}}
.tt-pay1{offset-path:path("M70 130 C250 130 250 50 400 50")}
.tt-pay2{offset-path:path("M70 130 L400 130");animation-delay:.45s}
.tt-pay3{offset-path:path("M70 130 C250 130 250 210 400 210");animation-delay:.9s}
.tt-rec1{offset-path:path("M170 50 C330 50 330 130 490 130")}
.tt-rec2{offset-path:path("M170 130 L490 130");animation-delay:.45s}
.tt-rec3{offset-path:path("M170 210 C330 210 330 130 490 130");animation-delay:.9s}
@keyframes tt-scan{0%{transform:translateY(0);opacity:0}8%{opacity:.9}92%{opacity:.9}100%{transform:translateY(240px);opacity:0}}
.tt-scan{animation:tt-scan 3.2s ease-in-out infinite}
@keyframes tt-sweep{0%,15%{transform:translate(0,0)}55%,80%{transform:translate(334px,134px)}100%{transform:translate(334px,134px);opacity:0}}
.tt-sweep{animation:tt-sweep 3.6s cubic-bezier(.6,0,.3,1) infinite}
.tt-panel{transition:flex-grow .6s cubic-bezier(.6,0,.2,1),background-color .45s ease-out}
.tt-fade{animation:tt-fade .5s ease-out both}
@keyframes tt-fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tt-fill{transition:width .6s cubic-bezier(.6,0,.2,1)}
.tt-step{transition:color .35s ease-out,border-color .35s ease-out}
.tt-sub a{transition:color .3s ease-out,border-color .3s ease-out}
@keyframes tt-ck1{0%,12%{background:transparent;border-color:rgba(238,240,243,.3)}16%,94%{background:#C8A47B;border-color:#C8A47B}100%{background:transparent}}
@keyframes tt-ck2{0%,28%{background:transparent;border-color:rgba(238,240,243,.3)}32%,94%{background:#C8A47B;border-color:#C8A47B}100%{background:transparent}}
@keyframes tt-ck3{0%,44%{background:transparent;border-color:rgba(238,240,243,.3)}48%,94%{background:#C8A47B;border-color:#C8A47B}100%{background:transparent}}
@keyframes tt-ck4{0%,60%{background:transparent;border-color:rgba(238,240,243,.3)}64%,94%{background:#C8A47B;border-color:#C8A47B}100%{background:transparent}}
@keyframes tt-ck5{0%,76%{background:transparent;border-color:rgba(238,240,243,.3)}80%,94%{background:#C8A47B;border-color:#C8A47B}100%{background:transparent}}
.tt-ck1{animation:tt-ck1 8s linear infinite}.tt-ck2{animation:tt-ck2 8s linear infinite}.tt-ck3{animation:tt-ck3 8s linear infinite}.tt-ck4{animation:tt-ck4 8s linear infinite}.tt-ck5{animation:tt-ck5 8s linear infinite}
@keyframes tt-bar{0%,12%{width:0%}16%{width:20%}32%{width:40%}48%{width:60%}64%{width:80%}80%,94%{width:100%}100%{width:0%}}
.tt-bar{animation:tt-bar 8s linear infinite}
@keyframes tt-ready{0%,79%{opacity:0}82%,94%{opacity:1}100%{opacity:0}}
.tt-ready{animation:tt-ready 8s linear infinite}
@keyframes tt-deal{0%,18%{transform:translateX(0)}30%,48%{transform:translateX(163px)}60%,90%{transform:translateX(326px)}100%{transform:translateX(326px);opacity:0}}
.tt-deal{animation:tt-deal 7s cubic-bezier(.6,0,.2,1) infinite}
@keyframes tt-won{0%,58%{opacity:0}62%,92%{opacity:1}100%{opacity:0}}
.tt-won{animation:tt-won 7s linear infinite}
@keyframes tt-spin{to{transform:rotate(360deg)}}
@keyframes tt-spin-r{to{transform:rotate(-360deg)}}
.tt-orbit{animation:tt-spin 60s linear infinite}
.tt-orbit .tt-upright{animation:tt-spin-r 60s linear infinite}
.tt-ring-spin{animation:tt-spin 40s linear infinite}
@keyframes tt-ripple{0%{transform:translate(-50%,-50%) scale(1);opacity:.5}100%{transform:translate(-50%,-50%) scale(1.9);opacity:0}}
.tt-ripple{animation:tt-ripple 3.2s ease-out infinite}
.tt-ripple-2{animation:tt-ripple 3.2s ease-out 1.6s infinite}
@keyframes tt-flow{0%{offset-distance:0%;opacity:0}15%{opacity:1}85%{opacity:1}100%{offset-distance:100%;opacity:0}}
.tt-flow{position:absolute;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:999px;background:#C8A47B;box-shadow:0 0 12px rgba(200,164,123,.8);offset-rotate:0deg;animation:tt-flow 2.6s cubic-bezier(.5,0,.3,1) infinite}
.tt-f1{offset-path:path("M375 92 L375 280")}
.tt-f2{offset-path:path("M563 280 L375 280");animation-delay:.65s}
.tt-f3{offset-path:path("M375 468 L375 280");animation-delay:1.3s}
.tt-f4{offset-path:path("M187 280 L375 280");animation-delay:1.95s}
@keyframes tt-g1{0%,2%{border-color:rgba(238,240,243,.1)}6%,22%{border-color:#C8A47B}28%,100%{border-color:rgba(238,240,243,.1)}}@keyframes tt-g2{0%,17%{border-color:rgba(238,240,243,.1)}21%,37%{border-color:#C8A47B}43%,100%{border-color:rgba(238,240,243,.1)}}@keyframes tt-g3{0%,32%{border-color:rgba(238,240,243,.1)}36%,52%{border-color:#C8A47B}58%,100%{border-color:rgba(238,240,243,.1)}}.tt-g1{animation:tt-g1 8s linear infinite}.tt-g2{animation:tt-g2 8s linear infinite}.tt-g3{animation:tt-g3 8s linear infinite}@keyframes tt-d1{0%,8%{top:0;opacity:0}10%{opacity:1}22%{top:63px;opacity:1}24%,100%{top:63px;opacity:0}}@keyframes tt-d2{0%,23%{top:0;opacity:0}25%{opacity:1}37%{top:63px;opacity:1}39%,100%{top:63px;opacity:0}}@keyframes tt-d3{0%,38%{top:0;opacity:0}40%{opacity:1}52%{top:63px;opacity:1}54%,100%{top:63px;opacity:0}}.tt-d1{animation:tt-d1 8s linear infinite}.tt-d2{animation:tt-d2 8s linear infinite}.tt-d3{animation:tt-d3 8s linear infinite}@keyframes tt-l2{0%,28%{background:transparent;border-color:#D5CFC2}32%,94%{background:#C8A47B;border-color:#C8A47B}100%{background:transparent;border-color:#D5CFC2}}@keyframes tt-l3{0%,44%{background:transparent;border-color:#D5CFC2}48%,94%{background:#C8A47B;border-color:#C8A47B}100%{background:transparent;border-color:#D5CFC2}}@keyframes tt-l4{0%,60%{background:transparent;border-color:#D5CFC2}64%,94%{background:#C8A47B;border-color:#C8A47B}100%{background:transparent;border-color:#D5CFC2}}.tt-l2{animation:tt-l2 8s linear infinite}.tt-l3{animation:tt-l3 8s linear infinite}.tt-l4{animation:tt-l4 8s linear infinite}
@keyframes tt-pop{0%{opacity:0;transform:translateY(12px)}6%,30%{opacity:1;transform:none}36%,100%{opacity:0;transform:translateY(-6px)}}.tt-pop{animation:tt-pop 9s ease-out infinite both}@keyframes tt-drift{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.015)}}.tt-drift{animation:tt-drift 9s ease-in-out infinite}
@supports (animation-timeline: scroll()){@keyframes tt-dev-in{from{opacity:0;transform:translate(48px,36px) scale(.94)}to{opacity:1;transform:none}}.tt-dev-ipad,.tt-dev-phone{animation:tt-dev-in linear both;animation-timeline:scroll(root)}.tt-dev-ipad{animation-range:20px 220px}.tt-dev-phone{animation-range:160px 360px}}@media (prefers-reduced-motion:reduce){.tt-dev-ipad,.tt-dev-phone{animation:none!important;opacity:1!important;transform:none!important}*{animation:none!important;transition:none!important}.tt-bar{width:100%}.tt-ck1,.tt-ck2,.tt-ck3,.tt-ck4,.tt-ck5{background:#C8A47B!important;border-color:#C8A47B!important}}
@keyframes tt-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.tt-o .tt-o-more{max-height:0;opacity:0;overflow:hidden;transition:max-height .5s cubic-bezier(.6,0,.2,1),opacity .4s ease-out}
.tt-o:hover .tt-o-more,.tt-o:focus-within .tt-o-more{max-height:240px;opacity:1}
.tt-o .tt-o-hint{transition:opacity .3s ease-out}
.tt-o:hover .tt-o-hint{opacity:0}
.tt-o{transition:background-color .4s ease-out,transform .35s ease-out}
.tt-o:hover{background-color:#222A35;color:#EEF0F3;transform:translateY(-4px)}
.tt-o:hover .tt-o-num{color:#1F9BEC}
.tt-o:hover .tt-o-mute{color:#AEB5C0}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.tt-list li::marker{color:#C8A47B}

/* ---- Production layer: runtime markers, accessibility, responsive overrides ---- */
dc-if, dc-for, dc-item { display: contents; }
[hidden], dc-if[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { background: #F6F4EF; }
img { max-width: 100%; }
.tt-skip { position: absolute; left: 16px; top: -60px; z-index: 200; background: #C8A47B; color: #222A35; padding: 12px 18px; border-radius: 999px; font-weight: 500; }
.tt-skip:focus { top: 12px; }
:focus-visible { outline: 2px solid #C8A47B; outline-offset: 3px; }
.tt-nutshell { min-height: 420px; }

/* Newsletter popup (site.js). data-mode="modal" on tablets and desktops, "card" on phones. */
.tt-nlp { font-family: Poppins, "Helvetica Neue", Helvetica, sans-serif; color: #222A35; background: #FFFFFF; border: 1px solid #E3DED3; border-radius: 20px; box-sizing: border-box; padding: 40px; display: flex; flex-direction: column; gap: 14px; }
.tt-nlp:not([open]) { display: none; }
.tt-nlp[data-mode="modal"] { width: min(560px, calc(100vw - 48px)); max-height: calc(100dvh - 48px); overflow: auto; }
.tt-nlp::backdrop { background: rgba(34, 42, 53, 0.6); }
.tt-nlp-x { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 999px; background: transparent; color: #5D6470; cursor: pointer; }
.tt-nlp-x:hover { background: #F6F4EF; color: #222A35; }
.tt-nlp-eyebrow { font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: #5D6470; }
.tt-nlp-h { margin: 0; font-size: 36px; line-height: 1.05; font-weight: 500; letter-spacing: -0.04em; padding-right: 36px; }
.tt-nlp-h span { color: #C8A47B; }
.tt-nlp-p { margin: 0; font-size: 16px; line-height: 1.6; color: #5D6470; }
.tt-nlp-form { min-height: 120px; }
.tt-nlp-go { display: none; }
.tt-nlp[data-mode="card"] { position: fixed; inset: auto 12px 12px 12px; margin: 0; width: auto; z-index: 150; padding: 20px; gap: 8px; box-shadow: 0 12px 40px rgba(34, 42, 53, 0.25); }
.tt-nlp[data-mode="card"] .tt-nlp-x { top: 6px; right: 6px; }
.tt-nlp[data-mode="card"] .tt-nlp-h { font-size: 24px; }
.tt-nlp[data-mode="card"] .tt-nlp-p { font-size: 14px; }
.tt-nlp[data-mode="card"] .tt-nlp-form { display: none; }
.tt-nlp[data-mode="card"] .tt-nlp-go { display: flex; align-items: center; justify-content: center; height: 48px; margin-top: 6px; border-radius: 999px; background: #C8A47B; color: #222A35; font-size: 16px; font-weight: 500; text-decoration: none; }

/* Page height follows the content at every width (the artboards carry a fixed canvas height,
   which left empty space above the footer whenever the content came out shorter). */
#top { height: auto !important; }
/* Treasury Sales pipeline: the deal card moves column to column at any width. */
.tt-deal { width: calc((100% - 24px) / 3) !important; animation-name: tt-deal-fluid !important; }
/* Scroll-in motion (site.js adds tt-rv to blocks below the first screen, tt-in when they appear). */
.tt-rv { opacity: 0; transform: translateY(28px); transition: opacity 0.7s ease-out, transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); }
.tt-rv.tt-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .tt-rv { opacity: 1; transform: none; transition: none; } }

/* Summit photo gallery: pauses under the pointer; without motion it scrolls sideways by hand; shorter on phones. */
.tt-gallery:hover .tt-marquee { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { .tt-gallery { overflow-x: auto !important; } }
@media (max-width: 760px) { .tt-gallery .tt-marquee > div { height: 300px !important; } }
/* Cards and buttons respond to the pointer. */
@media (hover: hover) {
  #top section a.tt-row, #top section a[style*="border-radius: 20px"], #top section a[style*="border-radius: 16px"] { transition: transform 0.25s ease, box-shadow 0.25s ease; }
  #top section a.tt-row:hover, #top section a[style*="border-radius: 20px"]:hover, #top section a[style*="border-radius: 16px"]:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(34, 42, 53, 0.12); }
  .tt-btn { transition: transform 0.2s ease, filter 0.2s ease; }
  .tt-btn:hover { transform: translateY(-1px); filter: brightness(1.05); }
}
/* Pill buttons stay on one line above phone width. */
@media (min-width: 761px) { .tt-pill { white-space: nowrap; } }

/* Wide screens: keep content to the 1440 design width while backgrounds run full bleed. */
@media (min-width: 1441px) {
  .tt-wrap { padding-left: max(64px, calc(50% - 656px)) !important; padding-right: max(64px, calc(50% - 656px)) !important; }
}

/* Mobile menu (hidden on desktop) */
.tt-burger { display: none; width: 44px; height: 44px; border: 1px solid rgba(238,240,243,0.28); border-radius: 999px; background: transparent; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 0; }
.tt-burger span { display: block; width: 18px; height: 1.5px; background: #EEF0F3; transition: transform .25s ease-out, opacity .25s ease-out; }
.tt-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.tt-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.tt-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
.tt-mnav { background: #1A2029; border-bottom: 1px solid rgba(238,240,243,0.08); max-height: calc(100vh - 72px); overflow-y: auto; }
.tt-mnav nav { display: flex; flex-direction: column; gap: 24px; padding: 24px 20px 32px; }
.tt-mnav-g { display: flex; flex-direction: column; gap: 4px; }
.tt-mnav-h { font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: #AEB5C0; padding-bottom: 4px; }
.tt-mnav-g a { font-size: 17px; font-weight: 500; color: #EEF0F3; padding: 10px 0; }
.tt-mnav-cta { align-self: flex-start; background: #C8A47B; color: #222A35 !important; padding: 14px 24px; border-radius: 999px; font-weight: 500; }

/* 404 */
.tt-404 { min-height: 100vh; box-sizing: border-box; padding: 64px 24px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 20px; max-width: 760px; margin: 0 auto; font-family: Poppins, "Helvetica Neue", Helvetica, sans-serif; color: #222A35; }
.tt-404 h1 { font-size: clamp(40px, 7vw, 72px); line-height: 1; font-weight: 500; letter-spacing: -.05em; margin: 24px 0 0; }
.tt-404 h1 span { color: #C8A47B; }
.tt-404 p { font-size: 18px; color: #5D6470; margin: 0; }
.tt-404-btn { display: inline-flex; align-items: center; height: 52px; padding: 0 26px; border-radius: 999px; background: #C8A47B; color: #222A35; font-weight: 500; margin-right: 16px; }
.tt-404-link { border-bottom: 1px solid #C8A47B; font-weight: 500; }


/* ---- Responsive layer: tablets and phones. Desktop (1101px and up) is untouched. ----
   Hooks added by the build: tt-wrap (64px side padding), tt-lgN (N-column grid),
   tt-lgx (other grid), tt-sp-s (grid item spanning 4 or fewer columns), tt-fr (flex row),
   tt-wrapok (big one-line type), tt-pill (pill button, --tt-h = its height),
   tt-cmp-row (comparison table row), tt-fit (fixed-size artwork, scaled by site.js). */


/* Large tablets and iPad Pro (1100px and below) */
@media (max-width: 1100px) {
  .tt-wrap { padding-left: 40px !important; padding-right: 40px !important; }
  #main > .tt-wrap, #main.tt-wrap { padding-top: 56px !important; }
  nav[aria-label="Primary"] > div:nth-of-type(1) { display: none !important; }
  nav[aria-label="Primary"] > a:first-child { min-height: 44px; }
  .tt-burger { display: inline-flex; }
  nav[aria-label="Primary"] > div:last-of-type { margin-left: auto; margin-right: 12px; }
  .tt-wrapok, #top h1, #top h2, #top h3 { white-space: normal !important; }
  .tt-pill { height: auto !important; min-height: var(--tt-h, 44px); padding-top: 10px !important; padding-bottom: 10px !important; line-height: 1.3; }
  .tt-wfix:not(.tt-fit) { width: auto !important; max-width: 100% !important; }
  .tt-panel { flex: 1 1 100% !important; height: auto !important; min-height: 0 !important; }
  .tt-fr.tt-hfix:has(> .tt-panel) { height: auto !important; flex-wrap: wrap !important; }
  .tt-nutshell :is(input, select, textarea) { font-size: 16px !important; }
  /* Rows of buttons, links or stats wrap; icon + text and number + text rows keep their line. */
  .tt-fr:not(.tt-marquee):not(button):is([style*="space-between"], :has(> a ~ a), :has(> button ~ button), :has(> div ~ div), :has(> dc-for)) { flex-wrap: wrap !important; }
  .tt-fr:not(.tt-marquee) > * { min-width: 0; }
  .tt-fr > svg { flex-shrink: 0; }
  /* Pill-shaped groups of buttons that wrap become rounded boxes. */
  .tt-fr[style*="border-radius: 999px"]:has(> button, > a, > dc-for) { border-radius: 24px !important; }
  /* Comparison tables keep their columns and scroll sideways inside their box. */
  div:has(> .tt-cmp-row) { overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
  .tt-cmp-row { min-width: 880px; }
  /* The scrolling ticker stays on one line. */
  .tt-marquee, .tt-marquee * { flex-wrap: nowrap !important; max-width: none !important; }
  .tt-marquee > * { flex-shrink: 0 !important; min-width: max-content !important; }
}
@keyframes tt-deal-fluid {
  0%, 18% { transform: translateX(0); }
  30%, 48% { transform: translateX(calc(100% + 12px)); }
  60%, 90% { transform: translateX(calc(200% + 24px)); }
  100% { transform: translateX(calc(200% + 24px)); opacity: 0; }
}

/* iPad portrait and small tablets (900px and below) */
@media (max-width: 900px) {
  .tt-lg12 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; row-gap: 40px !important; }
  .tt-lg12 > *, .tt-lg12 > dc-if > *, .tt-lg12 > dc-for > dc-item > * { grid-column: 1 / -1 !important; }
  .tt-lg12 > .tt-sp-s:has(~ .tt-sp-s), .tt-lg12 > .tt-sp-s ~ .tt-sp-s, .tt-lg12 > dc-for > dc-item > .tt-sp-s { grid-column: auto !important; }
  :is(.tt-lg3, .tt-lg4, .tt-lg5, .tt-lg6, .tt-lg8, .tt-lg9, .tt-lg10, .tt-lg11):not([role="tablist"]):not(:has(> .tt-deal)):not(:has(+ .tt-lg3 > .tt-deal)) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  :is(.tt-lg3, .tt-lg4, .tt-lg5, .tt-lg6, .tt-lg8, .tt-lg9, .tt-lg10, .tt-lg11):not([role="tablist"]):not(:has(> .tt-deal)) > * { grid-column: auto !important; }

  .tt-sticky { position: static !important; }
  /* Two-column blocks of label + text rows (glossaries) stack on iPad. */
  #top .tt-lg2:has(.tt-lgx), #top .tt-lg12:has(> * > .tt-lgx) > .tt-sp-s { grid-template-columns: minmax(0, 1fr) !important; grid-column: 1 / -1 !important; }
  /* Homepage hero: the device image sits below the headline and scales to its box. */
  div[role="img"]:has(> .tt-drift) { height: auto !important; aspect-ratio: 700 / 651; width: 100%; max-width: 600px; margin-inline: auto; }
  /* The device frame (monitor, iPad and phone layers stacked on one 700x651 frame) fills that box. */
  div[role="img"] > .tt-drift > div { height: 100% !important; width: auto !important; max-width: 100%; }
  div[role="img"] > .tt-drift > img { height: 100% !important; width: auto !important; }
}

/* Phones (760px and below) */
@media (max-width: 760px) {
  /* Homepage video thumbnail: smaller play button and labels on phones. */
  div:has(> a[data-tt-video]) > a[data-tt-video] { width: 60px !important; height: 60px !important; margin-left: 10% !important; }
  div:has(> a[data-tt-video]) > a[data-tt-video] svg { width: 22px; height: 22px; }
  div:has(> a[data-tt-video]) > span:not([aria-hidden]) { font-size: 11px !important; left: auto; }
  div:has(> a[data-tt-video]) > span[style*="top: 28px"] { top: 14px !important; left: 16px !important; }
  div:has(> a[data-tt-video]) > span[style*="bottom: 28px"] { bottom: 12px !important; right: 14px !important; }
  .tt-wrap { padding-left: 20px !important; padding-right: 20px !important; }
  #top section { padding-top: min(72px, 12vw) !important; padding-bottom: min(72px, 14vw) !important; }
  #top section#contact { padding-top: 72px !important; padding-bottom: 32px !important; gap: 64px !important; }
  /* First block under the header: no stacked padding, so content starts right below the menu. */
  #main:has(> .tt-wrap) { padding-top: 0 !important; }
  #main > .tt-wrap, #main.tt-wrap { padding-top: 32px !important; }
  nav[aria-label="Primary"] { height: 68px !important; }
  #top > a:first-child { height: auto !important; min-height: 44px; padding: 10px 20px; flex-wrap: wrap !important; text-align: center; line-height: 1.45; font-size: 13px !important; }
  nav[aria-label="Primary"] > div:last-of-type > a:not(.tt-burger) { display: none !important; }
  .tt-mnav { max-height: calc(100vh - 68px); }
  .tt-lg12, .tt-lg2, :is(.tt-lg3, .tt-lg4, .tt-lg5, .tt-lg6, .tt-lg8, .tt-lg9, .tt-lg10, .tt-lg11):not([role="tablist"]):not(:has(> .tt-deal)):not(:has(+ .tt-lg3 > .tt-deal)) { grid-template-columns: minmax(0, 1fr) !important; }
  .tt-lg12 > .tt-sp-s, .tt-lg12 > dc-if > .tt-sp-s, .tt-lg12 > dc-for > dc-item > .tt-sp-s, .tt-lg2 > *, .tt-lg2 > dc-for > dc-item > * { grid-column: 1 / -1 !important; }
  #top .tt-lg4:has(> img), #top .tt-lg6:not(footer .tt-lg6) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .tt-lgx:not(.tt-cmp-row) { grid-template-columns: minmax(0, 1fr) !important; }
  .tt-fr > * { min-width: 0; max-width: 100%; }
  #top *:not(.tt-cmp-row):not(.tt-marquee):not(.tt-marquee *) { max-width: 100%; }
  #top svg { max-width: 100%; height: auto; }
  [style*="padding: 56px"], [style*="padding: 48px"], [style*="padding: 44px"], [style*="padding: 40px"] { padding: 24px !important; }
  div:has(> .tt-nutshell) { padding: 20px 16px !important; }
  .tt-pop { display: none !important; }
  /* Step tab strips stay in one row with smaller type. */
  [role="tablist"][class*="tt-lg"] > button { padding-right: 8px !important; }
  [role="tablist"][class*="tt-lg"] > button > span:first-child { font-size: 24px !important; }
  [role="tablist"][class*="tt-lg"] > button > span:last-child { font-size: 13px !important; line-height: 1.3; }
  /* Pipeline board: tighter card on phones. */
  .tt-deal { padding: 10px !important; }
  .tt-deal span { font-size: 12px !important; }
  div:has(> div > .tt-deal) { padding: 20px 16px !important; }
}

/* Hero device layers: below 900px the image sits under the headline, often below the
   fold, so the iPad and phone build in as the image scrolls into view instead of over
   the first 360px of page scroll. Reduced motion keeps all three devices visible. */
@supports (animation-timeline: view()) {
  @media (max-width: 900px) and (prefers-reduced-motion: no-preference) {
    .tt-dev-ipad, .tt-dev-phone { animation-timeline: view() !important; }
    .tt-dev-ipad { animation-range: entry 10% cover 40% !important; }
    .tt-dev-phone { animation-range: entry 35% cover 52% !important; }
  }
}

/* Legal pages (Privacy Policy, SMS Terms): plain long-form text. */
.tt-legal-body { max-width: 760px; font-size: 17px; line-height: 1.7; color: #222A35; }
.tt-legal-body h2 { font-size: 30px; line-height: 1.2; font-weight: 500; letter-spacing: -0.02em; margin: 40px 0 12px; }
.tt-legal-body h3 { font-size: 24px; line-height: 1.25; font-weight: 500; letter-spacing: -0.015em; margin: 32px 0 10px; }
.tt-legal-body h4 { font-size: 20px; line-height: 1.3; font-weight: 500; margin: 28px 0 8px; }
.tt-legal-body p, .tt-legal-body ul, .tt-legal-body ol { margin: 0 0 16px; }
.tt-legal-body ul, .tt-legal-body ol { padding-left: 24px; }
.tt-legal-body li::marker { color: #C8A47B; }
.tt-legal-body strong { font-weight: 500; }
.tt-legal-body a { color: #222A35; text-decoration: underline; text-decoration-color: #C8A47B; text-decoration-thickness: 2px; text-underline-offset: 4px; overflow-wrap: anywhere; }
.tt-legal-body > :first-child { margin-top: 0; }

/* Blog (build/blog.mjs): post body, card grid. */
.tt-post-body { width: 100%; max-width: 760px; font-size: 18px; }
.tt-post-body img { display: block; height: auto; max-width: 100%; margin: 8px auto; border-radius: 12px; }
.tt-post-body p:has(> img:only-child) { margin: 24px 0; }
.tt-post-body blockquote { margin: 24px 0; padding: 4px 0 4px 24px; font-size: 21px; line-height: 1.5; color: #222A35; border-left: 0; position: relative; }
.tt-post-body blockquote::before { content: "“"; position: absolute; left: -4px; top: -6px; font-size: 40px; color: #C8A47B; }
.tt-post-body hr { border: 0; border-top: 1px solid #E3DED3; margin: 32px 0; }
.tt-post-body table { width: 100%; border-collapse: collapse; margin: 24px 0; font-size: 15px; display: block; overflow-x: auto; }
.tt-post-body th, .tt-post-body td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid #E3DED3; }
.tt-post-body th { font-weight: 500; border-bottom-color: #222A35; }
.tt-post-body li > p { margin: 0 0 6px; }
.tt-blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; width: 100%; }
/* Partner landing pages (build/partners.mjs). */
.tt-partner-hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: center; }
@media (max-width: 900px) { .tt-partner-hero { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 760px) { .tt-partner { padding-top: 32px !important; padding-bottom: 72px !important; gap: 56px !important; } .tt-partner > div[style*="padding: 56px"] { padding: 32px 24px !important; } }
.tt-blog-card { transition: transform 0.25s ease, box-shadow 0.25s ease; }
@media (hover: hover) { .tt-blog-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(34, 42, 53, 0.12); } }
@media (max-width: 1100px) { .tt-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .tt-blog-grid { grid-template-columns: 1fr; }
  .tt-blog, .tt-post { padding-top: 32px !important; padding-bottom: 72px !important; gap: 32px !important; }
  .tt-post-body { font-size: 17px; }
}

/* Type scale, generated from the font sizes used in the designs. */
[style*="font-size: 360px"] { font-size: clamp(66px, 14.653vw, 211px) !important; }
[style*="font-size: 200px"] { font-size: clamp(50px, 9.306vw, 134px) !important; }
[style*="font-size: 168px"] { font-size: clamp(47px, 8.125vw, 117px) !important; }
[style*="font-size: 160px"] { font-size: clamp(46px, 7.778vw, 112px) !important; }
[style*="font-size: 136px"] { font-size: clamp(44px, 6.875vw, 99px) !important; }
[style*="font-size: 128px"] { font-size: clamp(43px, 6.528vw, 94px) !important; }
[style*="font-size: 120px"] { font-size: clamp(42px, 6.25vw, 90px) !important; }
[style*="font-size: 112px"] { font-size: clamp(41px, 5.903vw, 85px) !important; }
[style*="font-size: 104px"] { font-size: clamp(40px, 5.556vw, 80px) !important; }
[style*="font-size: 96px"] { font-size: clamp(40px, 5.208vw, 75px) !important; }
[style*="font-size: 92px"] { font-size: clamp(39px, 5.069vw, 73px) !important; }
[style*="font-size: 88px"] { font-size: clamp(39px, 4.861vw, 70px) !important; }
[style*="font-size: 80px"] { font-size: clamp(38px, 4.514vw, 65px) !important; }
[style*="font-size: 72px"] { font-size: clamp(37px, 4.167vw, 60px) !important; }
[style*="font-size: 64px"] { font-size: clamp(36px, 3.819vw, 55px) !important; }
[style*="font-size: 56px"] { font-size: clamp(36px, 3.472vw, 50px) !important; }
[style*="font-size: 48px"] { font-size: clamp(35px, 3.056vw, 44px) !important; }
[style*="font-size: 44px"] { font-size: clamp(34px, 2.847vw, 41px) !important; }
[style*="font-size: 40px"] { font-size: clamp(34px, 2.639vw, 38px) !important; }
@media (min-width: 1101px) {
  [style*="padding: 104px 64px"] { padding-top: clamp(57px, 5.056vw, 73px) !important; }
  [style*="padding: 128px 64px"] { padding-top: clamp(70px, 6.222vw, 90px) !important; }
  [style*="padding: 152px 64px"] { padding-top: clamp(84px, 7.389vw, 106px) !important; }
  [style*="padding: 144px 64px"] { padding-top: clamp(79px, 7vw, 101px) !important; }
  [style*="padding: 160px 64px"] { padding-top: clamp(88px, 7.778vw, 112px) !important; }
  [style*="padding: 96px 64px"] { padding-top: clamp(53px, 4.667vw, 67px) !important; }
  [style*="padding: 120px 64px"] { padding-top: clamp(66px, 5.833vw, 84px) !important; }
  [style*="padding: 104px 64px;"], [style$="padding: 104px 64px"] { padding-bottom: clamp(57px, 5.056vw, 73px) !important; }
  [style*="padding: 128px 64px;"], [style$="padding: 128px 64px"] { padding-bottom: clamp(70px, 6.222vw, 90px) !important; }
  [style*="padding: 152px 64px;"], [style$="padding: 152px 64px"] { padding-bottom: clamp(84px, 7.389vw, 106px) !important; }
  [style*="padding: 144px 64px;"], [style$="padding: 144px 64px"] { padding-bottom: clamp(79px, 7vw, 101px) !important; }
  [style*="padding: 160px 64px;"], [style$="padding: 160px 64px"] { padding-bottom: clamp(88px, 7.778vw, 112px) !important; }
  [style*="padding: 96px 64px;"], [style$="padding: 96px 64px"] { padding-bottom: clamp(53px, 4.667vw, 67px) !important; }
  [style*="padding: 120px 64px;"], [style$="padding: 120px 64px"] { padding-bottom: clamp(66px, 5.833vw, 84px) !important; }
  [style*="64px 136px"] { padding-bottom: clamp(75px, 6.611vw, 95px) !important; }
  [style*="64px 144px"] { padding-bottom: clamp(79px, 7vw, 101px) !important; }
  [style*="64px 112px"] { padding-bottom: clamp(62px, 5.444vw, 78px) !important; }
  [style*="64px 104px"] { padding-bottom: clamp(57px, 5.056vw, 73px) !important; }
  [style*="64px 120px"] { padding-bottom: clamp(66px, 5.833vw, 84px) !important; }
  [style*="64px 128px"] { padding-bottom: clamp(70px, 6.222vw, 90px) !important; }
  [style*="64px 96px"] { padding-bottom: clamp(53px, 4.667vw, 67px) !important; }
  [style*="gap: 72px"] { gap: clamp(40px, 3.5vw, 50px) !important; }
  [style*="gap: 88px"] { gap: clamp(48px, 4.278vw, 62px) !important; }
  [style*="gap: 144px"] { gap: clamp(79px, 7vw, 101px) !important; }
  [style*="gap: 128px"] { gap: clamp(70px, 6.222vw, 90px) !important; }
}
@media (max-width: 760px) {
  [style*="font-size: 360px"] { font-size: 48px !important; }
  [style*="font-size: 200px"] { font-size: 48px !important; }
  [style*="font-size: 168px"] { font-size: 48px !important; }
  [style*="font-size: 160px"] { font-size: 48px !important; }
  [style*="font-size: 136px"] { font-size: 48px !important; }
  [style*="font-size: 128px"] { font-size: 48px !important; }
  [style*="font-size: 120px"] { font-size: 48px !important; }
  [style*="font-size: 112px"] { font-size: 48px !important; }
  [style*="font-size: 104px"] { font-size: 45px !important; }
  [style*="font-size: 96px"] { font-size: 43px !important; }
  [style*="font-size: 92px"] { font-size: 42px !important; }
  [style*="font-size: 88px"] { font-size: 40px !important; }
  [style*="font-size: 80px"] { font-size: 38px !important; }
  [style*="font-size: 72px"] { font-size: 36px !important; }
  [style*="font-size: 64px"] { font-size: 33px !important; }
  [style*="font-size: 56px"] { font-size: 31px !important; }
  [style*="font-size: 48px"] { font-size: 28px !important; }
  [style*="font-size: 44px"] { font-size: 27px !important; }
  [style*="font-size: 40px"] { font-size: 26px !important; }
  [style*="font-size: 38px"] { font-size: 25px !important; }
  [style*="font-size: 36px"] { font-size: 25px !important; }
  [style*="font-size: 32px"] { font-size: 24px !important; }
  [style*="font-size: 30px"] { font-size: 23px !important; }
  [style*="font-size: 28px"] { font-size: 22px !important; }
  [style*="font-size: 26px"] { font-size: 22px !important; }
}
