/* TASIRI flagship: bold editorial type, tactile photographs, quiet reading pages. */
:root {
  --ts-bold: 'Inter', 'Public Sans', Arial, sans-serif;
  --ts-forest: #102d23;
  --ts-sky: #b6d8e8;
  --ts-radius: 12px;
  --ts-spring: cubic-bezier(.22, 1.4, .36, 1);
}
body.ts-site :is(a,button,summary) { -webkit-tap-highlight-color: #e95f3233; }
body.ts-site :is(button,summary) { cursor: pointer; }
body.ts-site .ts-header {
  height: 88px; padding: 16px clamp(20px,3vw,48px); border: 0;
  background: var(--ts-forest); box-shadow: none; pointer-events: none;
  top: var(--ts-admin-offset,0px); z-index: 100;
}
body.ts-site.home .ts-header { background: transparent; }
body.ts-site .ts-header.ts-is-scrolled { background: transparent; box-shadow: none; }
body.ts-site .ts-header-inner { max-width: none; height: 56px; gap: 20px; justify-content: space-between; }
body.ts-site .ts-header .ts-logo { pointer-events: auto; min-height: 44px; align-items: center; padding: 8px 10px; border-radius: 6px; background: var(--ts-forest); }
body.ts-site .ts-header .ts-logo img { width: 132px; height: auto; }
body.ts-site .ts-site-menu {
  position: absolute; top: 16px; left: 50%; transform: translateX(-50%);
  width: 320px; border-radius: var(--ts-radius); background: var(--ts-forest);
  color: var(--ts-cream); box-shadow: 0 5px 20px #071a1514; pointer-events: auto;
}
.ts-site-menu > summary {
  list-style: none; min-height: 56px; display: flex; align-items: center;
  justify-content: space-between; gap: 16px; padding: 16px 20px;
  font: 800 12px/1 var(--ts-bold); text-transform: uppercase;
}
.ts-site-menu > summary::-webkit-details-marker { display: none; }
.ts-menu-message { flex: 1; border-left: 1px solid currentColor; padding-left: 16px; font: 500 13px/1.3 var(--ts-bold); letter-spacing: -.025em; text-transform: none; white-space: nowrap; opacity: .75; }
.ts-menu-icon { display: block; position: relative; flex: 0 0 18px; width: 18px; height: 18px; }
.ts-menu-icon i { position: absolute; width: 16px; height: 2px; left: 1px; top: 4px; background: currentColor; transition: transform 200ms, top 200ms, opacity 200ms; }
.ts-menu-icon i:nth-child(2) { top: 8px; }
.ts-menu-icon i:nth-child(3) { top: 12px; }
.ts-site-menu[open] .ts-menu-icon i { top: 8px; transform: rotate(45deg); }
.ts-site-menu[open] .ts-menu-icon i:nth-child(2) { opacity: 0; transform: none; }
.ts-site-menu[open] .ts-menu-icon i:nth-child(3) { transform: rotate(-45deg); }
body.ts-site .ts-site-menu[open] {
  width: min(440px,calc(100vw - 32px)); background: var(--ts-cream); color: var(--ts-ink);
  box-shadow: 0 20px 70px #071a1540;
}
.ts-header:has(.ts-site-menu[open])::before { content: ''; position: fixed; inset: 0; background: #071a1526; z-index: -1; pointer-events: none; }
.ts-site-menu[open] > summary { border-bottom: 1px solid var(--ts-line); }
.ts-menu-panel { height: min(500px,calc(100dvh - var(--ts-admin-offset,0px) - 112px)); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; scroll-padding-block: 12px; padding: 16px 24px 24px; display: flex; flex-direction: column; }
.ts-menu-panel a { scroll-margin-block: 12px; }
.ts-menu-panel::-webkit-scrollbar { display: none; }
.ts-menu-panel nav { display: flex; flex-direction: column; flex-shrink: 0; gap: 2px; }
.ts-menu-panel nav a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; gap: 12px; padding: 6px 8px; margin-inline: -8px; border-radius: 6px; font: 900 28px/1.1 var(--ts-bold); letter-spacing: -.045em; text-decoration: none; text-transform: uppercase; transition: background-color 180ms, color 180ms; }
.ts-menu-panel nav a > span:first-child { transition: transform 220ms var(--ts-ease); }
.ts-menu-panel nav a > span + span { font-size: 20px; opacity: 0; transform: translate(-6px,6px); transition: opacity 180ms, transform 250ms var(--ts-ease); }
.ts-menu-panel nav a:is(:hover,:focus-visible) { color: var(--ts-green); background-color: #164b3810; }
.ts-menu-panel nav a[aria-current] { color: var(--ts-green); }
.ts-menu-panel nav a:is(:hover,:focus-visible) > span:first-child { transform: translateX(6px); }
.ts-menu-panel nav a:is(:hover,:focus-visible,[aria-current]) > span + span { opacity: 1; transform: none; }
.ts-menu-search { border-top: 1px solid var(--ts-line); margin-top: 16px; padding-top: 8px; display: flex; flex-shrink: 0; justify-content: space-between; align-items: center; min-height: 44px; font-size: 12px; text-decoration: none; }
.ts-menu-search:is(:hover,:focus-visible) { color: var(--ts-green); text-decoration: underline; text-underline-offset: 4px; }
.ts-menu-bottom { margin-top: auto; padding-top: 32px; display: flex; flex-shrink: 0; align-items: flex-end; justify-content: space-between; gap: 12px; }
.ts-menu-time { display: flex; flex-direction: column; flex-shrink: 0; color: var(--ts-green); }
.ts-menu-clock { font: 800 20px/1.2 var(--ts-bold); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ts-menu-time > span { font: 500 10px/1.5 var(--ts-body); margin-top: 4px; }
.ts-menu-socials { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: 4px; }
body.ts-site .ts-menu-socials a { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border-radius: 6px; color: var(--ts-green); background: #164b380b; background-image: none; transition: background-color 180ms, color 180ms; }
body.ts-site .ts-menu-socials a:is(:hover,:focus-visible) { color: var(--ts-cream); background: var(--ts-green); }
.ts-menu-socials svg { display: block; width: 18px; height: 18px; fill: currentColor; stroke: none; transform: none; }
.ts-menu-socials a:is(:hover,:focus-visible) svg { transform: none; }
body.ts-site .ts-chat-link {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 18px;
  min-height: 52px; padding: 7px 7px 7px 18px; background: var(--ts-cream);
  color: var(--ts-ink); border: 1px solid #17251f14; border-radius: var(--ts-radius);
  font: 800 12px/1.2 var(--ts-bold); text-decoration: none; text-transform: uppercase;
  pointer-events: auto; transition: background 200ms, transform 180ms;
}
.ts-chat-arrow { display: grid; place-items: center; flex-shrink: 0; width: 36px; height: 36px; border-radius: 7px; background: var(--ts-orange); font: 500 25px/1 var(--ts-body); transition: transform 320ms var(--ts-spring); }
.ts-chat-link:is(:hover,:focus-visible) .ts-chat-arrow { transform: rotate(45deg); }
body.ts-site .ts-chat-link:hover { background: #fff; }
.ts-chat-link:active { transform: scale(.98); }

/* Oversized statements; story cards and article reading retain the editorial serif. */
body.ts-site main :is(.tasiri-title,.tasiri-card-title) { font-family: var(--ts-bold); font-weight: 900; letter-spacing: -.055em; }
body.ts-site main .tasiri-title { font-size: clamp(40px,5.6vw,82px); line-height: .99; }
body.ts-site main .tasiri-title em { font: inherit; }
body.ts-site:not(.single) .ts-heading { font-family: var(--ts-bold); font-weight: 900; line-height: 1; letter-spacing: -.065em; }
body.ts-site .ts-home-page > .tasiri-section { padding: clamp(64px,7vw,112px) var(--ts-gutter); }
body.ts-site .ts-home-page { overflow: clip; }
body.ts-site.home #tasiri-main { margin-top: -88px; }
body.ts-site .ts-home-page .ts-home-hero {
  position: relative; min-height: min(950px,100svh); isolation: isolate;
  padding: 150px var(--ts-gutter) 36px; gap: 20px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center; color: var(--ts-cream);
  background-color: var(--ts-forest);
  background-image: linear-gradient(180deg,#102d23db 0%,#102d23b8 46%,#102d23a8 100%),url('https://tasiri.africa/wp-content/uploads/2026/09/tasiri-community.jpg');
  background-size: cover; background-position: center 62%; overflow: visible;
}
body.ts-site .ts-home-hero::before { display: none; }
.ts-home-hero::after {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .15;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.5' d='M0 0h180v180H0z'/%3E%3C/svg%3E");
}
body.ts-site .ts-home-hero > .tasiri-kicker { font-size: 11px; letter-spacing: .16em; }
body.ts-site .ts-home-hero .tasiri-title {
  max-width: 1200px; width: 100%; font-size: clamp(70px,10.5vw,152px);
  line-height: .9; letter-spacing: -.065em; text-transform: uppercase; margin: 0;
}
body.ts-site .ts-home-hero .tasiri-title em { color: var(--ts-orange); font-style: normal; }
body.ts-site .ts-home-hero > .tasiri-body { max-width: 420px; font-size: 14px; line-height: 1.7; margin: 8px auto 0; }
body.ts-site .ts-home-hero .ts-hero-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; width: 100%; margin-top: auto; padding: 24px 0 0; min-height: 354px; text-align: left; }
body.ts-site .ts-hero-bottom .ts-hero-caption { max-width: 250px; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; line-height: 1.6; }
body.ts-site .ts-hero-bottom .ts-hero-links { width: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 0; }
body.ts-site .ts-hero-links .tasiri-link { min-height: 44px; font-size: 12px; color: var(--ts-cream); }
body.ts-site .ts-home-hero .ts-scroll-cue { display: none; }
body.ts-site .ts-work-stack {
  --stack-row: 112px; --stack-gap: 12px; --stack-bar: 52px; --stack-space: 14px;
  position: relative; display: flex; flex-direction: column; gap: var(--stack-gap);
  width: 390px; max-width: 100%; flex: 0 0 390px; padding: 0; text-align: left;
  isolation: isolate;
}
body.ts-site .ts-work-stack .ts-stack-label {
  position: relative; z-index: 5; display: flex; align-items: center; width: 100%;
  min-height: var(--stack-bar); margin: 2px 0 0; padding: 0;
  background: var(--ts-forest); color: var(--ts-cream); border-radius: 10px;
  font: 700 12px/1.4 var(--ts-bold); text-transform: uppercase; text-decoration: none;
  transition: background-color 220ms, color 220ms;
}
body.ts-site .ts-stack-label > a { box-sizing: border-box; display: flex; flex: 1; align-items: center; min-height: var(--stack-bar); padding: 16px 64px 16px 18px; border-radius: inherit; color: inherit; text-decoration: none; }
body.ts-site .ts-work-stack:not(.ts-stack-enhanced) .ts-stack-label::after { content: '↗'; margin-left: auto; font-size: 20px; }
body.ts-site .ts-work-stack .ts-stack-card {
  --card-y: 0px; --card-scale: 1; --card-x: 0px;
  position: relative; display: flex; flex-direction: row; align-items: center; gap: 16px;
  width: 100%; min-height: var(--stack-row); padding: 14px;
  background: #fff; color: var(--ts-ink); border: 1px solid #17251f12; border-radius: 18px;
  text-decoration: none; box-shadow: 0 4px 14px #071a1514; transform-origin: center top;
  transform: translate(var(--card-x),var(--card-y)) scale(var(--card-scale));
  transition: transform 560ms var(--ts-spring), background-color 180ms, box-shadow 180ms;
}
body.ts-site .ts-stack-card img { display: block; flex: 0 0 43%; width: 43%; height: 82px; object-fit: cover; border-radius: 10px; }
body.ts-site .ts-stack-card p { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; padding: 0; color: inherit; text-align: left; }
.ts-stack-card p > span:first-child { display: block; color: var(--ts-muted); font: 500 11px/1.4 var(--ts-body); letter-spacing: .025em; text-transform: uppercase; }
.ts-stack-card p > span:last-child { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font: 500 14px/1.35 var(--ts-body); letter-spacing: -.025em; }
body.ts-site .ts-stack-enhanced { min-height: calc(var(--stack-row) + var(--stack-bar) + var(--stack-space)); }
body.ts-site .ts-stack-enhanced .ts-stack-card { position: absolute; bottom: calc(var(--stack-bar) + var(--stack-space)); left: 0; height: var(--stack-row); }
body.ts-site .ts-stack-card[data-stack-index="0"] { --card-y: -18px; --card-scale: .94; z-index: 1; }
body.ts-site .ts-stack-card[data-stack-index="1"] { --card-y: -9px; --card-scale: .97; z-index: 2; }
body.ts-site .ts-stack-card[data-stack-index="2"] { z-index: 3; }
.ts-stack-enhanced .ts-stack-card > * { transition: opacity 180ms; }
.ts-stack-enhanced:not(.ts-stack-open) .ts-stack-card[inert] > * { opacity: 0; }
body.ts-site .ts-stack-enhanced .ts-stack-label { position: absolute; bottom: 0; margin: 0; }
body.ts-site .ts-stack-toggle { position: absolute; z-index: 6; right: 4px; bottom: 4px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 7px; background: #ffffff14; color: var(--ts-cream); }
.ts-stack-toggle svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; transition: transform 280ms var(--ts-ease); }
.ts-stack-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
body.ts-site .ts-stack-open::before { content: ''; position: absolute; z-index: -1; inset: auto -8px -8px; height: calc(3 * var(--stack-row) + 2 * var(--stack-gap) + var(--stack-space) + var(--stack-bar) + 16px); }
body.ts-site .ts-stack-open .ts-stack-card[data-stack-index="0"] { --card-y: calc(-2 * (var(--stack-row) + var(--stack-gap))); --card-scale: 1; }
body.ts-site .ts-stack-open .ts-stack-card[data-stack-index="1"] { --card-y: calc(-1 * (var(--stack-row) + var(--stack-gap))); --card-scale: 1; }
body.ts-site .ts-stack-open .ts-stack-label { background: var(--ts-orange); color: var(--ts-ink); }
body.ts-site .ts-stack-open .ts-stack-toggle { color: var(--ts-ink); background: #17251f0c; }
body.ts-site .ts-stack-card:focus-visible { background: var(--ts-cream); outline-offset: 4px; }
body.ts-site .ts-stack-label > a:focus-visible { outline-color: var(--ts-cream); outline-offset: 4px; }
body.ts-site .ts-stack-toggle:focus-visible { outline: 3px solid var(--ts-cream); outline-offset: 2px; }
body.ts-site .ts-hero-bottom:has(.ts-work-stack:not(.ts-stack-enhanced)) { padding-top: 24px; }
@media (hover:hover) and (pointer:fine) {
  body.ts-site .ts-stack-open .ts-stack-card:hover { --card-x: -4px; background: var(--ts-cream); box-shadow: 0 8px 24px #071a1526; }
  body.ts-site .ts-stack-toggle:hover { background: #ffffff30; }
}

/* Image-first story cards, populated directly from published WordPress articles. */
body.ts-site .ts-latest { max-width: none; padding: 80px var(--ts-gutter); background: var(--ts-cream); }
.ts-latest-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 48px; }
.ts-latest-heading h2 { margin: 0; font: 900 clamp(38px,4.5vw,64px)/.98 var(--ts-bold); letter-spacing: -.055em; max-width: 650px; text-transform: uppercase; }
.ts-latest-intro { max-width: 420px; margin: 24px 0 0; font-size: 16px; line-height: 1.6; }
.ts-latest-heading .ts-chat-link { flex-shrink: 0; }
.ts-latest-note { max-width: 46rem; margin: -16px 0 32px; color: var(--ts-muted); }
body.ts-site .ts-latest-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; padding-bottom: 0; }
body.ts-site .ts-latest-grid .ts-latest-card { min-width: 0; min-height: 0; background: transparent; color: var(--ts-ink); border: 0; border-radius: 0; overflow: visible; box-shadow: none; transform: none; }
.ts-latest-story { display: flex; flex-direction: column; flex: 1; min-width: 0; text-decoration: none; border-radius: 16px; }
.ts-latest-story > .ts-card-media { position: relative; display: block; flex: 0 0 auto; margin: 0 0 12px; width: 100%; height: auto; aspect-ratio: 1.6; overflow: hidden; border-radius: 16px; }
.ts-latest-story > .ts-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ts-latest-story > .ts-card-media::after { display: none; }
.ts-latest-placeholder { display: grid !important; place-items: center; color: var(--ts-cream); background: var(--ts-forest); font: 900 40px/1 var(--ts-bold); letter-spacing: -.06em; }
body.ts-site .ts-latest-card-body { display: flex; flex-direction: column; flex: 1; align-items: flex-start; gap: 20px; max-width: none; padding: 24px; border-radius: 16px; background: transparent; transition: background-color 240ms var(--ts-ease); }
.ts-latest-date { display: inline-block; padding: 4px 8px; border-radius: 5px; background: #17251f0c; font: 500 12px/1.5 var(--ts-body); text-transform: uppercase; }
body.ts-site .ts-latest-card-body h3 { margin: 0; font: 900 clamp(22px,1.9vw,28px)/1.12 var(--ts-bold); letter-spacing: -.04em; text-transform: uppercase; overflow-wrap: anywhere; }
.ts-latest-excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0; color: var(--ts-muted); font-size: 16px; line-height: 1.6; }
.ts-latest-story:focus-visible { outline-offset: 6px; }
.ts-latest-card:focus-within .ts-latest-card-body { background-color: #fbe0cb; }
@media (hover:hover) and (pointer:fine) { .ts-latest-card:hover .ts-latest-card-body { background-color: #fbe0cb; } }

/* A short, emphatic manifesto, followed by the lighter photographic chapter. */
body.ts-site .ts-home-manifesto { background: var(--ts-forest); color: var(--ts-cream); }
body.ts-site .ts-home-manifesto > .tasiri-title { max-width: 1000px; }
body.ts-site .ts-home-manifesto > .tasiri-title em { color: var(--ts-orange); }
body.ts-site .ts-home-manifesto > .tasiri-body { max-width: 620px; color: #e6e9e1; }
body.ts-site .ts-home-manifesto .ts-manifesto-grid { gap: 32px; margin: 24px 0 8px; }
body.ts-site .ts-home-manifesto .ts-info-card { padding: 24px 0 0; border: 0; border-top: 1px solid #ffffff40; background: transparent; color: inherit; gap: 12px; }
body.ts-site .ts-home-manifesto .ts-card-number { color: #f5b39a; }
body.ts-site .ts-home-manifesto .ts-info-card > .tasiri-small { font: 600 12px/1.5 var(--ts-body); color: #f5b39a; }
body.ts-site .ts-home-manifesto .tasiri-link { color: var(--ts-cream); }
body.ts-site .ts-home-sky {
  position: relative; isolation: isolate; background: var(--ts-sky); color: var(--ts-forest);
  overflow: hidden; gap: 36px;
}
.ts-home-sky::before {
  content: ''; position: absolute; z-index: -1; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse at 8% 28%,#fff9 0%,#fff0 33%),radial-gradient(ellipse at 90% 65%,#fffd 0%,#fff0 35%),radial-gradient(ellipse at 52% 98%,#fff9 0%,#fff0 40%);
}
body.ts-site .ts-home-sky .ts-section-heading { align-items: center; text-align: center; max-width: 800px; margin: 0 auto; }
body.ts-site .ts-home-sky .tasiri-body { max-width: 440px; }
body.ts-site .ts-home-sky .ts-gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: auto; gap: clamp(24px,4vw,64px); align-items: center; padding: 32px 20px 64px; }
body.ts-site .ts-home-sky .ts-gallery-card {
  position: relative; display: block; width: 100%; padding: 10px 10px 0; border-radius: 3px;
  overflow: visible; background: var(--ts-cream); aspect-ratio: auto; box-shadow: 0 18px 32px #173d4926;
  transform: rotate(var(--photo-angle,-6deg)); animation: ts-photo-float 7s ease-in-out infinite alternate; animation-play-state: paused;
}
body.ts-site .ts-home-sky.ts-in-view .ts-gallery-card { animation-play-state: running; }
body.ts-site .ts-home-sky .ts-gallery-card:nth-child(2) { --photo-angle: 5deg; margin-top: 70px; animation-delay: -3s; }
body.ts-site .ts-home-sky .ts-gallery-card:nth-child(3) { --photo-angle: -4deg; animation-delay: -5s; }
body.ts-site .ts-home-sky .ts-gallery-card::before,body.ts-site .ts-home-sky .ts-gallery-card::after { display: none; }
body.ts-site .ts-home-sky .ts-gallery-card img.ts-gallery-photo { position: static; width: 100%; height: auto; aspect-ratio: .95; object-fit: cover; border-radius: 0; }
body.ts-site .ts-home-sky .ts-gallery-caption { position: static; padding: 18px 8px 22px; gap: 6px; color: var(--ts-ink); }
body.ts-site .ts-home-sky .ts-gallery-caption .tasiri-card-title { color: var(--ts-ink); font: 800 clamp(18px,2vw,28px)/1.1 var(--ts-bold); }
body.ts-site .ts-home-sky .ts-gallery-caption .tasiri-kicker { color: var(--ts-green); font-size: 10px; }
body.ts-site .ts-home-sky .tasiri-small { max-width: 650px; margin: 0 auto; color: var(--ts-forest); font-size: 11px; text-align: center; }
@keyframes ts-photo-float { from { transform: translateY(0) rotate(var(--photo-angle,-6deg)); } to { transform: translateY(-18px) rotate(calc(var(--photo-angle,-6deg) + 2deg)); } }
body.ts-site .ts-home-sky .ts-gallery-card:focus-within { animation-play-state: paused; }

/* Work and collaboration use playful offsets without compromising reading order. */
body.ts-site .ts-home-studio { background: var(--ts-orange); color: var(--ts-ink); }
body.ts-site .ts-home-studio .tasiri-title { font-size: clamp(44px,6.5vw,96px); }
body.ts-site .ts-home-studio .tasiri-body { max-width: 510px; }
body.ts-site .ts-home-studio .tasiri-small { color: var(--ts-ink); }
body.ts-site .ts-home-studio .tasiri-button { background: var(--ts-forest); color: var(--ts-cream); border-radius: var(--ts-radius); }
body.ts-site .ts-services-section { background: var(--ts-cream); }
body.ts-site .ts-services-section .ts-card-grid { gap: 24px; }
body.ts-site .ts-services-section .ts-service-card { background: #fff; border: 1px solid var(--ts-line); border-radius: 12px; padding: 32px; gap: 16px; }
body.ts-site .ts-services-section .ts-service-card:nth-child(3n + 2) { background: #e1e9df; }
body.ts-site .ts-services-section .ts-service-card:nth-child(4) { background: #f6ddcc; }
body.ts-site .ts-home-collaborate { background: var(--ts-forest); color: var(--ts-cream); }
body.ts-site .ts-home-collaborate .ts-card-support { background: transparent; color: inherit; border: 0; border-top: 1px solid #ffffff40; padding: 24px 0; }
body.ts-site .ts-home-collaborate .tasiri-link { color: var(--ts-cream); }
body.ts-site .ts-home-collaborate .ts-card-support:hover { background: transparent; }
body.ts-site .ts-home-page > .tasiri-section:last-child { padding: 24px var(--ts-gutter); }
body.ts-site .ts-home-page > .tasiri-section:last-child .tasiri-small { font-size: 11px; line-height: 1.7; }

body.ts-site .ts-flagship-footer { padding: 48px clamp(20px,3vw,48px) 20px; background: var(--ts-forest); color: var(--ts-cream); overflow: clip; }
.ts-footer-top { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 32px; border-bottom: 1px solid #ffffff30; }
.ts-footer-top p { font: 600 14px/1.5 var(--ts-body); margin: 0; }
body.ts-site .ts-footer-wordmark { display: block; font: 900 clamp(72px,22.2vw,360px)/1 var(--ts-bold); letter-spacing: -.075em; text-align: center; white-space: nowrap; padding: 18px 0 30px; text-decoration: none; }
.ts-footer-wordmark > span:first-child { color: var(--ts-orange); }
body.ts-site .ts-footer-wordmark img { display: block; width: 100%; height: auto; }
.ts-wordmark-period { color: var(--ts-orange); }
.ts-footer-links { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; padding: 16px 0; }
.ts-footer-links nav { gap: 0 24px; }
.ts-footer-links .ts-socials { gap: 0 16px; justify-content: flex-end; }
.ts-footer-links :is(nav,.ts-socials) a { font-size: 12px; }
body.ts-site .ts-flagship-footer .ts-footer-bottom { max-width: none; margin-top: 20px; padding-right: 64px; align-items: center; font-size: 11px; color: #d2ddd3; }
.ts-footer-bottom > span + span { display: flex; gap: 20px; flex-wrap: wrap; }
.ts-footer-bottom a { display: inline-flex; align-items: center; min-height: 44px; }
.ts-cursor-dot { position: fixed; top: -7px; left: -7px; width: 14px; height: 14px; background: var(--ts-orange); border-radius: 50%; pointer-events: none; z-index: 99990; opacity: 0; transition: opacity 180ms, width 180ms,height 180ms,margin 180ms; }
.ts-cursor-dot.ts-dot-visible { opacity: .9; }
.ts-cursor-dot.ts-dot-active { width: 30px; height: 30px; margin: -8px; opacity: .4; }
@media (hover:hover) and (pointer:fine) {
  body.ts-site .ts-home-sky .ts-gallery-card:hover { animation-play-state: paused; }
  body.ts-site .ts-services-section .ts-service-card:nth-child(odd):hover { transform: translateY(-5px) rotate(-1deg); }
  body.ts-site .ts-services-section .ts-service-card:nth-child(even):hover { transform: translateY(-5px) rotate(1deg); }
}
@media (max-width:900px) {
  body.ts-site .ts-latest-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.ts-site .ts-home-hero .tasiri-title { font-size: clamp(64px,10.5vw,100px); }
  body.ts-site .ts-home-hero { min-height: 780px; }
  .ts-footer-links { flex-direction: column; gap: 4px; }
  .ts-footer-links .ts-socials { justify-content: flex-start; }
  body.ts-site .ts-home-sky .ts-gallery-grid { gap: 24px; padding-inline: 12px; }
  body.ts-site .ts-home-sky .ts-gallery-caption { padding-inline: 2px; }
  body.ts-site .ts-work-stack { flex-basis: 360px; width: 360px; }
}
@media (min-width:601px) and (max-width:1100px) {
  body.ts-site .ts-home-hero .ts-hero-bottom { min-height: 450px; }
}
@media (max-width:800px) {
  body.ts-site .ts-site-menu:not([open]) { width: 126px; }
  .ts-site-menu:not([open]) .ts-menu-message { display: none; }
}
@media (max-width:600px) {
  body.ts-site .ts-header { height: 80px; padding: 14px 12px; }
  body.ts-site .ts-header-inner { height: 50px; gap: 8px; }
  body.ts-site .ts-header .ts-logo { padding: 8px 0; background: transparent; }
  body.ts-site .ts-header .ts-logo img { width: 88px; }
  body.ts-site .ts-site-menu { top: 14px; }
  body.ts-site .ts-site-menu:not([open]) { width: 88px; }
  .ts-site-menu > summary { padding: 16px 12px; min-height: 50px; font-size: 11px; gap: 10px; }
  .ts-menu-panel { padding-inline: 20px; }
  .ts-menu-panel nav a { font-size: 24px; }
  .ts-menu-clock { font-size: 18px; }
  .ts-menu-socials { max-width: 140px; flex-wrap: wrap; }
  body.ts-site .ts-header .ts-chat-link { gap: 8px; padding: 5px 5px 5px 10px; min-height: 50px; font-size: 10px; }
  .ts-header .ts-chat-arrow { width: 26px; height: 36px; font-size: 22px; }
  body.ts-site.home #tasiri-main { margin-top: -80px; }
  body.ts-site .ts-home-page > .tasiri-section { padding: 64px 20px; }
  body.ts-site .ts-home-page .ts-home-hero { padding: 126px 20px 28px; min-height: 870px; min-height: max(850px,100svh); gap: 24px; justify-content: flex-start; background-position: 56% center; }
  body.ts-site .ts-home-hero > .tasiri-kicker { max-width: 240px; font-size: 10px; line-height: 1.6; }
  body.ts-site .ts-home-hero .tasiri-title { font-size: clamp(52px,14.4vw,84px); line-height: .95; letter-spacing: -.07em; }
  body.ts-site .ts-home-hero .tasiri-title > em { display: block; }
  body.ts-site .ts-home-hero > .tasiri-body { max-width: 320px; font-size: 13px; }
  body.ts-site .ts-home-hero .ts-hero-bottom { flex-direction: column-reverse; align-items: center; gap: 36px; padding-top: 310px; min-height: 0; text-align: center; margin-top: 0; }
  body.ts-site .ts-hero-bottom .ts-hero-links { align-items: center; }
  body.ts-site .ts-hero-bottom .ts-hero-caption { max-width: 300px; font-size: 9px; }
  body.ts-site .ts-work-stack { --stack-row: 132px; width: 100%; max-width: 390px; flex-basis: auto; }
  body.ts-site .ts-stack-card { gap: 12px; padding: 14px; }
  body.ts-site .ts-stack-card img { height: 102px; }
  .ts-stack-card p > span:first-child { font-size: 10px; }
  .ts-stack-card p > span:last-child { font-size: 14px; }
  body.ts-site .ts-latest { padding: 64px 20px; }
  .ts-latest-heading { align-items: flex-start; flex-direction: column; gap: 24px; margin-bottom: 32px; }
  .ts-latest-heading h2 { font-size: 40px; }
  body.ts-site .ts-latest-grid { grid-template-columns: 1fr; }
  body.ts-site .ts-latest-card-body { padding: 20px; gap: 16px; }
  body.ts-site .ts-latest-card-body h3 { font-size: 24px; }
  body.ts-site .ts-home-manifesto .ts-manifesto-grid { gap: 24px; }
  body.ts-site .ts-home-sky .ts-gallery-grid { grid-template-columns: 1fr; gap: 44px; padding: 12px 22px 24px; max-width: 380px; margin: 0 auto; }
  body.ts-site .ts-home-sky .ts-gallery-card:nth-child(2) { margin-top: 0; }
  body.ts-site .ts-home-sky .ts-gallery-card img.ts-gallery-photo { aspect-ratio: 1.2; }
  body.ts-site .ts-home-sky .ts-gallery-caption .tasiri-card-title { font-size: 24px; }
  body.ts-site .ts-services-section .ts-service-card { padding: 24px; }
  body.ts-site .ts-flagship-footer { padding-top: 32px; }
  .ts-footer-top { align-items: flex-start; gap: 16px; }
  .ts-footer-top p { font-size: 12px; }
  body.ts-site .ts-footer-wordmark { font-size: 21.6vw; padding: 24px 0; }
  .ts-footer-links nav { gap: 0 20px; }
}
@media (prefers-reduced-motion:reduce) {
  body.ts-site .ts-cursor-dot { display: none; }
  body.ts-site .ts-home-sky .ts-gallery-card { animation: none; }
  body.ts-site :is(.ts-stack-card,.ts-stack-card > *,.ts-stack-label,.ts-stack-toggle svg) { transition: none; }
  body.ts-site :is(.ts-chat-arrow,.ts-service-card) { transition: none; }
  .ts-menu-panel nav a, .ts-menu-panel nav a > span { transition: none; }
  body.ts-site .ts-latest-card-body { transition: none; }
  .ts-menu-panel nav a:is(:hover,:focus-visible) > span:first-child { transform: none; }
  body.ts-site .ts-chat-link:is(:hover,:focus-visible) .ts-chat-arrow { transform: none; }
}
@media (max-width:360px) {
  body.ts-site .ts-header .ts-logo img { width: 76px; }
  body.ts-site .ts-site-menu:not([open]) { width: 70px; }
  .ts-site-menu > summary { padding: 16px 10px; gap: 5px; font-size: 10px; }
  body.ts-site .ts-header .ts-chat-link { gap: 2px; padding-left: 4px; font-size: 9px; }
  .ts-header .ts-chat-arrow { width: 23px; }
}
@media (hover:none),(pointer:coarse) { .ts-cursor-dot { display: none; } }
@media print {
  body.ts-site .ts-header { position: static; background: var(--ts-forest); }
  .ts-site-menu,.ts-chat-link,.ts-cursor-dot { display: none !important; }
  body.ts-site.home #tasiri-main { margin-top: 0; }
  body.ts-site .ts-home-sky .ts-gallery-card { animation: none; }
}

/* Apple interaction and legibility: responsive feedback, readable chrome, quiet motion. */
:root {
  --ts-bold: 'Inter', 'Public Sans', system-ui, sans-serif;
  --ts-body: 'Public Sans', system-ui, sans-serif;
  --ts-chrome-dark: rgba(16,45,35,.96);
  --ts-chrome-light: rgba(246,243,235,.98);
}
body.ts-site { font-size: 1rem; font-optical-sizing: auto; }
body.ts-site :is(.tasiri-body,.ts-dek,.ts-reading,.ts-latest-intro,.ts-latest-excerpt) { letter-spacing: 0; }
body.ts-site .ts-home-hero > .tasiri-body { font-size: 1rem; }
.ts-menu-message { font-size: .8125rem; letter-spacing: .005em; }
.ts-site-menu > summary { font-size: .75rem; letter-spacing: .035em; }
.ts-menu-search { font-size: .75rem; letter-spacing: .015em; }
.ts-menu-time > span { font-size: .6875rem; letter-spacing: .025em; }
body.ts-site .ts-home-hero > .tasiri-kicker { font-size: .6875rem; }
body.ts-site .ts-hero-bottom .ts-hero-caption { font-size: .6875rem; letter-spacing: .045em; }
body.ts-site .ts-hero-links .tasiri-link { font-size: .75rem; letter-spacing: .025em; }
body.ts-site .ts-work-stack {
  --stack-row: 7rem; --stack-gap: .75rem; --stack-bar: 3.25rem; --stack-space: .875rem;
}
body.ts-site .ts-stack-card img { height: 5.125rem; }
.ts-stack-card p > span:first-child { font-size: .6875rem; letter-spacing: .035em; }
.ts-stack-card p > span:last-child { font-size: .875rem; letter-spacing: 0; }
.ts-latest-date { font-size: .75rem; letter-spacing: .025em; }
body.ts-site .ts-home-sky .ts-gallery-caption .tasiri-kicker { font-size: .6875rem; }
body.ts-site .ts-home-sky .tasiri-small,
body.ts-site .ts-home-page > .tasiri-section:last-child .tasiri-small { font-size: .75rem; }
.ts-footer-links :is(nav,.ts-socials) a { font-size: .75rem; letter-spacing: .015em; }
body.ts-site .ts-flagship-footer .ts-footer-bottom { font-size: .75rem; }

/* Only floating controls receive a material; photographs and reading surfaces stay crisp. */
body.ts-site .ts-header .ts-logo,
body.ts-site .ts-site-menu {
  background: var(--ts-chrome-dark);
  -webkit-backdrop-filter: blur(16px) saturate(125%);
  backdrop-filter: blur(16px) saturate(125%);
  box-shadow: 0 4px 18px #071a151a;
}
body.ts-site .ts-site-menu[open] {
  z-index: 3;
  background: var(--ts-chrome-light);
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  backdrop-filter: blur(22px) saturate(120%);
  box-shadow: 0 20px 60px #071a1538;
}
body.ts-site .ts-chat-link {
  background: var(--ts-chrome-light);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

/* The two-tone ring remains visible over forest, orange, cream and photography. */
body.ts-site :is(a,button,input,select,textarea,summary):focus-visible,
body.ts-site .ts-stack-card:focus-visible,
body.ts-site .ts-stack-label > a:focus-visible,
body.ts-site .ts-stack-toggle:focus-visible {
  outline: 3px solid var(--ts-forest);
  outline-offset: 4px;
  box-shadow: 0 0 0 4px var(--ts-cream) !important;
}
body.ts-site :is(.ts-chat-link,.tasiri-button,.ts-button,.ts-search-form button,.ts-back-top,.ts-stack-toggle),
.ts-site-menu > summary,
.ts-menu-panel a { touch-action: manipulation; }
body.ts-site :is(.ts-chat-link,.tasiri-button,.ts-button,.ts-search-form button,.ts-back-top,.ts-stack-toggle):active,
.ts-site-menu > summary:active,
.ts-menu-panel a:active,
.ts-stack-label > a:active { transition-duration: 0s; }
.ts-site-menu > summary:active { background-color: #ffffff12; }
.ts-site-menu[open] > summary:active,
.ts-menu-panel :is(nav a,.ts-menu-search):active { background-color: #164b381a; }
body.ts-site .ts-stack-toggle:active { background-color: #ffffff38; }
body.ts-site .ts-stack-open .ts-stack-toggle:active { background-color: #17251f26; }
.ts-stack-label > a:active { background-color: #ffffff12; }
body.ts-site .ts-search-tabs a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
body.ts-site .ts-socials a { min-width: 44px; }
body.ts-site .ts-pagination :is(a,span) { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }

/* JavaScript springs own position; CSS continues to supply color and depth feedback. */
body.ts-site .ts-stack-physics .ts-stack-card { transition: background-color 180ms, box-shadow 180ms; }
body.ts-site .ts-stack-physics.ts-stack-open .ts-stack-card:hover { --card-x: 0px; }

@media (max-width:800px) {
  body.ts-site .ts-site-menu:not([open]) { position: static; transform: none; width: auto; flex: 0 0 auto; }
}
@media (max-width:600px) {
  body.ts-site .ts-header .ts-logo { padding: 8px 6px; background: var(--ts-chrome-dark); }
  .ts-site-menu > summary { font-size: .6875rem; }
  body.ts-site .ts-header .ts-chat-link { font-size: .625rem; }
  body.ts-site .ts-home-hero > .tasiri-body { font-size: .9375rem; }
  body.ts-site .ts-work-stack { --stack-row: 8.25rem; }
  body.ts-site .ts-stack-card img { height: 6.375rem; }
}
@media (max-width:360px) {
  .ts-site-menu > summary { font-size: .625rem; }
  body.ts-site .ts-header .ts-chat-link { font-size: .5625rem; }
}
@media (prefers-reduced-transparency:reduce) {
  body.ts-site .ts-header .ts-logo,
  body.ts-site .ts-site-menu { background: var(--ts-forest); }
  body.ts-site .ts-site-menu[open],
  body.ts-site .ts-chat-link { background: var(--ts-cream); }
  body.ts-site :is(.ts-header .ts-logo,.ts-site-menu,.ts-chat-link) {
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  .ts-header:has(.ts-site-menu[open])::before { background: transparent; }
}
@media (prefers-contrast:more) {
  body.ts-site .ts-header .ts-logo,
  body.ts-site .ts-site-menu { background: var(--ts-forest); border: 1px solid var(--ts-cream); }
  body.ts-site .ts-site-menu[open],
  body.ts-site .ts-chat-link { background: var(--ts-cream); border: 1px solid var(--ts-forest); }
  body.ts-site :is(.ts-header .ts-logo,.ts-site-menu,.ts-chat-link) {
    -webkit-backdrop-filter: none; backdrop-filter: none;
  }
  .ts-menu-message { opacity: 1; }
  body.ts-site .ts-stack-card { border-color: var(--ts-forest); }
  body.ts-site .ts-latest-excerpt { color: var(--ts-ink); }
}
@media (prefers-reduced-motion:reduce) {
  body.ts-site *,body.ts-site *::before,body.ts-site *::after {
    animation: none !important; transition: none !important; scroll-behavior: auto !important;
  }
  body.ts-site :is(.ts-chat-link,.ts-chat-arrow,.ts-back-top,.ts-service-card,.ts-card-support,.ts-card,.ts-gallery-caption):is(:hover,:active,:focus-visible,:focus-within),
  body.ts-site .ts-gallery-card:is(:hover,:focus-visible)::after,
  body.ts-site :is(.ts-motion-media,.ts-card-media) > img,
  body.ts-site .ts-gallery-card > img.ts-gallery-photo,
  body.ts-site .ts-gallery-card:is(:hover,:focus-within) .ts-gallery-caption,
  .ts-menu-panel nav a:is(:hover,:focus-visible) > span:first-child { transform: none !important; }
  body.ts-site .ts-stack-open .ts-stack-card:hover { --card-x: 0px; }
  body.ts-site .ts-home-sky .ts-gallery-card { transform: rotate(var(--photo-angle,-6deg)); }
}
@media (forced-colors:active) {
  body.ts-site :is(a,button,input,select,textarea,summary):focus-visible,
  body.ts-site .ts-stack-card:focus-visible,
  body.ts-site .ts-stack-label > a:focus-visible,
  body.ts-site .ts-stack-toggle:focus-visible { outline-color: Highlight; box-shadow: none !important; }
}
