/* Trustmark public site, v3. Trustmark Design System: gold and black, square corners, Quango for uppercase display, Hanken Grotesk for text. Lighter type, more air, motion through site.js. */
@font-face{font-family:"Quango";src:url("/files/tm-site-quango.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("/files/tm-site-hanken.woff2") format("woff2");font-weight:300 600;font-style:normal;font-display:swap}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.42s;animation-timing-function:cubic-bezier(.2,.7,.1,1)}

body.tm-site{--gold:#be9a4e;--gold-300:#d9c08e;--cream:#f3ead9;--black:#231f20;--charcoal:#393536;--white:#fff;--muted:#5f5859;--muted-dark:#b8b1b2;--accent-text:#7a5e2b;--line:rgba(35,31,32,.16);--line-dark:rgba(255,255,255,.2);--m:clamp(20px,5vw,72px);--max:1440px;--ease:cubic-bezier(.2,.7,.1,1);--display:"Quango","Tenor Sans","Gill Sans",sans-serif;--sans:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;display:block;margin:0;background:var(--white);color:var(--black);font-family:var(--sans);font-size:16px;line-height:1.6;font-weight:400;letter-spacing:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.tm-site *,body.tm-site *::before,body.tm-site *::after{box-sizing:border-box}
body.tm-site{overflow-x:clip}
body.tm-site .page-breadcrumbs,body.tm-site .page-header-wrapper,body.tm-site .page-footer{display:none}
body.tm-site .page-content-wrapper,body.tm-site .page_content,body.tm-site main,body.tm-site .webpage-content,body.tm-site .web-page-content{margin:0;padding:0;max-width:none}
body.tm-site section.section{margin:0;padding:0}
html:has(body.tm-site){scroll-padding-top:24px}
html.lenis,html.lenis body.tm-site{height:auto}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.ts :where(h1,h2,h3,p,ul,ol,dl,dd,figure,label,blockquote),.ts:where(h1,h2,h3,p,ul,ol,dl,dd,figure,label,blockquote){margin:0;padding:0}
.ts :where(h1,h2,h3){color:inherit;font-weight:inherit}
.ts :where(ul,ol){list-style:none}
.ts img,.ts video{display:block;max-width:100%}
.ts a{color:inherit;text-decoration:none}
.ts a:hover{text-decoration:none}
.ts button,.ts input,.ts select,.ts textarea{font:inherit;color:inherit;margin:0}
.ts input,.ts select,.ts textarea{border-radius:0}
.ts :focus{outline:none}
.ts :focus-visible{outline:1.5px solid var(--black);outline-offset:4px}
.ts.is-dark :focus-visible,.ts .is-dark :focus-visible{outline-color:var(--white)}
.ts[hidden],.ts [hidden]{display:none!important}
.ts-wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--m)}
.ts-skip{position:absolute;left:var(--m);top:-80px;z-index:100;background:var(--white);color:var(--black);padding:10px 16px;border:1px solid var(--black)}
.ts-skip:focus{top:12px}
.ts-sr{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0!important}
table.ts-sr{display:block}

/* type */
.ts-display{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.005em}
.ts-h1{font-size:clamp(40px,4.6vw,76px);line-height:1.02;letter-spacing:.01em;text-wrap:balance}
.ts-h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(30px,3.5vw,52px);line-height:1.04;letter-spacing:.005em;text-wrap:balance}
.ts-line{font-size:clamp(20px,1.7vw,26px);line-height:1.4;font-weight:400;letter-spacing:-.005em}
.ts-h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(20px,1.8vw,28px);line-height:1.12;letter-spacing:0}
.ts-big{font-size:clamp(28px,4vw,60px);line-height:1.14;font-weight:300;letter-spacing:-.02em;text-wrap:pretty}
.ts-lead{font-size:clamp(17px,1.35vw,20px);line-height:1.6;font-weight:300;color:var(--muted)}
.is-dark .ts-lead{color:var(--muted-dark)}
.ts-body{font-size:16.5px;line-height:1.7;font-weight:300}
.ts-eyebrow{display:flex;gap:14px;align-items:baseline;font-size:12px;line-height:18px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.is-dark .ts-eyebrow{color:var(--muted-dark)}
.ts-idx{font-family:var(--display);font-size:14px;letter-spacing:.04em;color:var(--accent-text)}
.is-dark .ts-idx{color:var(--gold)}
.ts-list{display:flex;flex-direction:column;gap:10px;font-size:12.5px;line-height:20px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.ts-list li{display:flex}
.ts-list li::before{content:"_";flex:none}
.ts-goldrule{display:inline-block;width:56px;height:0;border-top:2px solid var(--gold);transform-origin:left center;vertical-align:middle}

/* links and buttons */
.ts-ul{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:100% 100%;background-size:0 1px;transition:background-size .5s var(--ease);padding-bottom:2px}
.ts-ul:hover,.ts-ul:focus-visible,.ts-ul.is-current{background-position:0 100%;background-size:100% 1px}
.ts-link{display:inline-block;font-size:12px;line-height:20px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;background-size:100% 1px;background-position:0 100%}
.ts-link:hover{animation:tsLine .9s var(--ease)}
@keyframes tsLine{0%{background-size:100% 1px;background-position:100% 100%}45%{background-size:0 1px;background-position:100% 100%}46%{background-position:0 100%}100%{background-size:100% 1px;background-position:0 100%}}
.ts-pill{--fill:var(--black);--fill-ink:var(--white);position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;border:1px solid currentColor;border-radius:999px;background:transparent;font-size:12px;line-height:1;font-weight:500;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:color .45s var(--ease),border-color .45s var(--ease)}
.ts-pill::before{content:"";position:absolute;inset:-1px;z-index:-1;background:var(--fill);border-radius:inherit;transform:translateY(101%);transition:transform .55s var(--ease)}
.ts-pill:hover::before,.ts-scard:hover .ts-pill::before{transform:none}
.ts-pill:hover,.ts-scard:hover .ts-pill{color:var(--fill-ink);border-color:var(--fill)}
.ts-pill.is-solid{background:var(--black);border-color:var(--black);color:var(--white);--fill:var(--charcoal);--fill-ink:var(--white)}
.is-dark .ts-pill{--fill:var(--white);--fill-ink:var(--black)}
.is-dark .ts-pill.is-solid{background:var(--white);border-color:var(--white);color:var(--black);--fill:var(--cream);--fill-ink:var(--black)}
.ts-pill.is-sm{min-height:40px;padding:0 20px;font-size:11.5px}
.ts-pill[disabled]{opacity:.55;cursor:default;pointer-events:none}
.ts-mag>span{display:inline-block}

/* header */
.ts-header{position:fixed;top:0;left:0;right:0;z-index:50;color:var(--black);background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:transform .6s var(--ease),background-color .4s,color .4s,border-color .4s}
.ts-header.is-hidden{transform:translateY(-101%)}
.ts-header-in{display:flex;align-items:center;justify-content:space-between;gap:24px;height:80px}
.ts-logo{flex:none;display:block;width:172px}
.ts-logo img{width:172px;height:auto}
.ts-logo .on-dark{display:none}
.ts-nav{display:flex;align-items:center;gap:clamp(16px,1.8vw,30px)}
.ts-nav a{font-size:12px;line-height:20px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}
.ts-nav a[data-soon]{opacity:.62}
.ts-header-r{flex:none;display:flex;align-items:center;gap:22px}
.ts-login{font-size:12px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}
.ts-menu-btn{display:none;align-items:center;gap:12px;background:none;border:0;padding:10px 0;font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;color:inherit}
.ts-burger{position:relative;display:block;width:26px;height:10px}
.ts-burger i{position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .45s var(--ease),top .45s var(--ease)}
.ts-burger i:first-child{top:0}
.ts-burger i:last-child{top:8.5px}
.ts-menu-btn.is-open .ts-burger i:first-child{top:4.25px;transform:rotate(45deg)}
.ts-menu-btn.is-open .ts-burger i:last-child{top:4.25px;transform:rotate(-45deg)}
html:not(.ts-js) .ts-header{position:absolute}
body.tm-site:has(.ts-hero,.ts-phero:not(.is-demo)) .ts-header:not(.is-solid){background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--white);border-bottom-color:transparent}
body.tm-site:has(.ts-hero,.ts-phero:not(.is-demo)) .ts-header:not(.is-solid) .on-light{display:none}
body.tm-site:has(.ts-hero,.ts-phero:not(.is-demo)) .ts-header:not(.is-solid) .on-dark{display:block}
body.tm-site:has(.ts-hero,.ts-phero:not(.is-demo)) .ts-header:not(.is-solid) :focus-visible{outline-color:var(--white)}
body.tm-site:has(.ts-hero,.ts-phero:not(.is-demo)) .ts-header:not(.is-solid) .ts-pill{--fill:var(--white);--fill-ink:var(--black)}
body.tm-site:has(.ts-hero,.ts-phero:not(.is-demo)) .ts-header.is-darkbar:not(.is-solid){background:var(--black);border-bottom-color:var(--line-dark)}
body.tm-site:not(:has(.ts-hero,.ts-phero:not(.is-demo))) .page_content{padding-top:81px}

/* menu */
.ts-menu{position:fixed;inset:0;z-index:60;background:var(--black);color:var(--white);overflow-y:auto}
.ts-menu-in{min-height:100%;display:flex;flex-direction:column;padding-bottom:32px}
.ts-menu-top{display:flex;align-items:center;justify-content:space-between;height:80px;flex:none}
.ts-menu-nav{display:flex;flex-direction:column;margin-top:clamp(16px,4vh,48px)}
.ts-menu-nav a{display:flex;align-items:baseline;gap:18px;font-family:var(--display);font-size:clamp(30px,6.4vw,64px);line-height:1.08;text-transform:uppercase;padding-block:8px;border-bottom:1px solid var(--line-dark);transition:color .3s,padding-left .5s var(--ease)}
.ts-menu-nav a:hover{padding-left:10px}
.ts-menu-nav a[aria-current="page"]{color:var(--muted-dark)}
.ts-menu-idx{font-family:var(--sans);font-size:12px;letter-spacing:.2em;color:var(--muted-dark);min-width:28px}
.ts-menu-nav em{margin-left:auto;font-family:var(--sans);font-style:normal;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dark)}
.ts-menu-foot{margin-top:auto;padding-top:36px;display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;font-size:13px;letter-spacing:.06em}
html.ts-menu-open{overflow:hidden}

/* hero with the film in an arch that opens as you scroll */
.ts-hero{--aw:min(33vw,520px);--at:124px;--ab:112px;position:relative;height:100vh;height:100svh;min-height:640px;background:var(--black);color:var(--white);overflow:hidden}
.ts-hero-film{position:absolute;inset:0;clip-path:inset(var(--at) var(--m) var(--ab) calc(100% - var(--m) - var(--aw)) round calc(var(--aw) / 2) calc(var(--aw) / 2) 0 0);will-change:clip-path}
.ts-hero-media{position:absolute;inset:0;will-change:transform}
.ts-hero-media img,.ts-hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ts-hero-media video{opacity:0;transition:opacity 1.4s ease}
.ts-hero-media video.is-on{opacity:1}
.ts-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,31,32,.55) 0%,rgba(35,31,32,.2) 22%,rgba(35,31,32,.2) 62%,rgba(35,31,32,.62) 80%,rgba(35,31,32,.75) 100%);opacity:0}
.ts-hero-arch{position:absolute;top:var(--at);bottom:var(--ab);right:var(--m);width:var(--aw);pointer-events:none}
.ts-hero-in{position:relative;height:100%;display:flex;align-items:center}
.ts-hero-copy{width:min(56%,760px);padding-top:40px}
.ts-hero-eyebrow{color:var(--white)!important;align-items:center}
.ts-hero-title{margin-top:26px;font-size:clamp(38px,4.4vw,72px)}
.ts-lw{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.ts-lw>span{display:block}
.ts-hero-sub{max-width:520px;margin-top:28px;font-size:clamp(17px,1.35vw,20px);line-height:1.6;font-weight:300;color:rgba(255,255,255,.86)}
.ts-hero-acts{display:flex;flex-wrap:wrap;align-items:center;gap:18px 30px;margin-top:40px}
.ts-hero-foot{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:24px;height:var(--ab);border-top:0}
.ts-hero-foot::before{content:"";position:absolute;left:var(--m);right:var(--m);top:28px;border-top:1px solid rgba(255,255,255,.4)}
.ts-url{font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:lowercase}
.ts-hero-place{display:flex;gap:14px;align-items:baseline;font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.ts-hero-place-k{color:rgba(255,255,255,.6)}
.ts-hero-place-v{display:inline-block;min-width:16ch;font-weight:500}
.ts-scroll-cue{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.ts-scroll-cue i{position:relative;display:block;width:1px;height:28px;background:rgba(255,255,255,.25);overflow:hidden}
.ts-scroll-cue i::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--white);animation:tsCue 2.2s var(--ease) infinite}
@keyframes tsCue{0%{top:-50%}70%,100%{top:110%}}
html.ts-intro .ts-hero-copy,html.ts-intro .ts-hero-foot{opacity:0;animation:tsShow .01s 2.6s forwards}
html.ts-intro .ts-hero-film{animation:tsShow .01s 2.6s forwards;opacity:0}
@keyframes tsShow{to{opacity:1}}

/* inner page hero: a full-width photo that opens out of an arch, headline over a dark shade */
.ts-phero{position:relative;height:clamp(560px,84svh,920px);background:var(--black);color:var(--white);overflow:hidden}
.ts-phero-media{position:absolute;inset:0;overflow:hidden}
.ts-phero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ts-phero-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(35,31,32,.68) 0%,rgba(35,31,32,.56) 22%,rgba(35,31,32,.42) 38%,rgba(35,31,32,.62) 56%,rgba(35,31,32,.86) 100%)}
.ts-phero-in{position:relative;height:100%;display:flex;flex-direction:column;padding-top:clamp(108px,13vh,136px)}
.ts .ts-phero-crumbs{margin:0;color:rgba(255,255,255,.78)}
.ts-phero-main{margin-top:auto;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:24px clamp(32px,6vw,96px);align-items:end}
.ts-phero-eyebrow{color:var(--white)!important;align-items:center}
.ts-phero-title{margin-top:24px;font-size:clamp(40px,5.4vw,92px);line-height:1}
.ts-phero-lead{max-width:30em;font-size:clamp(16px,1.25vw,19px);line-height:1.6;font-weight:300;color:rgba(255,255,255,.88)}
.ts-phero-foot{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:clamp(36px,6vh,64px);padding-block:20px 28px;border-top:1px solid rgba(255,255,255,.4)}
html.ts-intro .ts-phero:not(.is-demo) .ts-phero-in{opacity:0;animation:tsShow .01s 2.6s forwards}

/* inner page header (plain, used on the elements page) */
.ts-phead{padding-block:clamp(56px,8vw,120px) clamp(64px,8vw,120px)}
.ts-phead-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(32px,6vw,96px);align-items:end}
.ts-crumbs{display:flex;gap:10px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:clamp(28px,4vw,56px)}
.ts-phead .ts-eyebrow{margin-bottom:22px}
.ts-phead .ts-lead{margin-top:28px;max-width:34em}
.ts-phead-img{aspect-ratio:4/5}

/* sections */
.ts-section{padding-block:clamp(80px,9vw,144px)}
/* two white sections in a row share one gap instead of stacking two */
body.tm-site section.section:has(> .ts-section:not(.is-cream):not(.is-dark)) + section.section > .ts-section:not(.is-cream):not(.is-dark){padding-top:clamp(8px,1.6vw,24px)}
.ts-section.is-cream{background:var(--cream)}
.ts-section.is-dark{background:var(--black);color:var(--white)}
.ts-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px clamp(32px,6vw,96px);align-items:end;margin-bottom:clamp(44px,6vw,88px)}
.ts-head .ts-h2{margin-top:20px}
.ts-head .ts-lead{max-width:30em}

/* arch photo frame */
.ts-arc{overflow:hidden;border-radius:999px 999px 0 0;background:var(--charcoal)}
.ts-arc img{width:100%;height:100%;object-fit:cover}
.ts-par img{height:116%;margin-top:-8%}

/* statement */
.ts-statement-in{max-width:1180px}
.ts-statement .ts-big{margin-top:28px}
.ts-statement .ts-list{margin-top:40px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px;max-width:640px}
.ts-statement-act{margin-top:40px}
.ts-statement.has-img .ts-statement-in{max-width:var(--max);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,8vw,128px);align-items:center}
.ts-statement.has-img .ts-arc{aspect-ratio:4/5}
.ts-words .w{display:inline}

/* service list: rows on the left, an arched photo that changes with the row you point at on the right */
.ts-hl.has-media{display:grid;grid-template-columns:minmax(0,1fr) clamp(240px,23vw,340px);gap:clamp(40px,6vw,104px);align-items:start}
.ts-hlist{border-bottom:1px solid var(--line)}
.is-dark .ts-hlist{border-bottom-color:var(--line-dark)}
.ts-hrow{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr) auto;gap:24px;align-items:baseline;padding:clamp(26px,2.8vw,38px) 0;border-top:1px solid var(--line);transition:opacity .45s var(--ease)}
.ts-hrow::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--black);transform:scaleX(0);transform-origin:left center;transition:transform .8s var(--ease)}
.is-dark .ts-hrow{border-top-color:var(--line-dark)}
.is-dark .ts-hrow::before{background:var(--white)}
.ts-hrow-title{font-family:var(--display);text-transform:uppercase;font-size:clamp(22px,2.3vw,34px);line-height:1.08;letter-spacing:0;transition:transform .7s var(--ease)}
.ts-hrow-text{font-size:16px;line-height:1.6;font-weight:300;color:var(--muted);max-width:30em}
.is-dark .ts-hrow-text{color:var(--muted-dark)}
.ts-hrow-go{position:relative;font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;opacity:.5;transition:opacity .4s;padding-bottom:3px;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:100% 100%;background-size:0 1px;transition:opacity .4s,background-size .6s var(--ease)}
.ts .ts-hrow:focus-visible{outline:none}
.ts-hrow:hover::before,.ts-hrow:focus-visible::before,.ts-hrow.is-cur::before{transform:none}
.ts-hrow:hover .ts-hrow-title,.ts-hrow:focus-visible .ts-hrow-title,.ts-hrow.is-cur .ts-hrow-title{transform:translateX(14px)}
.ts-hrow:hover .ts-hrow-go,.ts-hrow:focus-visible .ts-hrow-go,.ts-hrow.is-cur .ts-hrow-go{opacity:1;background-position:0 100%;background-size:100% 1px}
.ts-hlist:hover .ts-hrow:not(:hover){opacity:.38}
.ts-hrow-img{display:none}
.ts-hl-media{position:sticky;top:112px}
.ts-hl-arch{position:relative;aspect-ratio:4/5}
.ts-hl-arch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity .8s var(--ease),transform 1.6s var(--ease)}
.ts-hl-arch img.is-on,.ts-hl-arch:not(.is-live) img:first-child{opacity:1;transform:none}
.ts-hl-cap{position:relative;display:grid;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:11.5px;line-height:18px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ts-hl-cap span{grid-area:1/1;opacity:0;transform:translateY(8px);transition:opacity .45s,transform .6s var(--ease)}
.ts-hl-cap span.is-on,.ts-hl-media:not(.is-live) .ts-hl-cap span:first-child{opacity:1;transform:none}

/* journey: six steps in three stages; the line draws as you scroll and runs to the step you point at */
.ts-jr{--g:clamp(16px,2.2vw,36px)}
.ts-jr-phases,.ts-jr-steps{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr))}
.ts-jr-phase{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-right:calc(var(--g) / 2);padding-top:14px;border-top:1px solid var(--black)}
.ts-jr-phase span{font-size:12px;line-height:18px;font-weight:500;letter-spacing:.28em;text-transform:uppercase}
.ts-jr-track{position:relative;margin-top:clamp(28px,3vw,40px)}
.ts-jr-key{position:relative;display:flex;align-items:center;gap:14px;margin-top:clamp(36px,4vw,56px);font-size:12px;line-height:18px;letter-spacing:.06em;color:var(--muted)}
.ts-jr-key i{flex:none;width:9px;height:9px;margin-left:1px;border:1px solid var(--black);background:var(--black);transform:rotate(45deg)}
.ts-jr-line{position:absolute;left:0;right:calc(var(--g) / 2);top:39px;height:1px;background:var(--line)}
.ts-jr-line i{position:absolute;inset:0;background:var(--black);transform-origin:0 50%}
html.ts-js .ts-jr-line i{transform:scale(0)}
.ts-jr-step{position:relative;padding-right:var(--g);outline:none;transition:opacity .6s var(--ease)}
.ts-jr-ph{display:none}
.ts-jr-num{display:block;font-family:var(--display);font-size:14px;line-height:18px;letter-spacing:.04em;color:var(--accent-text)}
.ts-jr-node{position:relative;z-index:1;display:block;width:11px;height:11px;margin-top:16px;background:var(--white);border:1px solid var(--black);transition:background-color .45s,transform .6s var(--ease)}
.ts-jr-t{margin-top:26px;font-size:clamp(17px,1.35vw,20px);line-height:1.35;font-weight:400;letter-spacing:-.005em}
.ts-jr-p{margin-top:10px;max-width:22em;font-size:14.5px;line-height:1.6;font-weight:300;color:var(--muted)}
.ts-jr-rec{position:absolute;z-index:1;top:35px;right:calc(var(--g) / 2 - 4.5px);display:block;width:9px;height:9px;font-size:0;line-height:0;color:transparent}
.ts-jr-rec i{position:absolute;inset:0;background:var(--white);border:1px solid var(--black);transform:rotate(45deg);transition:background-color .45s}
html.ts-js .ts-jr-step{opacity:.38}
html.ts-js .ts-jr-step.is-lit{opacity:1}
.ts-jr-step.is-lit .ts-jr-node,.ts-jr-rec.is-lit i{background:var(--black)}
.ts-jr-steps.is-pointing .ts-jr-step:not(.is-cur){opacity:.32}
.ts-jr-step.is-cur .ts-jr-node,.ts-jr-step:focus-visible .ts-jr-node{transform:scale(1.4)}
.ts-jr-step:focus-visible .ts-jr-t{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
@media (max-width:1100px){
  .ts-jr-phases,.ts-jr-key{display:none}
  .ts-jr-track{margin-top:8px}
  .ts-jr-steps{display:block}
  .ts-jr-line{left:5px;right:auto;top:38px;bottom:12px;width:1px;height:auto}
  .ts-jr-line i{transform-origin:50% 0}
  .ts-jr-step{padding:0 0 30px 44px}
  .ts-jr-step:last-child{padding-bottom:0}
  .ts-jr-step.is-first:not(:first-child){padding-top:18px}
  .ts-jr-ph{display:block;margin-bottom:12px;font-size:12px;line-height:18px;font-weight:500;letter-spacing:.28em;text-transform:uppercase}
  .ts-jr-node{position:absolute;left:0;top:3px;margin:0}
  .ts-jr-step.is-first .ts-jr-node{top:33px}
  .ts-jr-step.is-first:not(:first-child) .ts-jr-node{top:51px}
  .ts-jr-t{margin-top:8px}
  .ts-jr-p{max-width:34em}
  .ts-jr-rec{position:static;display:flex;align-items:center;width:auto;height:auto;overflow:visible;margin-top:18px;font-size:11px;line-height:18px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
  .ts-jr-rec i{position:absolute;left:1px;width:9px;height:9px;inset:auto auto auto 1px}
  html.ts-js .ts-jr-step{opacity:.45}
}

/* market strip: scrolls sideways */
.ts-strip-sec{overflow:hidden}
.ts-strip-head{margin-bottom:clamp(36px,4.5vw,64px)}
.ts-strip-meta{display:flex;flex-direction:column;gap:26px}
.ts-strip-count{display:flex;align-items:center;gap:14px;font-family:var(--display);font-size:14px;color:var(--black)}
.ts-strip-bar{position:relative;display:block;width:120px;height:1px;background:var(--line)}
.ts-strip-bar i{position:absolute;left:0;top:0;bottom:0;width:100%;background:var(--black);transform-origin:left;transform:scaleX(.25)}
.ts-strip{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding-inline:var(--m)}
.ts-strip::-webkit-scrollbar{display:none}
.ts-strip-track{display:flex;gap:clamp(16px,2vw,32px);width:max-content}
.ts-mcard{width:clamp(260px,30vw,460px);scroll-snap-align:start}
.ts-mcard-img{aspect-ratio:4/5;overflow:hidden;background:var(--charcoal)}
.ts-mcard-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.2s var(--ease)}
.ts-mcard:hover .ts-mcard-img img{transform:scale(1.08)}
.ts-mcard-body{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:baseline;margin-top:22px;padding-top:18px;border-top:1px solid var(--black)}
.ts-mcard-idx{font-family:var(--display);font-size:14px;color:var(--accent-text)}
.ts-mcard h3{font-size:clamp(18px,1.6vw,24px);line-height:1.1}
.ts-mcard p{grid-column:2;font-size:15px;line-height:1.6;font-weight:300;color:var(--muted)}
.ts-mcard small{grid-column:2;font-size:11.5px;color:var(--muted);opacity:.8}
html.ts-hpin .ts-strip{overflow:visible;scroll-snap-type:none}

/* stages: the number and list stay while the stages scroll past */
.ts-stages{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,7vw,120px)}
.ts-stages-nav{position:sticky;top:120px;align-self:start}
.ts-stages-num{display:flex;align-items:baseline;gap:14px;font-family:var(--display)}
.ts-stages-cur{font-size:clamp(72px,9vw,150px);line-height:.9;color:var(--black)}
.ts-stages-tot{font-size:18px;color:var(--muted)}
.ts-stages-list{margin-top:36px;display:flex;flex-direction:column;gap:12px;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ts-stages-list li{transition:color .4s,transform .5s var(--ease)}
.ts-stages-list li.is-on{color:var(--black);transform:translateX(10px)}
.ts-stages-bar{position:relative;display:block;margin-top:36px;width:100%;max-width:320px;height:1px;background:var(--line)}
.ts-stages-bar i{position:absolute;inset:0;background:var(--black);transform-origin:left;transform:scaleX(0)}
.ts-stages-panels{display:flex;flex-direction:column;gap:clamp(24px,6vh,72px)}
.ts-stage{display:grid;grid-template-columns:64px minmax(0,1fr);border:1px solid var(--black);opacity:.3;transition:opacity .6s ease}
.ts-stage-idx{border-right:1px solid var(--black);padding:28px 0 0 16px;font-family:var(--display);font-size:20px;line-height:1;color:var(--accent-text)}
.ts-stage-main{padding:28px clamp(22px,3vw,40px) 36px}
.ts-stage.is-on{opacity:1}
html:not(.ts-js) .ts-stage{opacity:1}
.ts-stage-k{font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.ts-stage .ts-h3{margin-top:14px;padding-bottom:20px;border-bottom:1px solid var(--black);font-size:clamp(24px,2.4vw,36px)}
.ts-stage .ts-body{margin-top:18px;max-width:34em;color:var(--muted)}
.ts-stage .ts-list{margin-top:28px}

/* split cards */
.ts-scards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.ts a.ts-scard{color:var(--white)}
.ts-scard{position:relative;display:block;min-height:clamp(440px,44vw,640px);overflow:hidden;color:var(--white);background:var(--black)}
.ts-scard-img{position:absolute;inset:0}
.ts-scard-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.4s var(--ease),opacity .6s}
.ts-scard-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,31,32,.2) 0%,rgba(35,31,32,.6) 40%,rgba(35,31,32,.88) 100%);transition:opacity .6s}
.ts-scard:hover .ts-scard-img img{transform:scale(1.1)}
.ts-scard-body{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:clamp(24px,3vw,44px)}
.ts-scard-k{font-size:12px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.ts-scard-t{font-family:var(--display);font-size:clamp(26px,2.8vw,42px);line-height:1.04;text-transform:uppercase}
.ts-scard-p{max-width:30em;font-size:16px;line-height:1.6;font-weight:300;color:rgba(255,255,255,.86)}
.ts-scard .ts-pill{margin-top:10px;--fill:var(--white);--fill-ink:var(--black)}

/* call-to-action band with moving words */
.ts-band{background:var(--black);color:var(--white);padding-block:clamp(48px,6vw,88px) clamp(56px,6vw,96px);overflow:hidden}
.ts-band-link{display:block}
.ts-marquee{display:flex;overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ts-marquee-track{display:flex;align-items:center;gap:clamp(24px,3vw,48px);padding-right:clamp(24px,3vw,48px);animation:tsMarquee 38s linear infinite;will-change:transform}
.ts-band-link:hover .ts-marquee-track{animation-play-state:paused}
.ts-marquee-item{font-family:var(--display);font-size:clamp(48px,8.4vw,140px);line-height:1;text-transform:uppercase}
.ts-marquee-item:nth-child(4n+3){color:var(--muted-dark)}
.ts-marquee-dot{flex:none;width:clamp(8px,.8vw,12px);height:clamp(8px,.8vw,12px);background:var(--white)}
@keyframes tsMarquee{to{transform:translateX(-50%)}}
.ts-band-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 40px;margin-top:clamp(36px,4vw,56px);padding-top:28px;border-top:1px solid var(--line-dark)}
.ts-band-foot p{max-width:36em;font-size:17px;line-height:1.6;font-weight:300;color:var(--muted-dark)}

/* contact */
.ts-contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(48px,8vw,128px);align-items:start}
.ts-contact .ts-h2{margin-top:20px}
.ts-contact .ts-lead{margin-top:24px;max-width:28em}
.ts-facts{margin-top:44px}
.ts-fact{display:grid;grid-template-columns:120px minmax(0,1fr);gap:8px 16px;padding:16px 0;border-top:1px solid var(--line-dark);font-size:16px;line-height:24px}
.ts-fact dt{font-size:11.5px;line-height:24px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dark)}
.ts-fact dd span{display:block}
.ts-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 28px}
.ts-field{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0}
.ts-field.is-wide{grid-column:1/-1}
.ts-field>label:not(.ts-check){font-size:11.5px;line-height:16px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-dark)}
.ts-opt{margin-left:6px;letter-spacing:.06em;text-transform:none;font-weight:400;opacity:.8}
.ts-in{display:block;width:100%;height:48px;padding:0;border:0;border-bottom:1px solid rgba(255,255,255,.4);background:transparent;color:var(--white);font-size:17px;line-height:24px;appearance:none;-webkit-appearance:none;box-shadow:none;transition:border-color .3s}
.ts-in::placeholder{color:rgba(255,255,255,.38)}
.ts-in:hover{border-bottom-color:rgba(255,255,255,.8)}
.ts .ts-in:focus-visible{outline:none;border-bottom-color:var(--white);box-shadow:0 1px 0 var(--white)}
textarea.ts-in{height:auto;min-height:112px;padding-top:12px;resize:vertical}
select.ts-in{padding-right:28px;background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);background-position:calc(100% - 12px) 22px,calc(100% - 7px) 22px;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}
select.ts-in option{color:#231f20;background:#fff}
.ts-field.is-bad .ts-in{border-bottom-color:#ff9d8f}
.ts-err{font-size:13px;line-height:18px;color:#ffb3a8;font-weight:500}
.ts-check{display:flex;gap:14px;align-items:flex-start;cursor:pointer;font-size:14px;line-height:22px;font-weight:300;color:var(--white)}
.ts .ts-check input{flex:none;position:static;width:20px!important;height:20px!important;margin:1px 0 0!important;border:1px solid rgba(255,255,255,.7)!important;border-radius:0!important;background:transparent none!important;box-shadow:none!important;appearance:none;-webkit-appearance:none;cursor:pointer;transition:background-color .2s}
.ts .ts-check input:checked{background:var(--white) none!important;box-shadow:inset 0 0 0 4px var(--black)!important}
.ts .ts-check input:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.ts-form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}
.ts-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.ts-done{border-top:1px solid var(--white);padding-top:28px}
.ts-done h3{font-family:var(--display);font-size:26px;line-height:1.1;text-transform:uppercase}
.ts-done p{margin-top:14px;font-size:18px;line-height:28px;font-weight:300}

/* cards used by listings, case studies, insights and team (elements page for now) */
.ts-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,36px)}
.ts-card{display:block}
.ts-card-img,.ts-card-body,.ts-card-k,.ts-icard .ts-card-k{display:block}
.ts-card-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--charcoal)}
.ts-card-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.ts-card:hover .ts-card-img img{transform:scale(1.06)}
.ts-card-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(135deg,#e9e4df 0 12px,#efebe7 12px 24px);color:var(--muted);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.ts-card-tag{position:absolute;left:14px;top:14px;padding:6px 10px;background:var(--black);color:var(--white);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase}
.ts-card-body{padding-top:20px}
.ts-card-k{font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ts-card-t{margin-top:10px;font-size:clamp(20px,1.7vw,24px);line-height:1.25;font-weight:400;letter-spacing:-.01em}
.ts-card-meta{display:flex;flex-wrap:wrap;margin-top:16px;border-top:1px solid var(--line)}
.ts-card-meta span{padding:12px 16px 0 0;margin-right:16px;font-size:13px;color:var(--muted);border-right:1px solid var(--line)}
.ts-card-meta span:last-child{border-right:0}
.ts-card-foot{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:18px}
.ts-card-price{font-family:var(--display);font-size:18px;letter-spacing:.02em;color:var(--accent-text)}
.ts-card-p{margin-top:12px;font-size:15.5px;line-height:1.6;font-weight:300;color:var(--muted)}
.ts-icard{display:block;padding-top:22px;border-top:1px solid var(--black)}
.ts-tcard .ts-arc{aspect-ratio:3/4;max-width:300px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:22px;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.ts-fig{padding-top:22px;border-top:1px solid var(--black)}
.ts-fig b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(36px,3.6vw,56px);line-height:1;white-space:nowrap}
.ts-fig span{display:block;margin-top:12px;font-size:15px;line-height:1.5;font-weight:300}
.ts-fig small{display:block;margin-top:8px;font-size:12px;color:var(--muted)}

/* questions */
.ts-faq{border-bottom:1px solid var(--line)}
.ts-faq details{border-top:1px solid var(--line)}
.ts-faq summary{position:relative;display:flex;justify-content:space-between;gap:24px;padding:26px 48px 26px 0;cursor:pointer;list-style:none;font-size:clamp(19px,1.6vw,24px);line-height:1.35;font-weight:400;letter-spacing:-.01em}
.ts-faq summary::-webkit-details-marker{display:none}
.ts-faq summary::before,.ts-faq summary::after{content:"";position:absolute;right:4px;top:50%;width:18px;height:1.5px;background:currentColor;transition:transform .5s var(--ease)}
.ts-faq summary::after{transform:rotate(90deg)}
.ts-faq details[open] summary::after{transform:rotate(0)}
.ts-faq-a{overflow:hidden}
.ts-faq-a p{padding:0 0 28px;max-width:44em;font-size:16.5px;line-height:1.7;font-weight:300;color:var(--muted)}

/* footer */
.ts-footer{background:var(--black);color:var(--white);padding-top:clamp(72px,9vw,128px);overflow:hidden}
.ts-footer-top{display:grid;grid-template-columns:minmax(0,5fr) repeat(3,minmax(0,2fr));gap:48px clamp(24px,4vw,64px)}
.ts-footer-big{font-size:clamp(26px,2.6vw,40px);line-height:1.15;font-weight:300;letter-spacing:-.015em;max-width:13em;margin-bottom:32px}
.ts-footer h3{font-size:11.5px;line-height:18px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-dark)}
.ts-footer-col ul{margin-top:20px;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:22px}
.ts-footer-col a[data-soon]{opacity:.55}
.ts-footer-logo{display:block;width:200px;margin-bottom:28px}
.ts-footer-logo img{width:200px;height:auto}
.ts-footer-base{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;padding-block:24px 30px;margin-top:clamp(64px,8vw,112px);border-top:1px solid var(--line-dark);font-size:13px;line-height:20px;color:var(--muted-dark)}
.ts-footer-base ul{display:flex;flex-wrap:wrap;gap:8px 24px}
.ts-totop{color:var(--white)}

/* review bar (preview only) */
.ts-review{position:fixed;right:16px;bottom:16px;z-index:55;transition:opacity .4s,transform .5s var(--ease);display:flex;align-items:center;gap:4px;max-width:calc(100vw - 24px);overflow-x:auto;padding:6px;border-radius:999px;background:rgba(35,31,32,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--white);font-size:12px;line-height:1;box-shadow:0 8px 30px rgba(0,0,0,.18);scrollbar-width:none}
.ts-review a,.ts-review button{flex:none;padding:9px 12px;border-radius:999px;border:0;background:transparent;color:inherit;cursor:pointer;white-space:nowrap;letter-spacing:.02em}
.ts-review a:hover,.ts-review button:hover{background:rgba(255,255,255,.12)}
.ts-review [aria-current="page"],.ts-review button[aria-pressed="true"]{background:var(--white);color:var(--black)}
.ts-review-tag{flex:none;padding:9px 12px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.ts-review-lbl{flex:none;padding-left:8px;color:rgba(255,255,255,.6)}
.ts-review-sep{flex:none;width:1px;height:18px;margin-inline:6px;background:rgba(255,255,255,.25)}
.ts-toast{position:fixed;left:50%;bottom:72px;z-index:56;transform:translate(-50%,12px);padding:12px 18px;background:var(--black);color:var(--white);font-size:13px;line-height:1.4;opacity:0;pointer-events:none;transition:opacity .3s,transform .4s var(--ease)}
.ts-toast.is-on{opacity:1;transform:translate(-50%,0)}
html.ts-bw .ts-hero-media,html.ts-bw .ts-phero-media img,html.ts-bw .ts-mcard-img img,html.ts-bw .ts-scard-img img,html.ts-bw .ts-card-img img,html.ts-bw .ts-hl-arch img,html.ts-bw .ts-hrow-img img{filter:grayscale(1) contrast(1.05)}

/* elements page (review only) */
.ts-el{padding-block:clamp(56px,7vw,104px);border-top:1px solid var(--line)}
.ts-el.is-flush{padding-block:0;border-top:0}
.ts-el-label{display:block;margin-bottom:clamp(28px,3.5vw,48px)}
.ts-el-label b{margin-right:14px}
.ts-el-label b{font-family:var(--display);font-weight:400;font-size:15px;letter-spacing:.04em;color:var(--accent-text)}
.ts-el-label strong{font-size:13px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.ts-el-label p{margin-top:10px;max-width:56em;font-size:15px;line-height:1.6;font-weight:300;color:var(--muted)}
.ts-el-bar{padding:14px var(--m);background:var(--cream);font-size:12px;letter-spacing:.2em;text-transform:uppercase;display:flex;gap:14px;align-items:baseline}
.ts-el-bar b{font-family:var(--display);font-weight:400;color:var(--accent-text);letter-spacing:.04em}
.ts-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 36px;border-top:1px solid var(--black)}
.ts-map li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:16px 0;border-bottom:1px solid var(--line);font-size:15px}
.ts-map code{grid-column:1;font-family:var(--sans);font-size:13px;color:var(--muted)}
.ts-map em{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ts-map em.is-built{color:var(--accent-text)}
.ts-toc{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:36px;font-size:13px;letter-spacing:.06em}
.ts-swatches{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.ts-swatch i{display:block;aspect-ratio:1;border:1px solid var(--line)}
.ts-swatch span{display:block;margin-top:10px;font-size:13px}
.ts-swatch code{font-family:var(--sans);font-size:12px;color:var(--muted)}
.ts-typeset{display:flex;flex-direction:column;gap:28px}
.ts-typeset>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:baseline;padding-bottom:28px;border-bottom:1px solid var(--line)}
.ts-typeset small{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ts-btnrow{display:flex;flex-wrap:wrap;gap:20px 28px;align-items:center}
.ts-btnrow.is-dark{padding:32px;background:var(--black);color:var(--white)}
.ts-demo-dark{background:var(--black);color:var(--white);padding:40px}

/* motion off: everything is shown at once */
@media (prefers-reduced-motion:reduce){.ts-marquee-track,.ts-scroll-cue i::after{animation:none}.ts-hero-media video{transition:none}.ts-mcard-img img,.ts-scard-img img,.ts-card-img img{transition:none}html.ts-intro .ts-hero-copy,html.ts-intro .ts-hero-foot,html.ts-intro .ts-hero-film,html.ts-intro .ts-phero-in{animation:none;opacity:1}}
@media print{.ts-header,.ts-review{position:static}.ts-hero-film{clip-path:none}}

@media (max-width:1240px){.ts-nav,.ts-header-r .ts-login,.ts-header-r .ts-cta{display:none}.ts-menu-btn{display:inline-flex}}
@media (max-width:1023px){
  .ts-hero{--at:92px;--ah:min(50svh,110vw);height:auto;min-height:100svh;padding-bottom:40px}
  .ts-hero-film{clip-path:inset(var(--at) var(--m) calc(100% - var(--at) - var(--ah)) var(--m) round calc(50vw - var(--m)) calc(50vw - var(--m)) 0 0)}
  .ts-hero-arch{top:var(--at);bottom:auto;left:var(--m);right:var(--m);width:auto;height:var(--ah)}
  .ts-hero-in{height:auto;display:block;padding-top:calc(var(--at) + var(--ah) + 28px)}
  .ts-hero-copy{width:auto;padding-top:0}
  .ts-hero-title{margin-top:18px}
  .ts-hero-foot{position:relative;height:auto;margin-top:40px;padding-top:18px;flex-wrap:wrap;gap:10px 20px}
  .ts-hero-foot::before{top:0}
  .ts-scroll-cue{display:none}
  .ts-phero-main{grid-template-columns:minmax(0,1fr)}
  .ts-head,.ts-phead-in,.ts-contact,.ts-statement.has-img .ts-statement-in,.ts-stages{grid-template-columns:minmax(0,1fr)}
  .ts-head{align-items:start}
  .ts-phead-img{max-width:380px}
  .ts-statement.has-img .ts-arc{max-width:440px}
  .ts-hrow{grid-template-columns:minmax(0,1fr) auto;gap:10px 16px}
  .ts-hrow-title{grid-column:1;grid-row:1}
  .ts-hrow-go{grid-column:2;grid-row:1;align-self:center}
  .ts-hrow-text{grid-column:1/3;grid-row:2}
  .ts-hrow-img{display:block;grid-column:1/3;grid-row:3;margin-top:8px;width:100%;aspect-ratio:16/9;overflow:hidden}
  .ts-hrow-img img{width:100%;height:100%;object-fit:cover}
  .ts-hlist:hover .ts-hrow:not(:hover){opacity:1}
  .ts-hl.has-media{display:block}
  .ts-hl-media{display:none}
  .ts-hrow:hover .ts-hrow-title{transform:none}
  .ts-stages-nav{position:static}
  .ts-stages-nav .ts-stages-list,.ts-stages-nav .ts-stages-bar{display:none}
  .ts-stages-num{display:none}
  .ts-stage{opacity:1}
  .ts-stages-panels{padding-block:0}
  .ts-scards{grid-template-columns:minmax(0,1fr)}
  .ts-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-footer-top{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ts-footer-brand{grid-column:1/-1}
  .ts-map{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-swatches{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:720px){
  .ts-header-in,.ts-menu-top{height:68px}
  body.tm-site:not(:has(.ts-hero,.ts-phero:not(.is-demo))) .page_content{padding-top:69px}
  .ts-logo,.ts-logo img{width:156px}
  .ts-hero{--at:80px}
  .ts-hero-acts .ts-pill{width:100%}
  .ts-hero-place{display:none}
  .ts-phero{height:clamp(540px,86svh,760px)}
  .ts-phero-in{padding-top:96px}
  .ts-phero-title{font-size:clamp(34px,9.4vw,52px)}
  .ts-phero-foot{margin-top:28px;padding-block:16px 22px}
  .ts-statement .ts-list{grid-template-columns:minmax(0,1fr)}
  .ts-form{grid-template-columns:minmax(0,1fr)}
  .ts-fact{grid-template-columns:minmax(0,1fr);gap:2px}
  .ts-cards{grid-template-columns:minmax(0,1fr)}
  .ts-mcard{width:78vw}
  .ts-footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-map{grid-template-columns:minmax(0,1fr)}
  .ts-typeset>div{grid-template-columns:minmax(0,1fr);gap:8px}
  .ts-review{bottom:10px}
  .ts-review-lbl,.ts-review-tag{display:none}
}

/* segmented switch (markets, residency) */
.ts-seg{position:relative;display:inline-flex;padding:4px;border:1px solid var(--black);border-radius:999px;isolation:isolate}
.is-dark .ts-seg{border-color:var(--white)}
.ts-seg button{position:relative;z-index:1;min-height:40px;padding:0 22px;border:0;background:none;border-radius:999px;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;color:inherit;transition:color .45s var(--ease)}
.ts-seg button[aria-selected="true"]{color:var(--white)}
.ts-seg-ink{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;width:0;border-radius:999px;background:var(--black);transition:transform .6s var(--ease),width .6s var(--ease)}
html:not(.ts-js) .ts-seg-ink{display:none}
html:not(.ts-js) .ts-seg button[aria-selected="true"]{background:var(--black)}
.ts-source{margin-top:14px;font-size:12.5px;line-height:1.5;color:var(--muted)}
.is-dark .ts-source{color:var(--muted-dark)}

/* markets */
.ts-mk-headr{display:flex;flex-direction:column;align-items:flex-start;gap:28px}
.ts-mk-stage{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,7vw,112px);align-items:start}
.ts-mk-media{position:sticky;top:110px;aspect-ratio:4/5}
.ts-mk-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1s var(--ease),transform 1.6s var(--ease)}
.ts-mk-media img.is-on{opacity:1;transform:none}
.ts-mk-place{position:absolute;left:0;right:0;bottom:0;padding:60px 24px 20px;background:linear-gradient(180deg,rgba(35,31,32,0),rgba(35,31,32,.72));color:var(--white);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.ts-mk-place span{display:none}
.ts-mk-place span.is-on{display:block}
.ts-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.ts-stat{display:flex;flex-direction:column;gap:10px;padding-top:18px;border-top:1px solid var(--black)}
.ts-stat-v{font-family:var(--display);font-weight:400;font-size:clamp(30px,3.2vw,50px);line-height:1;letter-spacing:-.005em;white-space:nowrap}
.ts-stat-l{font-size:14.5px;line-height:1.5;font-weight:300;color:var(--muted)}
.ts-mk-panel .ts-source{margin-top:18px}
.ts-chart{margin:clamp(40px,5vw,64px) 0 0;padding-top:24px;border-top:1px solid var(--line)}
.ts-chart-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;margin-bottom:22px}
.ts-chart-title{font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.ts-chips{display:flex;flex-wrap:wrap;gap:6px}
.ts-chips button{min-height:32px;padding:0 14px;border:1px solid var(--line);border-radius:0;background:none;font-size:12px;letter-spacing:.04em;cursor:pointer;color:inherit;transition:border-color .3s,background-color .3s,color .3s}
.ts-chips button:hover{border-color:var(--black)}
.ts-chips button[aria-pressed="true"]{background:var(--black);border-color:var(--black);color:var(--white)}
.ts-chart-plot{position:relative;height:clamp(220px,24vw,300px);margin-left:56px}
.ts-chart-grid,.ts-chart-cols{position:absolute;left:0;right:0;top:12px;bottom:30px}
.ts-chart-grid i{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--line)}
.ts-chart-grid i.is-base{border-top-color:var(--black)}
.ts-chart-grid b{position:absolute;right:calc(100% + 12px);transform:translateY(-50%);font-weight:400;font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.ts-col{position:absolute;bottom:0;height:100%;transform:translateX(-50%);cursor:default;outline:none}
.ts-col-bar{position:absolute;left:50%;bottom:0;width:clamp(18px,2.2vw,28px);height:var(--h,0%);margin-left:calc(clamp(18px,2.2vw,28px) / -2);background:var(--charcoal);transform-origin:bottom;transition:background-color .3s}
.ts-col.is-last .ts-col-bar{background:var(--black)}
.ts-chart-cols.is-hover .ts-col:not(.is-hover) .ts-col-bar{background:#d6d0cb}
.ts-col-yr{position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%);font-size:12px;letter-spacing:.08em;color:var(--muted)}
.ts-col-val{position:absolute;left:50%;bottom:calc(var(--h,0%) + 10px);transform:translateX(-50%);padding:5px 9px;background:var(--black);color:var(--white);font-size:12.5px;line-height:1.2;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s}
.ts-col.is-last .ts-col-val{background:none;color:var(--black);padding:0;font-family:var(--display);font-size:14px;letter-spacing:.02em;opacity:1}
.ts-chart-cols.is-hover .ts-col.is-last:not(.is-hover) .ts-col-val{opacity:0}
.ts-col.is-hover .ts-col-val{opacity:1}
.ts-col.is-hover.is-last .ts-col-val{background:var(--black);color:var(--white);padding:5px 9px;font-family:var(--sans);font-size:12.5px}
.ts-chart-read{min-height:22px;margin-top:10px;font-size:14px;font-weight:400}

/* residency check */
.ts-res{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,112px);align-items:start}
.ts-res .ts-h2{margin-top:20px}
.ts-res .ts-lead{margin-top:24px;max-width:28em}
.ts-res-note{margin-top:28px;max-width:30em;font-size:13.5px;line-height:1.6;color:var(--muted)}
.ts-res-r{padding:clamp(28px,3.5vw,48px);background:var(--white);border:1px solid var(--black)}
.ts-res-r .ts-seg{margin-bottom:32px}
.ts-route-name{font-family:var(--display);font-size:clamp(18px,1.6vw,22px);line-height:1.2;text-transform:uppercase}
.ts-route-q{display:block;margin-top:28px;font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ts-route-v{display:block;margin-top:8px;font-family:var(--display);font-size:clamp(34px,4vw,56px);line-height:1;letter-spacing:.01em;color:var(--black)}
.ts-meter{position:relative;margin-top:26px;padding-bottom:36px}
.ts-range{-webkit-appearance:none;appearance:none;display:block;width:100%;height:2px;margin:0;background:linear-gradient(var(--black),var(--black)) 0/var(--p,50%) 100% no-repeat,var(--line);border:0;cursor:pointer}
.ts-range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:0;background:var(--white);border:1px solid var(--black);box-shadow:0 0 0 4px var(--white);cursor:grab;transition:transform .2s}
.ts-range::-moz-range-thumb{width:20px;height:20px;border-radius:0;background:var(--white);border:1px solid var(--black);cursor:grab}
.ts-range:active::-webkit-slider-thumb{transform:scale(1.15);cursor:grabbing}
.ts-range:focus-visible{outline:1.5px solid var(--black);outline-offset:10px}
.ts-meter-mark{position:absolute;top:-10px;left:var(--t,50%);display:block;pointer-events:none}
.ts-meter-mark i{display:block;width:1px;height:22px;background:var(--black)}
.ts-meter-mark em{position:absolute;top:30px;left:0;transform:translateX(-50%);font-style:normal;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.ts-route-out{min-height:52px;font-size:17px;line-height:1.5;font-weight:400}
.ts-route-out b{font-weight:500}
.ts-route-list{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.ts-res-act{margin-top:32px}

@media (max-width:1023px){
  .ts-mk-stage,.ts-res{grid-template-columns:minmax(0,1fr)}
  .ts-mk-media{position:relative;top:auto;max-width:440px;aspect-ratio:1}
  .ts-mk-media{border-radius:999px 999px 0 0}
}
@media (max-width:720px){
  .ts-stats{grid-template-columns:minmax(0,1fr);gap:20px}
  .ts-stat{flex-direction:row;align-items:baseline;justify-content:space-between;gap:16px}
  .ts-stat-l{text-align:right;max-width:55%}
  .ts-seg button{padding:0 16px}
  .ts-res-r{padding:24px 20px}
}

body.tm-site:has(.ts-hero,.ts-phero:not(.is-demo)) .ts-review:not(.is-on){opacity:0;transform:translateY(20px);pointer-events:none}
@media (max-width:720px){.ts-review{right:8px;left:8px;bottom:8px;justify-content:center}}
@media (max-width:720px){.ts-review.is-away{transform:translateY(140%)}}

/* ---------- stage 1 pages ---------- */

/* inner hero without a photo: black, with two fine arches that draw themselves */
.ts-phero.is-plain{height:clamp(460px,66svh,700px)}
.ts-phero-lines{position:absolute;right:var(--m);bottom:0;height:88%;aspect-ratio:2/3;pointer-events:none}
.ts-phero-lines svg{display:block;width:100%;height:100%;overflow:visible}
.ts-phero-lines path{fill:none;stroke:rgba(255,255,255,.26);stroke-width:1;vector-effect:non-scaling-stroke}
.ts-phero-lines path+path{stroke:rgba(255,255,255,.13)}
.ts-phero.is-plain .ts-phero-main{display:block;max-width:min(62%,880px)}
.ts-phero.is-plain .ts-phero-lead{margin-top:28px;max-width:34em}
.ts-phero.is-plain .ts-scroll-cue{display:none}

/* numbered points: outline frames with an index column, or columns under a rule */
.ts-pils{display:grid;gap:clamp(16px,2vw,28px)}
.ts-pils.is-frames{grid-template-columns:repeat(2,minmax(0,1fr))}
.ts-pils.is-frames .ts-pil{display:grid;grid-template-columns:64px minmax(0,1fr);border:1px solid var(--black)}
.ts-pils.is-frames .ts-pil-idx{border-right:1px solid var(--black);padding:26px 0 0 16px;font-family:var(--display);font-size:18px;line-height:1;color:var(--accent-text);transition:background-color .5s var(--ease),color .5s var(--ease)}
.ts-pils.is-frames .ts-pil:hover .ts-pil-idx{background:var(--black);color:var(--gold)}
.ts-pils.is-frames .ts-pil-main{padding:24px clamp(20px,2.6vw,36px) 30px}
.ts-pil-t{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(19px,1.6vw,24px);line-height:1.15}
.ts-pils.is-frames .ts-pil-t{padding-bottom:16px;border-bottom:1px solid var(--black)}
.ts-pil-p{margin-top:16px;max-width:34em;font-size:15.5px;line-height:1.65;font-weight:300;color:var(--muted)}
.ts-pil-a{margin-top:18px}
.ts-pils.is-cols{grid-template-columns:repeat(var(--c,4),minmax(0,1fr));gap:clamp(28px,3vw,44px) clamp(20px,2.4vw,36px)}
.ts-pils.is-cols .ts-pil{display:flex;flex-direction:column;gap:14px;padding-top:20px;border-top:1px solid var(--black)}
.ts-pils.is-cols .ts-pil-idx{font-family:var(--display);font-size:14px;line-height:1;color:var(--accent-text)}
.ts-pils.is-cols .ts-pil-p{margin-top:12px}
.is-dark .ts-pils .ts-pil,.is-dark .ts-pils.is-frames .ts-pil-idx,.is-dark .ts-pils.is-frames .ts-pil-t{border-color:var(--white)}
.is-dark .ts-pil-idx{color:var(--gold)!important}
.is-dark .ts-pil-p{color:var(--muted-dark)}

/* team */
.ts-team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(36px,4vw,56px) clamp(16px,2vw,32px)}
.ts-member-img{position:relative;aspect-ratio:3/4}
.ts-member-img img{transition:transform 1.4s var(--ease)}
.ts-member:hover .ts-member-img img{transform:scale(1.05)}
.ts-member-ph{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:22px;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.ts-member-n{margin-top:22px;font-size:20px;line-height:1.3;font-weight:400;letter-spacing:-.005em}
.ts-member-r{margin-top:6px;font-size:11.5px;line-height:18px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ts-member-b{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:14.5px;line-height:1.6;font-weight:300;color:var(--muted)}

/* questions with the heading beside them */
.ts-faq-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.ts-faq-head{position:sticky;top:120px}
.ts-faq-head .ts-h2{margin-top:20px}
.ts-faq-head .ts-lead{margin-top:20px;max-width:26em}
.ts-faq-a p.ts-faq-link{margin-top:-12px}

/* article */
.ts-article{position:relative;padding-bottom:clamp(72px,8vw,120px)}
.ts-read-bar{position:fixed;left:0;right:0;top:0;z-index:52;height:2px;pointer-events:none}
.ts-read-bar i{display:block;height:100%;background:var(--black);transform-origin:0 50%;transform:scaleX(0)}
.ts-art-head{padding-top:clamp(36px,5vw,72px)}
.ts-art-head .ts-crumbs{margin-bottom:0}
.ts-art-meta{display:flex;flex-wrap:wrap;align-items:center;margin-top:clamp(32px,4vw,56px);font-size:12px;line-height:18px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ts-art-meta span+span::before{content:"";display:inline-block;width:18px;height:1px;margin:0 12px;background:currentColor;vertical-align:middle;opacity:.5}
.ts-art-title{margin-top:20px;max-width:15em;font-size:clamp(32px,4.2vw,64px);line-height:1.04;letter-spacing:.005em;text-wrap:balance}
.ts-art-lead{margin-top:28px;max-width:36em;font-size:clamp(18px,1.5vw,22px);line-height:1.55;font-weight:300;color:var(--charcoal)}
.ts-art-cover{margin-top:clamp(40px,5vw,72px)}
.ts-art-cover-in{aspect-ratio:21/9;overflow:hidden;background:var(--charcoal)}
.ts-art-cover-in img{width:100%;height:100%;object-fit:cover}
.ts-art-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px clamp(20px,2.4vw,36px);margin-top:clamp(40px,5vw,64px)}
.ts-art-body{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);margin-top:clamp(48px,6vw,88px)}
.ts-art-main{grid-column:2;min-width:0;max-width:720px}
.ts-toc{grid-column:1;grid-row:1;position:sticky;top:110px;align-self:start;display:none}
.ts-toc.is-on{display:block}
.ts-toc-t{padding-bottom:12px;border-bottom:1px solid var(--line);font-size:11.5px;line-height:18px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ts-toc ol{display:flex;flex-direction:column;margin-top:12px}
.ts-toc a{display:block;padding:7px 0 7px 14px;border-left:1px solid var(--line);font-size:14px;line-height:1.45;color:var(--muted);transition:color .3s,border-color .3s}
.ts-toc a:hover,.ts-toc a.is-on{color:var(--black);border-left-color:var(--black)}
.ts-prose{font-size:17.5px;line-height:1.75;font-weight:300;color:var(--black)}
.ts-prose>*+*{margin-top:1.1em}
.ts-prose h2{margin-top:2.2em;font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(22px,2vw,28px);line-height:1.15;letter-spacing:.005em;scroll-margin-top:110px}
.ts-prose h3{margin-top:1.8em;font-size:20px;line-height:1.35;font-weight:500;scroll-margin-top:110px}
.ts-prose>h2:first-child,.ts-prose>h3:first-child{margin-top:0}
.ts-prose ul{padding:0;list-style:none}
.ts-prose ul li{position:relative;padding-left:1.25em}
.ts-prose ul li::before{content:"_";position:absolute;left:0}
.ts-prose ol{padding-left:1.4em;list-style:decimal}
.ts-prose li+li{margin-top:.45em}
.ts-prose a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.ts-prose strong{font-weight:500}
.ts-prose blockquote{padding-left:20px;border-left:2px solid var(--black);font-size:20px;line-height:1.5}
.ts-prose hr{margin:2.4em 0;border:0;border-top:1px solid var(--line)}
.ts-prose table:not(.ts-sr),.ts-prose table.table{width:100%;margin-bottom:0;border:0;border-collapse:collapse;background:none;font-size:15px;line-height:1.5;font-variant-numeric:tabular-nums}
.ts-prose table th,.ts-prose table td,.ts-prose .table-bordered th,.ts-prose .table-bordered td{padding:12px 16px 12px 0;border:0;border-bottom:1px solid var(--line);text-align:left;vertical-align:baseline;background:none}
.ts-prose table th{font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-bottom-color:var(--black)}
.ts-prose table td:not(:first-child),.ts-prose table th:not(:first-child){text-align:right}
.ts-prose .table-bordered th,.ts-prose table:not(.ts-sr) th{border-bottom-color:var(--black)}
.ts-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ts-prose .ts-chart{margin-top:2em;padding-top:20px;border-top:1px solid var(--black)}
.ts-prose .ts-chart *+*{margin-top:0}
.ts-art-sources{margin-top:clamp(48px,5vw,72px);padding-top:20px;border-top:1px solid var(--black)}
.ts-art-sources-t{font-size:11.5px;line-height:18px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.ts-art-sources ol{margin-top:14px;padding-left:1.2em;list-style:decimal;font-size:13.5px;line-height:1.6;color:var(--muted)}
.ts-art-sources li+li{margin-top:6px}
.ts-art-back{margin-top:44px}

/* legal pages */
.ts-legal-sec{padding-top:clamp(56px,6vw,96px)}
.ts-legal-note{max-width:860px;margin-bottom:clamp(40px,5vw,64px);padding:18px 22px;background:var(--cream);font-size:14.5px;line-height:1.55}
.ts-legal.ts-art-body{margin-top:0}
.ts-legal-upd{margin-bottom:28px;font-size:12px;line-height:18px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ts-legal .ts-prose{font-size:16.5px;line-height:1.7}

/* article lists */
.ts-list-filter{margin-bottom:clamp(28px,3vw,44px)}
.ts-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(40px,4vw,56px) clamp(20px,2.4vw,36px)}
.ts-list-grid.has-feature .ts-list-item:first-child{grid-column:1/-1}
.ts-list-grid.has-feature .ts-list-item:first-child .ts-acard{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,4vw,64px);align-items:center}
.ts-list-grid.has-feature .ts-list-item:first-child .ts-card-img{aspect-ratio:16/10}
.ts-list-grid.has-feature .ts-list-item:first-child .ts-card-body{padding-top:0}
.ts-list-grid.has-feature .ts-list-item:first-child .ts-card-t{font-family:var(--display);text-transform:uppercase;font-size:clamp(26px,2.8vw,40px);line-height:1.08;letter-spacing:.005em}
.ts-acard .ts-card-t,.ts-acard .ts-card-p,.ts-card-go{display:block}
.ts-card-go{margin-top:18px}
.ts-acard:hover .ts-card-go .ts-link{animation:tsLine .9s var(--ease)}
.ts-list-item[hidden]{display:none}
.ts-list-empty{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px;padding:clamp(28px,4vw,56px);border:1px solid var(--black)}
.ts-list-empty .ts-line{max-width:34em}

@media (max-width:1023px){
  .ts-phero-lines{right:-12%;height:70%;opacity:.7}
  .ts-phero.is-plain .ts-phero-main{max-width:none}
  .ts-pils.is-frames{grid-template-columns:minmax(0,1fr)}
  .ts-pils.is-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-faq-grid{grid-template-columns:minmax(0,1fr)}
  .ts-faq-head{position:static}
  .ts-art-body{grid-template-columns:minmax(0,1fr)}
  .ts-art-main{grid-column:1}
  .ts-toc,.ts-toc.is-on{display:none}
  .ts-list-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-list-grid.has-feature .ts-list-item:first-child .ts-acard{display:block}
  .ts-list-grid.has-feature .ts-list-item:first-child .ts-card-body{padding-top:20px}
}
@media (max-width:720px){
  .ts-pils.is-cols{grid-template-columns:minmax(0,1fr)}
  .ts-team{gap:36px 14px}
  .ts-member-b{font-size:14px}
  .ts-art-cover-in{aspect-ratio:4/3}
  .ts-prose{font-size:16.5px}
  .ts-prose table:not(.ts-sr){font-size:13.5px}
  .ts-prose table th{letter-spacing:.06em}
  .ts-prose table th,.ts-prose table td{padding-right:10px}
  .ts-list-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:480px){.ts-team{grid-template-columns:minmax(0,1fr)}.ts-member-img{max-width:300px}}

/* ================================================================ stage 2: properties */
.ts-phero.is-compact{height:clamp(400px,52svh,560px)}
.ts-phero.is-compact .ts-phero-lines{height:96%}
.ts-seg button[aria-checked="true"]{color:var(--white)}
html:not(.ts-js) .ts-seg button[aria-checked="true"]{background:var(--black)}
.ts-tag,.ts-card-tag{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;background:var(--black);color:var(--white);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
.ts-tag.is-line,.ts-card-tag.is-light{background:var(--white);color:var(--black);box-shadow:inset 0 0 0 1px var(--black)}
.ts-tag.is-sample,.ts-card-tag.is-sample{background:var(--cream);color:var(--black)}
.ts-card-tags{position:absolute;left:14px;top:14px;display:flex;flex-wrap:wrap;gap:6px}
.ts-card-tags .ts-card-tag{position:static}

.ts-pr-x{font-family:var(--sans);font-size:.62em;font-weight:400;letter-spacing:.02em}
.ts-pr-por{font-family:var(--sans);font-size:.8em;font-weight:400;letter-spacing:0}
.ts-ls-sec:not(.is-similar){padding-top:clamp(48px,5vw,80px)}
/* filters */
.ts-lf{position:relative;margin-bottom:clamp(32px,3.6vw,52px);border-top:1px solid var(--black);padding-top:22px}
.ts-lf-top{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center}
.ts-lf-seg button{padding:0 18px}
.ts-lf-more{display:none;align-items:center;gap:8px;min-height:48px;padding:0 20px;border:1px solid var(--black);border-radius:999px;background:none;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.ts-lf-more span:not(:empty){display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--black);color:var(--white);font-size:11px;letter-spacing:0}
.ts-lf-sel{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 24px;margin-top:24px}
.ts-lf-field{display:flex;flex-direction:column;gap:4px;min-width:0}
.ts-lf-field>span{font-size:11px;line-height:16px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ts-lf-in{display:block;width:100%;height:44px;padding:0 26px 0 0;border:0;border-bottom:1px solid rgba(35,31,32,.4);background:transparent;color:var(--black);font-size:16px;appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--black) 50%),linear-gradient(135deg,var(--black) 50%,transparent 50%);background-position:calc(100% - 10px) 20px,calc(100% - 5px) 20px;background-size:5px 5px;background-repeat:no-repeat;text-overflow:ellipsis;transition:border-color .3s}
.ts-lf-in:hover{border-bottom-color:var(--black)}
.ts .ts-lf-in:focus-visible{outline:none;border-bottom-color:var(--black);box-shadow:0 1px 0 var(--black)}
.ts-lf-in:disabled{opacity:.45;cursor:default}
.ts-lf-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:28px}
.ts-lf-count{font-size:12.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
.ts-lf-clear{border:0;background:none;padding:0 0 2px;font-size:12.5px;letter-spacing:.06em;cursor:pointer;color:var(--muted)}
.ts-lf-view{margin-left:auto}
html:not(.ts-js) .ts-lf{display:none}

/* listing grid */
.ts-ls-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(44px,4vw,64px) clamp(20px,2.4vw,36px)}
.ts-ls-item[hidden]{display:none}
.ts-lcard .ts-card-t{display:block}
.ts-lcard .ts-card-k{min-height:18px}
.ts-lcard .ts-card-meta{min-height:41px}
.ts-lcard:hover .ts-card-foot .ts-link{animation:tsLine .9s var(--ease)}
.ts-ls-all{margin-top:clamp(36px,4vw,56px)}
.ts-ls-sec.is-similar{border-top:1px solid var(--line)}
.ts-ls-none{margin-top:8px}
.ts-ls-none .ts-btnrow{display:flex;flex-wrap:wrap;gap:12px}

/* map */
.ts-lmap{position:relative}
.ts-lmap-canvas{height:min(72vh,720px);min-height:420px;background:#ece8e4;border:1px solid var(--black)}
.ts-lmap-note{margin-top:14px;font-size:13px;color:var(--muted)}
.ts-lmap-note:empty{display:none}
.ts .leaflet-container{font-family:var(--sans);background:#ece8e4}
.ts .leaflet-tile-pane{filter:grayscale(1) contrast(.92) brightness(1.04)}
.ts .leaflet-control-attribution{font-size:10.5px;background:rgba(255,255,255,.86)}
.ts .leaflet-control-attribution a{text-decoration:underline}
.ts .leaflet-bar,.ts .leaflet-bar a{border-radius:0!important}
.ts .leaflet-bar{border:1px solid var(--black);box-shadow:none}
.ts .leaflet-bar a{color:var(--black);width:36px;height:36px;line-height:34px;border-bottom-color:var(--line)}
.ts-pin{position:relative;display:inline-flex;text-transform:uppercase;align-items:center;white-space:nowrap;padding:5px 9px;background:var(--black);color:var(--white);font-family:var(--display);font-size:12.5px;line-height:1;letter-spacing:.03em;box-shadow:0 0 0 2px var(--white);transform:translate(-50%,-100%);margin-top:-7px;transition:background-color .2s,color .2s}
.ts-pin::after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;margin-left:-5px;background:inherit;transform:rotate(45deg);z-index:-1}
.ts-pin-wrap{background:none;border:0}
.ts-pin-wrap:hover .ts-pin,.ts-pin-wrap.is-on .ts-pin{background:var(--white);color:var(--black);box-shadow:0 0 0 1px var(--black)}
.ts-pin-wrap:hover,.ts-pin-wrap.is-on{z-index:1000!important}
.ts-pin.is-dot{width:18px;height:18px;padding:0;border-radius:50%}
.ts .leaflet-popup-content-wrapper{border-radius:0;padding:0;box-shadow:0 18px 40px rgba(35,31,32,.22)}
.ts .leaflet-popup-content{margin:0;width:260px!important}
.ts .leaflet-popup-tip{box-shadow:none}
.ts .leaflet-container a.leaflet-popup-close-button{color:var(--white);top:8px;right:8px;width:28px;height:28px;font:22px/28px var(--sans);background:var(--black)}
.ts-pop{display:block;color:var(--black)}
.ts-pop img,.ts-pop .ts-card-ph{display:block;position:relative;width:100%;aspect-ratio:16/10;object-fit:cover}
.ts-pop-b{display:block;padding:14px 16px 16px}
.ts-pop-k{display:block;font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ts-pop-t{display:block;margin-top:6px;font-size:16px;line-height:1.3}
.ts-pop-p{display:block;margin-top:10px;font-family:var(--display);font-size:15px;color:var(--accent-text)}
.ts-pop-list{display:block;padding:8px 16px}
.ts-pop-li{display:block;padding:12px 32px 12px 0;border-bottom:1px solid var(--line);color:var(--black)}
.ts-pop-li:last-child{border-bottom:0}
.ts-pop-li .ts-pop-p{margin-top:4px}

/* property alerts */
.ts-alert{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px clamp(32px,5vw,80px);margin-top:clamp(56px,6vw,96px);padding:clamp(28px,3.4vw,52px);background:var(--cream)}
.ts-alert-t{margin-top:14px;font-size:clamp(22px,2vw,30px);line-height:1.2;letter-spacing:-.01em}
.ts-alert-sum{margin-top:18px;display:flex;flex-direction:column;gap:4px}
.ts-alert-sum span{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ts-alert-sum b{font-weight:400;font-size:16px;line-height:1.45}
.ts-alert-f{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px;align-content:start}
.ts-alert .ts-field>label:not(.ts-check){color:var(--muted)}
.ts-alert .ts-in{color:var(--black);border-bottom-color:rgba(35,31,32,.35)}
.ts-alert .ts-in:hover{border-bottom-color:var(--black)}
.ts .ts-alert .ts-in:focus-visible{outline:none;border-bottom-color:var(--black);box-shadow:0 1px 0 var(--black)}
.ts-alert .ts-check{color:var(--black)}
.ts-alert .ts-check input{border-color:var(--black)!important}
.ts-alert .ts-check input:checked{background:var(--black) none!important;box-shadow:inset 0 0 0 4px var(--cream)!important}
.ts-alert .ts-check input:focus-visible{outline-color:var(--black)}
.ts-alert .ts-field.is-bad .ts-in{border-bottom-color:#b3261e}
.ts-alert .ts-err{color:#b3261e}
.ts-alert-done{align-self:center}
.ts-alert-done p:last-child{margin-top:10px;font-size:16px;line-height:1.6;color:var(--muted)}
html:not(.ts-js) .ts-alert{display:none}
@media (max-width:1023px){.ts-alert{grid-template-columns:minmax(0,1fr)}}
@media (max-width:720px){.ts-alert-f{grid-template-columns:minmax(0,1fr)}}

/* property page */
.ts-ld{padding-bottom:clamp(64px,7vw,112px)}
.ts-ld-top{padding-top:clamp(28px,3vw,44px)}
.ts-ld-top .ts-crumbs{margin-bottom:24px}
.ts-ld-sample{margin:0 0 24px;padding:14px 18px;background:var(--cream);font-size:14.5px;line-height:1.5}
.ts-gal{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;height:clamp(320px,52vw,620px)}
.ts-gal-i{position:relative;display:block;width:100%;height:100%;padding:0;border:0;overflow:hidden;background:var(--charcoal);cursor:zoom-in}
.ts-gal-i img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),opacity .4s}
.ts-gal-i:hover img{transform:scale(1.04)}
.ts-gal-i:first-child{grid-row:1/3}
.ts-gal.is-n1{grid-template-columns:1fr}
.ts-gal.is-n2{grid-template-columns:2fr 1fr}.ts-gal.is-n2 .ts-gal-i:nth-child(2){grid-row:1/3}
.ts-gal.is-n3{grid-template-columns:2fr 1fr}
.ts-gal.is-n4{grid-template-columns:2fr 1fr 1fr}.ts-gal.is-n4 .ts-gal-i:nth-child(4){grid-column:2/4}
.ts-gal-more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(35,31,32,.58);color:var(--white);font-family:var(--display);font-size:clamp(22px,2.4vw,34px)}
.ts-gal-all{position:absolute;right:16px;bottom:16px;background:var(--white);color:var(--black);border-color:var(--white)}
.ts-gal.is-empty{display:block;position:relative;height:clamp(240px,34vw,420px)}
.ts-ld-head{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:24px clamp(32px,5vw,80px);align-items:end;margin-top:clamp(36px,4vw,60px)}
.ts-ld-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.ts-ld-title{font-size:clamp(30px,3.6vw,58px);line-height:1.04;text-wrap:balance}
.ts-ld-place{margin-top:16px;font-size:clamp(16px,1.2vw,18px);font-weight:300;color:var(--muted)}
.ts-ld-price{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:6px}
.ts-ld-price b{font-family:var(--display);font-weight:400;font-size:clamp(26px,2.6vw,40px);line-height:1.05;color:var(--accent-text)}
.ts-ld-k{font-size:11.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.ts-ld-per{font-size:13.5px;color:var(--muted)}
.ts-ld-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-top:clamp(28px,3vw,44px);border-top:1px solid var(--black);border-left:1px solid var(--line)}
.ts-ld-fact{padding:16px 18px 18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.ts-ld-fact dt{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ts-ld-fact dd{margin-top:6px;font-size:16.5px;line-height:1.35}
.ts-ld-body{display:grid;grid-template-columns:minmax(0,7fr) minmax(280px,4fr);gap:clamp(40px,6vw,104px);align-items:start;margin-top:clamp(48px,5vw,80px)}
.ts-ld-lead{font-size:clamp(19px,1.6vw,24px);line-height:1.45;font-weight:300;letter-spacing:-.005em;margin-bottom:clamp(32px,3vw,48px);text-wrap:pretty}
.ts-ld-note{margin-bottom:28px;padding:14px 18px;border:1px solid var(--black);font-size:15px}
.ts-ld-sec{padding-top:28px;border-top:1px solid var(--line);margin-top:clamp(40px,4vw,60px)}
.ts-ld-lead+.ts-ld-sec,.ts-ld-main>.ts-ld-sec:first-child{margin-top:0}
.ts-ld-h{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(20px,1.7vw,26px);line-height:1.1;margin-bottom:22px}
.ts-ld .ts-prose p{font-size:17px;line-height:1.75;font-weight:300}
.ts-ld .ts-prose p+p{margin-top:1em}
.ts-ld-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px;margin-top:4px}
.ts-ld-list li{position:relative;padding-left:22px;font-size:16px;line-height:1.5;font-weight:300}
.ts-ld-list li::before{content:"";position:absolute;left:0;top:.72em;width:10px;height:1px;background:var(--black)}
.ts-ld-sec .ts-prose+.ts-ld-list{margin-top:24px}
.ts-ld-table{width:100%;border-collapse:collapse;font-size:15.5px}
.ts-ld-table th,.ts-ld-table td{padding:14px 16px 14px 0;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;font-weight:400}
.ts-ld-table thead th{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border-bottom-color:var(--black);padding-top:0}
.ts-ld-table td:nth-child(3){font-family:var(--display);color:var(--accent-text);white-space:nowrap}
.ts-ld-dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px;margin-bottom:24px}
.ts-ld-dl dt{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ts-ld-dl dd{margin-top:6px;font-size:16.5px}
.ts-ld-floor{display:block;border:1px solid var(--line);background:var(--white)}
.ts-ld-floor img{width:100%;max-height:640px;object-fit:contain}
.ts-ld-video{margin-top:24px}
.ts-ld-map{height:clamp(300px,34vw,440px);background:#ece8e4;border:1px solid var(--black)}
.ts-ld-mapnote{margin-top:14px;font-size:14px;color:var(--muted)}
.ts-ld-side{position:sticky;top:104px}
.ts-ld-card{padding:clamp(24px,2.4vw,36px);border:1px solid var(--black);background:var(--white)}
.ts-ld-card-price{margin-top:8px;font-family:var(--display);font-size:clamp(24px,2vw,32px);line-height:1.08;color:var(--accent-text)}
.ts-ld-card-t{margin-top:16px;font-size:15px;line-height:1.55;font-weight:300;color:var(--muted)}
.ts-ld-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.ts-ld-acts .ts-pill{flex:1 1 auto}
.ts-ld-mail{margin-top:16px;font-size:14px;color:var(--muted)}
.ts-ld-permit{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:12px}
.ts-ld-permit dt{font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ts-ld-permit dd{margin-top:2px;font-size:15px}
.ts-ld-qr img{width:96px;height:96px;image-rendering:pixelated}
.ts-ld-missing{padding-top:clamp(120px,14vw,200px)}
.ts-ld-missing .ts-btnrow{display:flex;flex-wrap:wrap;gap:12px}
.ts-contact-about{margin-top:28px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;font-size:17px;line-height:1.4}
.ts-contact-about span{font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-dark)}
.ts-contact-about small{font-size:12px;color:var(--muted-dark)}

/* payment plan: one bar in stages, shares written on it, amounts in the list */
.ts-pp-bar{display:flex;gap:2px;height:56px}
.ts-pp-seg{--c:var(--black);position:relative;flex:var(--w) 1 0;min-width:28px;display:flex;align-items:center;padding:0 12px;background:var(--c);color:var(--white);font-family:var(--display);font-size:15px;transition:opacity .3s}
.ts-pp-seg b{font-weight:400;white-space:nowrap;overflow:hidden}
.ts-pp-seg[data-k="1"],.ts-pp-sw[data-k="1"]{--c:#5f5859}
.ts-pp-seg[data-k="2"],.ts-pp-sw[data-k="2"]{--c:#9a9293;color:var(--black)}
.ts-pp-seg[data-k="3"],.ts-pp-sw[data-k="3"]{--c:#c9c2c3;color:var(--black)}
.ts-pp-seg[data-k="4"],.ts-pp-sw[data-k="4"]{--c:#e2dcdc;color:var(--black)}
.ts-pp.is-hover .ts-pp-seg:not(.is-on){opacity:.32}
.ts-pp-list{margin-top:22px;border-top:1px solid var(--black)}
.ts-pp-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);font-size:15.5px;transition:background-color .2s}
.ts-pp-row.is-on{background:linear-gradient(90deg,rgba(35,31,32,.05),transparent)}
.ts-pp-sw{--c:var(--black);width:14px;height:14px;background:var(--c)}
.ts-pp-p{font-family:var(--display);min-width:3.4em;text-align:right}
.ts-pp-a{font-family:var(--display);color:var(--accent-text);min-width:8em;text-align:right;white-space:nowrap}
.ts-pp .ts-source{margin-top:14px}

/* photo viewer */
.ts-lb{position:fixed;inset:0;z-index:200;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#161414;color:var(--white)}
.ts-lb-top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px var(--m)}
.ts-lb-count{font-family:var(--display);font-size:14px;letter-spacing:.06em}
.ts-lb-close{min-height:44px}
.ts-lb-stage{position:relative;display:grid;place-items:center;padding:0 clamp(56px,7vw,112px);overflow:hidden;touch-action:pan-y}
.ts-lb-stage img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.ts-lb-nav{position:absolute;top:50%;width:52px;height:52px;margin-top:-26px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:transparent;color:var(--white);cursor:pointer;transition:background-color .3s,color .3s}
.ts-lb-nav:hover{background:var(--white);color:var(--black)}
.ts-lb-nav svg{width:18px;height:18px}
.ts-lb-prev{left:clamp(8px,2vw,32px)}.ts-lb-next{right:clamp(8px,2vw,32px)}
.ts-lb-cap{min-height:52px;padding:14px var(--m) 20px;font-size:14px;color:rgba(255,255,255,.75);text-align:center}
.ts-lb :focus-visible{outline-color:var(--white)}
html.ts-lb-open,html.ts-lb-open body{overflow:hidden}

/* owner portal */
.ts-op-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--black)}
.ts-op-step{padding:28px clamp(20px,2.4vw,36px) 32px 0;border-right:1px solid var(--line);margin-right:clamp(20px,2.4vw,36px)}
.ts-op-step:last-child{border-right:0;margin-right:0}
.ts-op-n{display:block;font-family:var(--display);font-size:14px;color:var(--accent-text)}
.ts-op-st{margin-top:18px;font-size:clamp(20px,1.6vw,24px);line-height:1.25;font-weight:400}
.ts-op-step p{margin-top:12px;font-size:15.5px;line-height:1.6;font-weight:300;color:var(--muted)}
.ts-op-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(36px,4vw,56px)}
.ts-op-fine{margin-top:20px;font-size:14px;line-height:1.55;color:var(--muted);max-width:44em}
.ts-op-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding:14px 0;margin-bottom:clamp(40px,5vw,72px);border-bottom:1px solid var(--line);font-size:14.5px;color:var(--muted)}
.ts-op-bar b{color:var(--black);font-weight:500}
.ts-op-head{margin-bottom:clamp(28px,3vw,44px)}
.ts-op-add{justify-self:end}
.ts-op-loading,.ts-op-empty{padding:28px 0;border-top:1px solid var(--black);font-size:16px;color:var(--muted)}
.ts-op-list{border-top:1px solid var(--black)}
.ts-op-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:clamp(16px,2.4vw,32px);align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.ts-op-thumb{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--charcoal)}
.ts-op-thumb img{width:100%;height:100%;object-fit:cover}
.ts-op-t{font-size:18px;line-height:1.3}
.ts-op-m{margin-top:6px;font-size:13.5px;color:var(--muted)}
.ts-op-s{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;font-size:13.5px;color:var(--muted)}
.ts-op-pill{display:inline-flex;align-items:center;gap:8px;min-height:26px;padding:0 10px;border:1px solid var(--black);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--black)}
.ts-op-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.ts-op-pill.is-live{background:var(--black);color:var(--white)}
.ts-op-pill.is-closed{border-color:var(--line);color:var(--muted)}
.ts-op-pill.is-closed::before{background:transparent;box-shadow:inset 0 0 0 1px currentColor}
.ts-op-acts-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px;font-size:12.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.ts-op-acts-row button{border:0;background:none;padding:0 0 2px;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit}
.ts-op-confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px 14px;font-size:13.5px;text-transform:none;letter-spacing:0;font-weight:400}
.ts-op-form{margin-top:clamp(48px,5vw,80px);padding-top:clamp(28px,3vw,40px);border-top:1px solid var(--black)}
.ts-op-form-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:clamp(28px,3vw,44px)}
.ts-op-form-head button{border:0;background:none;cursor:pointer;font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:0 0 2px}
.ts-op-fs{border:0;margin:0 0 clamp(36px,4vw,56px);padding:0;min-width:0}
.ts-op-fs legend{padding:0;margin-bottom:22px;font-family:var(--display);font-size:clamp(18px,1.5vw,22px);text-transform:uppercase}
.ts-op-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px}
.ts-op-lab{font-size:11.5px;line-height:16px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ts-op .ts-field>label:not(.ts-check){color:var(--muted)}
.ts-op .ts-in{color:var(--black);border-bottom-color:rgba(35,31,32,.35)}
.ts-op .ts-in::placeholder{color:rgba(35,31,32,.38)}
.ts-op .ts-in:hover{border-bottom-color:var(--black)}
.ts-op .ts .ts-in:focus-visible,.ts-op .ts-in:focus-visible{outline:none;border-bottom-color:var(--black);box-shadow:0 1px 0 var(--black)}
.ts-op select.ts-in{background-image:linear-gradient(45deg,transparent 50%,var(--black) 50%),linear-gradient(135deg,var(--black) 50%,transparent 50%)}
.ts-op input[type=date].ts-in{padding-right:0}
.ts-op .ts-check{color:var(--black)}
.ts-op .ts-check input{border-color:var(--black)!important}
.ts-op .ts-check input:checked{background:var(--black) none!important;box-shadow:inset 0 0 0 4px var(--white)!important}
.ts-op .ts-check input:focus-visible{outline-color:var(--black)}
.ts-op .ts-field.is-bad .ts-in{border-bottom-color:#b3261e}
.ts-op .ts-err{color:#b3261e}
.ts-op-choice{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.ts-op-choice label{position:relative;cursor:pointer}
.ts-op-choice input{position:absolute;opacity:0;width:1px!important;height:1px!important}
.ts-op-choice span{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid rgba(35,31,32,.35);border-radius:999px;font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;transition:background-color .25s,color .25s,border-color .25s}
.ts-op-choice label:hover span{border-color:var(--black)}
.ts-op-choice input:checked+span{background:var(--black);border-color:var(--black);color:var(--white)}
.ts-op-choice input:focus-visible+span{outline:1.5px solid var(--black);outline-offset:3px}
.ts-op .is-bad .ts-op-choice span{border-color:#b3261e}
.ts-op-unit{display:flex;gap:12px;align-items:flex-end}
.ts-op-unit .ts-in:first-child{flex:1 1 auto}
.ts-op-unit select.ts-in{flex:0 0 84px}
.ts-op-cur{flex:none;height:48px;display:flex;align-items:center;font-family:var(--display);font-size:15px}
.ts-up-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px}
.ts-up-list:not(:empty){margin:10px 0 12px}
.ts-up-i{position:relative;aspect-ratio:1;background:#ece8e4;overflow:hidden}
.ts-up-i img{width:100%;height:100%;object-fit:cover}
.ts-up-i.is-busy img{opacity:.45}
.ts-up-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(35,31,32,.2)}
.ts-up-bar i{display:block;height:100%;width:0;background:var(--black);transition:width .2s}
.ts-up-cover{position:absolute;left:8px;top:8px;padding:4px 8px;background:var(--black);color:var(--white);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.ts-up-tools{position:absolute;right:6px;top:6px;display:flex;gap:6px}
.ts-up-tools button{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border:0;background:rgba(255,255,255,.94);color:var(--black);font-size:11px;font-weight:500;letter-spacing:.06em;cursor:pointer}
.ts-up-tools button:hover{background:var(--black);color:var(--white)}
.ts-up-err{position:absolute;inset:auto 0 0 0;padding:6px 8px;background:#b3261e;color:var(--white);font-size:11.5px;line-height:1.3}
.ts-up-add{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:112px;margin-top:10px;border:1px dashed rgba(35,31,32,.45);cursor:pointer;transition:border-color .25s,background-color .25s}
.ts-up-add:hover,.ts-up-add.is-drag{border-color:var(--black);background:rgba(35,31,32,.03)}
.ts-up-add input{position:absolute;inset:0;width:100%!important;height:100%!important;opacity:0;cursor:pointer}
.ts-up-add span{font-size:12.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase}
.ts-up-add small{font-size:12.5px;color:var(--muted)}
.ts-up-add:focus-within{outline:1.5px solid var(--black);outline-offset:3px}
.ts-op-done{padding:clamp(28px,3vw,40px);border:1px solid var(--black)}
.ts-op-done h3{font-family:var(--display);text-transform:uppercase;font-size:clamp(20px,1.8vw,26px);font-weight:400}
.ts-op-done p{margin-top:10px;font-size:16px;line-height:1.6;color:var(--muted)}

@media (max-width:1100px){
  .ts-lf-sel{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ts-ld-body{grid-template-columns:minmax(0,1fr)}
  .ts-ld-side{position:static;order:-1}
  .ts-ld-card>.ts-ld-k,.ts-ld-card-price{display:none}
  .ts-ld-card-t{margin-top:0}
}
@media (max-width:1023px){
  .ts-ls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-ld-head{grid-template-columns:minmax(0,1fr)}
  .ts-ld-price{align-items:flex-start;text-align:left}
  .ts-gal{height:clamp(280px,60vw,520px)}
  .ts-op-steps{grid-template-columns:minmax(0,1fr)}
  .ts-op-step{border-right:0;margin-right:0;border-bottom:1px solid var(--line)}
}
@media (max-width:720px){
  .ts-phero.is-compact{height:clamp(380px,62svh,500px)}
  .ts-lf-more{display:inline-flex}
  .ts-lf-sel{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .ts-lf.is-open .ts-lf-sel{display:grid}
  .ts-lf-seg button{padding:0 13px}
  .ts-lf-view{margin-left:0}
  .ts-lf-bar{justify-content:space-between}
  .ts-ls-grid{grid-template-columns:minmax(0,1fr)}
  .ts-lmap-canvas{height:64vh;min-height:360px}
  .ts-gal{display:block;height:auto;aspect-ratio:4/3}
  .ts-gal-i{display:none;height:100%}
  .ts-gal-i:first-child{display:block}
  .ts-gal-all{right:12px;bottom:12px}
  .ts-ld-list{grid-template-columns:minmax(0,1fr)}
  .ts-ld-dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-ld-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ts-ld-fact{padding:14px 14px 16px}
  .ts-ld-table{font-size:14.5px}
  .ts-pp-row{grid-template-columns:14px minmax(0,1fr) auto;row-gap:4px}
  .ts-pp-a{grid-column:2/4;text-align:left;min-width:0}
  .ts-pp-seg{padding:0 8px;font-size:13px}
  .ts-lb-stage{padding:0}
  .ts-lb-nav{top:auto;bottom:-64px;margin:0}
  .ts-lb-cap{padding-bottom:84px}
  .ts-op-row{grid-template-columns:88px minmax(0,1fr)}
  .ts-op-acts-row{grid-column:1/-1;justify-content:flex-start}
  .ts-op-grid{grid-template-columns:minmax(0,1fr);gap:24px}
  .ts-op-add{justify-self:start}
  .ts-op-head{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){.ts-gal-i img,.ts-pp-seg,.ts-pin{transition:none}}
@media print{.ts-ld-side{position:static}.ts-gal-all,.ts-lf{display:none}}
