@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Playfair+Display:ital,wght@0,500;1,500&family=Space+Grotesk:wght@400;500;600;700&display=swap');
@font-face { font-family: 'Tobias'; src: url('assets/tobias-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }

:root { --wine: #4f0c27; --cream: #f9f6f2; --ink: #21151a; --line: rgba(79,12,39,.22); --muted: #866d77; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #f9f6f2; color: var(--wine); font-family: 'Tobias', Georgia, serif; transition: background-color 1s ease, color 1s ease; }
body.is-inverted { background: var(--wine); }
body.is-third-active { background: var(--wine); color: var(--cream); }
body.is-third-active.is-inverted { background: var(--cream); color: var(--wine); }
.standalone-page { min-height: 100svh; overflow-x: hidden; }
.standalone-page .demo { margin: 0; width: 100vw; height: 100svh; min-height: 0; }
.scroll-header { position: fixed; z-index: 20; inset: 0 0 auto; height: 76px; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.scroll-header__logo { display: block; width: 116px; opacity: 0; pointer-events: none; transform: translateY(-12px) scale(.72); transform-origin: center top; transition: opacity .4s ease, transform .55s cubic-bezier(.22,1,.36,1), filter 1s ease; }
.scroll-header__logo img { display: block; width: 100%; height: auto; }
.scroll-header.is-scrolled .scroll-header__logo { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
body.is-inverted:not(.is-third-active) .scroll-header__logo,
body.is-third-active:not(.is-inverted) .scroll-header__logo { filter: brightness(0) saturate(100%) invert(97%) sepia(8%) saturate(155%) hue-rotate(337deg) brightness(104%) contrast(98%); }
.central-logo { position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.animated-logo { display: flex; align-items: center; width: min(87vw, 1140px); height: auto; }
.logo-part { display: block; height: auto; overflow: visible; fill: var(--wine); }
body.is-inverted .logo-part-left, body.is-inverted .logo-part-right { filter: brightness(0) saturate(100%) invert(97%) sepia(8%) saturate(155%) hue-rotate(337deg) brightness(104%) contrast(98%); }
.logo-part-left { width: 41.6%; opacity: .35; clip-path: inset(0 0 0 100%); animation: word-left .6s cubic-bezier(.65,0,.35,1) 1.2s forwards; }
.logo-part-center { width: 15.9%; margin-left: .48%; opacity: 1; transform: none; }
.mark-pieces { overflow: visible; }
.mark-piece { fill: var(--wine); clip-path: inset(50% 50% 50% 50%); animation: mark-piece-grow .85s cubic-bezier(.3,.075,0,1) .15s forwards; }
body.is-inverted .mark-piece { fill: var(--cream); }
.logo-part-right { width: 40.4%; margin-left: -1.2%; opacity: .35; transform: scale(1.08); transform-origin: left center; clip-path: inset(0 100% 0 0); animation: word-right .6s cubic-bezier(.65,0,.35,1) 1.2s forwards; }
@keyframes mark-piece-grow { from { clip-path: inset(50% 50% 50% 50%); } to { clip-path: inset(0 0 0 0); } }
@keyframes word-left { from { opacity: .35; clip-path: inset(0 0 0 100%); } to { opacity: 1; clip-path: inset(0 0 0 0); } }
@keyframes word-right { from { opacity: .35; clip-path: inset(0 100% 0 0); } to { opacity: 1; clip-path: inset(0 0 0 0); } }
.sequence-page { min-height: 100svh; overflow: hidden; background: var(--cream); }
.brand-sequence { min-height: 100svh; position: relative; display: grid; place-items: center; overflow: hidden; }
.sequence-mark, .sequence-logo { position: absolute; z-index: 3; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.sequence-mark { width: clamp(74px, 11vw, 140px); opacity: 0; }
.sequence-mark img { display: block; width: 100%; }
.sequence-logo { width: min(58vw, 760px); opacity: 0; transform: translate(-50%, -50%) scale(.86); }
.sequence-logo img { display: block; width: 100%; }
.sequence-grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: clamp(28px, 6vw, 84px); align-content: center; gap: clamp(13px, 1.6vw, 25px); padding: clamp(26px, 4vw, 70px); opacity: 0; }
.sequence-tile { position: relative; overflow: hidden; background: #836174; opacity: 0; transform: scale(.08); transition: opacity .6s cubic-bezier(.3,.075,0,1), transform .9s cubic-bezier(.3,.075,0,1), background-color 1.2s ease, filter 1.2s ease; }
.sequence-tile::after { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(249,246,242,.55), transparent 40%, rgba(0,0,0,.25)); }
.sequence-tile:nth-child(3n) { background: #a17857; }
.sequence-tile:nth-child(4n) { background: #34535a; }
.sequence-tile:nth-child(5n) { background: #8d3d53; }
.sequence-grid.is-building { opacity: 1; }
.sequence-grid.is-building .sequence-tile { opacity: 1; transform: scale(1); }
.sequence-grid.is-solid .sequence-tile { background: var(--wine); filter: none; transform: scale(.82); }
.sequence-grid.is-solid { gap: clamp(10px, 1.25vw, 20px); }
.sequence-mark.is-visible { animation: mark-in .8s cubic-bezier(.3,.075,0,1) forwards; }
.sequence-logo.is-visible { animation: logo-in 1.2s cubic-bezier(.3,.075,0,1) forwards; }
.sequence-replay { position: absolute; z-index: 4; right: 28px; bottom: 24px; color: var(--wine); background: transparent; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 3px; font: 11px 'DM Mono', monospace; letter-spacing: .08em; text-transform: uppercase; opacity: 0; cursor: pointer; transition: opacity .3s ease; }
.sequence-replay.is-visible { opacity: .7; }
@keyframes mark-in { from { opacity: 0; transform: translate(-50%, -50%) scale(.45); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes logo-in { from { opacity: 0; transform: translate(-50%, -50%) scale(.86); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@media (max-width: 700px) { .sequence-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); grid-auto-rows: calc((100vw - 128px) / 8); gap: 12px; padding: 22px; } .sequence-logo { width: 78vw; } .sequence-replay { right: 18px; bottom: 18px; } .animated-logo { width: 92vw; } .scroll-header { height: 62px; } .scroll-header__logo { width: 98px; } .third-method { gap: 12px; font-size: clamp(1.7rem, 8vw, 3.5rem); } .third-copy { gap: 24px; } }
@media (max-width: 700px) {
  .gradient-wave-section { padding: 8vw 4vw; }
  .gradient-wave-text { width: 92vw; font-size: clamp(1.75rem, 7.8vw, 3rem); line-height: .96; }
  .third-section { padding: 8vw 4vw; }
  .third-copy { width: 100%; min-width: 0; }
  .third-method { gap: 0; font-size: clamp(1.45rem, 7.5vw, 2.5rem); }
  .third-method i { margin-left: 6px; margin-right: 6px; }
  .third-method .method-square { margin-left: 6px; margin-right: 6px; }
  .third-email { max-width: none; font-size: clamp(1rem, 3.5vw, 2.5rem); }
}
a { color: inherit; }
.site-header, .site-footer { display: flex; align-items: center; justify-content: space-between; padding: 26px 4vw; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.site-header { border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; text-decoration: none; letter-spacing: .16em; }
.brand-mark, .mini-mark { display: inline-block; position: relative; width: 18px; height: 18px; }
.brand-mark::before, .brand-mark::after, .mini-mark::before, .mini-mark::after { content: ''; position: absolute; background: var(--wine); }
.brand-mark::before, .mini-mark::before { left: 0; top: 0; width: 8px; height: 18px; }
.brand-mark::after, .mini-mark::after { right: 0; bottom: 0; width: 8px; height: 18px; }
.brand-mark i, .mini-mark i { position: absolute; background: var(--cream); width: 10px; height: 10px; left: 4px; top: 4px; z-index: 1; }
.brand-mark b { display: none; }
.email-link { text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.intro { padding: 9vw 8vw 5vw; max-width: 950px; }
.eyebrow, .demo-label, .grid-notes, .collage-hint, .motion-hint { font: 11px 'DM Mono', monospace; letter-spacing: .08em; text-transform: uppercase; }
.eyebrow { margin: 0 0 26px; color: var(--muted); }
h1 { margin: 0; font-size: clamp(3.1rem, 8vw, 8.8rem); line-height: .9; letter-spacing: -.075em; font-weight: 500; }
em { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; }
.intro-copy { max-width: 370px; margin: 35px 0 0 32%; font-size: 15px; line-height: 1.5; color: #765966; }
.concept-nav { padding: 0 8vw 28px; display: flex; flex-wrap: wrap; gap: 10px; border-bottom: 1px solid var(--line); }
.concept-button { color: var(--wine); background: transparent; border: 1px solid var(--line); padding: 12px 16px; cursor: pointer; font: 12px 'DM Mono', monospace; text-transform: uppercase; letter-spacing: .05em; transition: .25s ease; }
.concept-button span { color: var(--muted); margin-right: 14px; }
.concept-button:hover, .concept-button.is-active { color: var(--cream); background: var(--wine); border-color: var(--wine); }
.demo-frame { margin: 34px 4vw 0; position: relative; }
.demo-label { display: flex; justify-content: space-between; color: var(--muted); padding: 0 0 12px; border-bottom: 1px solid var(--line); }
.demo { height: min(72vw, 700px); min-height: 520px; margin-top: 14px; position: relative; overflow: hidden; display: none; }
.demo.is-visible { display: block; }
.demo-grid { background: transparent; border: 0; }
body.is-inverted .demo-grid { background: var(--wine); }
.dot-canvas { position: fixed; inset: 0; z-index: 0; }
.dot-canvas canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.gradient-wave-section { position: relative; z-index: 1; width: 100vw; min-height: 100svh; display: grid; place-items: center; padding: 8vw; background: transparent; color: var(--wine); }
.gradient-wave-text { width: min(1200px, 88vw); max-width: none; margin: 0; font-size: clamp(2.8rem, 4.45vw, 80px); line-height: .92; letter-spacing: -.02em; font-weight: 400; text-align: center; white-space: pre-line; }
.gradient-wave-text .wave-line { display: block; white-space: nowrap; }
.gradient-wave-text .wave-char { display: inline-block; }
body.is-inverted .gradient-wave-section { color: var(--cream); }
body.is-third-active .gradient-wave-section { color: var(--cream); }
.third-section { position: relative; z-index: 1; width: 100vw; min-height: 100svh; display: grid; place-items: center; padding: 8vw; background: transparent; color: var(--cream); transition: color 1s ease; }
.is-third-active.is-inverted .third-section { color: var(--wine); }
.third-copy { display: grid; justify-items: center; gap: 34px; text-align: center; }
.third-method { display: flex; align-items: center; justify-content: center; gap: 0; font-size: clamp(2.5rem, 5.5vw, 6.2rem); line-height: .95; letter-spacing: -.02em; white-space: nowrap; }
.third-method i { width: .11em; height: .11em; flex: 0 0 auto; align-self: flex-end; margin: 0 8px; transform: translateY(calc(-100% + 2px)); background: #a7bfce; display: block; }
.third-email { color: inherit; font-size: clamp(2.5rem, 4vw, 4rem); text-decoration: none; white-space: nowrap; }
.grid-lockup, .motion-copy { position: absolute; left: 7%; top: 22%; z-index: 2; }
.grid-lockup p, .motion-copy p, .collage-copy p { font-size: clamp(2rem, 5vw, 5.2rem); line-height: .9; letter-spacing: -.06em; margin: 28px 0 0; }
.grid-cards { position: absolute; right: 7%; bottom: 9%; width: 47%; height: 53%; }
.placeholder-card, .collage-card, .motion-tile { color: var(--cream); background: var(--wine); overflow: hidden; }
.placeholder-card { position: absolute; padding: 14px; font: 11px 'DM Mono', monospace; text-transform: uppercase; box-shadow: 8px 8px 0 rgba(79,12,39,.08); }
.placeholder-card::before, .collage-card::before, .motion-tile::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(249,246,242,.5), transparent 35%, rgba(0,0,0,.3)), var(--tone, #84415b); mix-blend-mode: screen; opacity: .7; }
.placeholder-card span, .collage-card span, .motion-tile span { position: relative; z-index: 1; }
.card-a { width: 42%; height: 60%; left: 3%; top: 4%; --tone: #8c5470; transform: rotate(-8deg); }
.card-b { width: 53%; height: 75%; right: 3%; top: 0; --tone: #a07848; transform: rotate(5deg); }
.card-c { width: 42%; height: 58%; left: 25%; bottom: 0; --tone: #314b48; transform: rotate(8deg); }
.grid-notes { position: absolute; left: 7%; right: 7%; bottom: 8%; display: flex; justify-content: space-between; color: var(--muted); }
.demo-collage { background: var(--wine); color: var(--cream); }
.collage-copy { position: absolute; left: 8%; top: 13%; z-index: 3; }
.collage-copy .mini-mark::before, .collage-copy .mini-mark::after, .motion-copy .mini-mark::before, .motion-copy .mini-mark::after { background: var(--cream); }
.collage-copy .mini-mark i, .motion-copy .mini-mark i { background: var(--wine); }
.collage-list { position: absolute; inset: 0; }
.collage-card { position: absolute; padding: 14px; display: flex; align-items: flex-end; font: 11px 'DM Mono', monospace; text-transform: uppercase; transition: transform .65s cubic-bezier(.3,.075,0,1), filter .65s, opacity .65s; }
.collage-card:hover { z-index: 5; transform: scale(1.12) translateY(-3%); filter: saturate(1.2); }
.collage-list:has(.collage-card:hover) .collage-card:not(:hover) { transform: scale(.9); opacity: .55; filter: blur(2px); }
.collage-1 { width: 23%; height: 42%; left: 16%; top: 39%; --tone: #bd836b; transform: rotate(-9deg); }
.collage-2 { width: 22%; height: 31%; left: 38%; top: 22%; --tone: #7b4560; transform: rotate(5deg); }
.collage-3 { width: 26%; height: 44%; left: 51%; top: 39%; --tone: #34535a; transform: rotate(-4deg); }
.collage-4 { width: 18%; height: 27%; left: 67%; top: 16%; --tone: #9b8358; transform: rotate(11deg); }
.collage-5 { width: 19%; height: 30%; left: 72%; top: 56%; --tone: #8d3d53; transform: rotate(-8deg); }
.collage-6 { width: 18%; height: 29%; left: 27%; top: 14%; --tone: #56716b; transform: rotate(8deg); }
.collage-hint { position: absolute; bottom: 8%; left: 8%; color: rgba(249,246,242,.6); }
.demo-motion { background: var(--cream); border: 1px solid var(--line); }
.motion-copy { top: 12%; left: 7%; z-index: 3; }
.tile-stage { position: absolute; inset: 0; display: grid; place-items: center; perspective: 1200px; }
.tile-ring { position: relative; width: min(40vw, 360px); height: min(40vw, 270px); transform-style: preserve-3d; transition: transform .5s ease-out; animation: orbit 18s linear infinite; }
.motion-tile { position: absolute; width: 46%; height: 48%; left: 27%; top: 26%; padding: 12px; font: 11px 'DM Mono', monospace; text-transform: uppercase; backface-visibility: hidden; box-shadow: 0 20px 35px rgba(79,12,39,.14); }
.tile-1 { --tone: #8c5470; transform: rotateY(0deg) translateZ(210px); }
.tile-2 { --tone: #a07848; transform: rotateY(60deg) translateZ(210px); }
.tile-3 { --tone: #314b48; transform: rotateY(120deg) translateZ(210px); }
.tile-4 { --tone: #8d3d53; transform: rotateY(180deg) translateZ(210px); }
.tile-5 { --tone: #56716b; transform: rotateY(240deg) translateZ(210px); }
.tile-6 { --tone: #6b4865; transform: rotateY(300deg) translateZ(210px); }
.tile-stage:hover .tile-ring { animation-play-state: paused; }
@keyframes orbit { from { transform: rotateY(0deg) rotateX(7deg); } to { transform: rotateY(360deg) rotateX(7deg); } }
.motion-hint { position: absolute; bottom: 8%; right: 7%; color: var(--muted); }
.site-footer { border-top: 1px solid var(--line); margin-top: 40px; color: var(--muted); }
.site-footer a { color: var(--wine); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
@media (max-width: 700px) { .site-header, .site-footer { padding: 20px 5vw; } .site-header .email-link { display: none; } .intro { padding: 18vw 8vw 10vw; } .intro-copy { margin: 30px 0 0; } .concept-nav { padding: 0 8vw 20px; flex-direction: column; } .concept-button { width: 100%; text-align: left; } .demo { min-height: 620px; } .grid-cards { width: 67%; height: 40%; right: 5%; bottom: 17%; } .grid-lockup, .motion-copy { left: 7%; top: 12%; } .grid-notes { bottom: 7%; flex-direction: column; gap: 7px; } .collage-card { width: 31%; height: 27%; } .collage-1 { left: 7%; top: 39%; } .collage-2 { left: 35%; top: 30%; } .collage-3 { left: 63%; top: 39%; } .collage-4 { left: 17%; top: 59%; } .collage-5 { left: 49%; top: 61%; } .collage-6 { left: 38%; top: 17%; } .tile-ring { width: 250px; height: 190px; } .motion-tile { width: 50%; left: 25%; } .tile-1 { transform: rotateY(0deg) translateZ(145px); } .tile-2 { transform: rotateY(60deg) translateZ(145px); } .tile-3 { transform: rotateY(120deg) translateZ(145px); } .tile-4 { transform: rotateY(180deg) translateZ(145px); } .tile-5 { transform: rotateY(240deg) translateZ(145px); } .tile-6 { transform: rotateY(300deg) translateZ(145px); } .motion-hint { left: 7%; right: auto; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
/*
Theme Name: SoulTribe - Review.Plan.Execute
Theme URI: https://soultribeagency.com
Author: SoulTribe
Description: A lightweight native block theme for the SoulTribe interactive landing page.
Version: 1.0.0
Text Domain: soultribe
*/

/* WordPress editor and theme defaults */
body { margin: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
.wp-site-blocks { padding: 0; }
.third-method, .third-email { margin: 0; }
.third-email a { color: inherit; text-decoration: none; }
.third-method .method-square { display: inline-block; width: .11em; height: .11em; margin: 0 8px; transform: translateY(calc(-100% + 2px)); background: #a7bfce; font-size: 0; vertical-align: baseline; }
