/* Tidal Sleep. Colours and fonts come from theme.json; fallbacks keep a static preview working. */
:root {
	--ts-midnight: var(--wp--preset--color--midnight, #060D19);
	--ts-abyss: var(--wp--preset--color--abyss, #0B1F2E);
	--ts-harbour: var(--wp--preset--color--harbour, #12304A);
	--ts-line: var(--wp--preset--color--line, #1F4A6B);
	--ts-shallows: var(--wp--preset--color--shallows, #4FD1C5);
	--ts-moon: var(--wp--preset--color--moon, #C9BCFF);
	--ts-dusk: var(--wp--preset--color--dusk, #F3A683);
	--ts-sand: var(--wp--preset--color--sand, #F2D6A2);
	--ts-text: var(--wp--preset--color--text, #E8F1F7);
	--ts-muted: var(--wp--preset--color--muted, #A6B9CC);
	--ts-ember: #E9978C;
	--ts-on-moon: #17113A;
	--ts-display: var(--wp--preset--font-family--sora, Sora, system-ui, sans-serif);
	--ts-body: var(--wp--preset--font-family--inter, Inter, system-ui, sans-serif);
	--ts-serif: var(--wp--preset--font-family--fraunces, Fraunces, Georgia, serif);
	--ts-gutter: clamp(1rem, 4vw, 2.5rem);
	--ts-r: 24px;
	--ts-glass: rgba(18, 30, 58, 0.55);
	--ts-stroke: rgba(201, 188, 255, 0.16);
	--ts-sky-now: #1A1838;
}

html { scroll-behavior: smooth; scroll-padding-top: 88px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body.ts-site { background: var(--ts-midnight); color: var(--ts-text); font-family: var(--ts-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
.ts-site .wp-site-blocks { padding: 0; }
.ts-site main { margin-top: 0; position: relative; z-index: 1; overflow-x: clip; }
.ts-site h1, .ts-site h2, .ts-site h3 { font-family: var(--ts-display); letter-spacing: -0.025em; line-height: 1.06; margin: 0; font-weight: 600; }
.ts-site h2 { font-size: clamp(1.9rem, 4.4vw, 3.3rem); }
.ts-site h3 { font-size: 1.25rem; line-height: 1.25; }
.ts-site p { margin: 0; }
.ts-site a { color: var(--ts-moon); }
.ts-serif { font-family: var(--ts-serif); font-style: italic; font-weight: 400; letter-spacing: -0.01em; color: var(--ts-moon); }
:focus-visible { outline: 3px solid var(--ts-moon); outline-offset: 3px; border-radius: 6px; }
.ts-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.ts-wrap { max-width: 1240px; margin: 0 auto; padding: 0 var(--ts-gutter); position: relative; }
.ts-wrap--narrow { max-width: 820px; }
.ts-section { padding: clamp(4.5rem, 10vw, 8.5rem) 0; position: relative; }
.ts-center { text-align: center; margin-left: auto; margin-right: auto; }
.ts-muted { color: var(--ts-muted); }
.ts-small { font-size: .875rem; line-height: 1.55; }
.ts-lead { font-size: clamp(1.05rem, 1.55vw, 1.22rem); color: var(--ts-muted); max-width: 38rem; line-height: 1.65; margin-top: 1.1rem; }
.ts-center.ts-lead { max-width: 40rem; }
.ts-eyebrow { font-family: var(--ts-display); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ts-muted); margin-bottom: .9rem; }

.ts-skip { position: absolute; left: -999px; top: 0; z-index: 1000; background: var(--ts-moon); color: var(--ts-on-moon); padding: .75rem 1.25rem; font-weight: 600; text-decoration: none; }
.ts-skip:focus { left: 0; }

/* The sky behind everything. Its colour follows the section in view. */
.ts-sky { position: fixed; inset: 0; z-index: 0; background: var(--ts-sky-now); transition: background-color 1.4s ease; pointer-events: none; }
.ts-sky::after { content: ""; position: absolute; inset: 0; background: radial-gradient(1200px 600px at 80% -10%, rgba(201,188,255,.10), transparent 60%), radial-gradient(900px 500px at -10% 110%, rgba(79,209,197,.07), transparent 60%); }
body.ts-site:not(.home) { background: linear-gradient(180deg, #0C1530 0%, var(--ts-midnight) 520px); }

/* Buttons and links */
.ts-btn { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--ts-display); font-weight: 600; font-size: .98rem; padding: .95rem 1.45rem; border-radius: 999px; border: 1px solid transparent; background: var(--ts-moon); color: var(--ts-on-moon) !important; text-decoration: none; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; box-shadow: 0 10px 40px -12px rgba(201,188,255,.6); }
.ts-btn:hover { transform: translateY(-2px); box-shadow: 0 16px 50px -12px rgba(201,188,255,.75); }
.ts-btn--ghost { background: transparent; color: var(--ts-text) !important; border-color: var(--ts-stroke); box-shadow: none; }
.ts-btn--ghost:hover { background: rgba(201,188,255,.08); box-shadow: none; }
.ts-btn--small { padding: .55rem 1rem; font-size: .88rem; box-shadow: none; }
.ts-btn__wave { width: 18px; height: 14px; background: linear-gradient(currentColor, currentColor) 0 50%/3px 40% no-repeat, linear-gradient(currentColor, currentColor) 5px 50%/3px 90% no-repeat, linear-gradient(currentColor, currentColor) 10px 50%/3px 60% no-repeat, linear-gradient(currentColor, currentColor) 15px 50%/3px 30% no-repeat; opacity: .85; }
.is-playing .ts-btn__wave { animation: ts-eq 1.2s ease-in-out infinite alternate; }
@keyframes ts-eq { to { background-size: 3px 80%, 3px 40%, 3px 95%, 3px 60%; } }
.ts-link { display: inline-block; margin-top: 1.6rem; font-family: var(--ts-display); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--ts-stroke); padding-bottom: .2rem; }
.ts-link::after { content: " \2192"; }
.ts-link:hover { border-color: var(--ts-moon); }

/* Header */
.ts-header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; transition: background .3s ease, backdrop-filter .3s ease, border-color .3s ease; border-bottom: 1px solid transparent; }
.ts-header.is-stuck { background: rgba(6, 13, 25, .72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom-color: var(--ts-stroke); }
.ts-header__inner { display: flex; align-items: center; justify-content: space-between; height: 72px; }
.ts-brand { display: inline-flex; align-items: center; gap: .65rem; font-family: var(--ts-display); font-size: 1.12rem; color: var(--ts-text) !important; text-decoration: none; letter-spacing: -.01em; }
.ts-brand b { font-weight: 700; color: var(--ts-moon); }
.ts-nav { display: flex; align-items: center; gap: 1.6rem; }
.ts-nav a:not(.ts-btn) { color: var(--ts-muted); text-decoration: none; font-size: .95rem; transition: color .2s; }
.ts-nav a:not(.ts-btn):hover { color: var(--ts-text); }
.ts-navtoggle { display: none; background: none; border: 0; width: 44px; height: 44px; padding: 10px; cursor: pointer; }
.ts-navtoggle i { display: block; height: 2px; background: var(--ts-text); margin: 6px 0; border-radius: 2px; transition: transform .25s; }
.ts-navtoggle[aria-expanded="true"] i:first-of-type { transform: translateY(4px) rotate(45deg); }
.ts-navtoggle[aria-expanded="true"] i:last-of-type { transform: translateY(-4px) rotate(-45deg); }
@media (max-width: 860px) {
	.ts-navtoggle { display: block; }
	.ts-nav { position: fixed; top: 72px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; padding: .5rem var(--ts-gutter) 1.5rem; background: rgba(6, 13, 25, .97); border-bottom: 1px solid var(--ts-stroke); transform: translateY(-120%); transition: transform .3s ease; }
	.ts-nav.is-open { transform: none; }
	.ts-nav a:not(.ts-btn) { padding: .95rem 0; border-bottom: 1px solid var(--ts-stroke); font-size: 1.05rem; }
	.ts-nav .ts-btn { margin-top: 1rem; justify-content: center; }
}

/* Night clock rail (home only) */
.ts-clock { position: fixed; right: clamp(.75rem, 2vw, 1.75rem); top: 50%; transform: translateY(-50%); z-index: 40; display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; opacity: 0; transition: opacity .5s ease; pointer-events: none; }
.ts-clock.is-on { opacity: 1; }
.ts-clock__time { font-family: var(--ts-display); font-variant-numeric: tabular-nums; font-size: 1.05rem; font-weight: 600; letter-spacing: .02em; }
.ts-clock__tide { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ts-moon); }
.ts-clock__rail { width: 2px; height: 160px; background: var(--ts-stroke); border-radius: 2px; position: relative; margin-top: .5rem; overflow: hidden; }
.ts-clock__rail i { position: absolute; left: 0; right: 0; top: 0; height: 0; background: linear-gradient(var(--ts-dusk), var(--ts-moon), var(--ts-shallows)); }
@media (max-width: 1100px) {
	.ts-clock { top: auto; bottom: 1rem; right: 1rem; transform: none; flex-direction: row; align-items: center; gap: .6rem; background: rgba(6,13,25,.78); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid var(--ts-stroke); padding: .45rem .85rem; border-radius: 999px; }
	.ts-clock__rail { display: none; }
	.ts-clock__time { font-size: .9rem; }
	.ts-clock__tide { font-size: .62rem; }
}

/* Hero */
.ts-hero { min-height: 100svh; display: flex; align-items: center; position: relative; overflow: hidden; padding: 120px 0 140px; }
.ts-hero__canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.ts-hero__inner { width: 100%; }
.ts-hero__title { font-size: clamp(2.9rem, 8.4vw, 6.6rem); max-width: 12ch; margin-top: 1.4rem !important; text-shadow: 0 2px 40px rgba(6,13,25,.5); }
.ts-hero .ts-lead { color: #CBD7E4; max-width: 34rem; text-shadow: 0 1px 20px rgba(6,13,25,.6); }
.ts-hero__cta { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2.2rem; }
.ts-hero__note { margin-top: 1rem; max-width: 30rem; }
.ts-kicker { display: inline-flex; align-items: center; gap: .6rem; font-size: .86rem; color: var(--ts-text); padding: .45rem .95rem; border-radius: 999px; background: rgba(6,13,25,.45); border: 1px solid var(--ts-stroke); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.ts-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ts-moon); box-shadow: 0 0 0 0 rgba(201,188,255,.7); animation: ts-pulse 3.6s ease-out infinite; }
@keyframes ts-pulse { 70% { box-shadow: 0 0 0 10px rgba(201,188,255,0); } 100% { box-shadow: 0 0 0 0 rgba(201,188,255,0); } }
.ts-scrollcue { position: absolute; left: 50%; bottom: 2rem; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: .6rem; color: var(--ts-muted) !important; text-decoration: none; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.ts-scrollcue i { width: 1px; height: 40px; background: linear-gradient(var(--ts-moon), transparent); animation: ts-drop 2.6s ease-in-out infinite; transform-origin: top; }
@keyframes ts-drop { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ts-dot, .ts-scrollcue i, .is-playing .ts-btn__wave { animation: none; } }

/* Five tides index */
.ts-tides { list-style: none; padding: 0; margin: 3rem 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border-top: 1px solid var(--ts-stroke); counter-reset: tide; }
.ts-tides li { border-right: 1px solid var(--ts-stroke); }
.ts-tides li:last-child { border-right: 0; }
.ts-tides a { display: flex; flex-direction: column; gap: .3rem; padding: 1.5rem 1.2rem 1.4rem; text-decoration: none; color: var(--ts-text) !important; position: relative; transition: background .25s; }
.ts-tides a::before { counter-increment: tide; content: "0" counter(tide); font-family: var(--ts-display); font-size: .72rem; color: var(--ts-moon); letter-spacing: .1em; }
.ts-tides a:hover { background: rgba(201,188,255,.05); }
.ts-tides b { font-family: var(--ts-display); font-size: 1.15rem; font-weight: 600; }
.ts-tides span { color: var(--ts-muted); font-size: .92rem; }
.ts-tides time { font-family: var(--ts-display); font-variant-numeric: tabular-nums; color: var(--ts-muted); font-size: .82rem; margin-top: .6rem; }
@media (max-width: 860px) { .ts-tides { grid-template-columns: 1fr; } .ts-tides li { border-right: 0; border-bottom: 1px solid var(--ts-stroke); } .ts-tides a { flex-direction: row; align-items: baseline; gap: .9rem; padding: 1.05rem .2rem; } .ts-tides time { margin: 0 0 0 auto; } }

/* Chapters */
.ts-chapter__head { display: grid; grid-template-columns: auto 1fr; gap: clamp(1rem, 4vw, 3.5rem); align-items: start; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.ts-chapter__head--stack { display: block; margin-bottom: 1.2rem; }
.ts-chapter__time { display: block; font-family: var(--ts-display); font-weight: 300; font-size: clamp(3rem, 7vw, 5.6rem); line-height: .9; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1px rgba(201,188,255,.55); font-variant-numeric: tabular-nums; }
.ts-chapter__head--stack .ts-chapter__time { margin-bottom: 1.2rem; }
@media (max-width: 760px) { .ts-chapter__head { grid-template-columns: 1fr; } }

/* Sessions */
.ts-sessions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--ts-stroke); border: 1px solid var(--ts-stroke); border-radius: var(--ts-r); overflow: hidden; }
.ts-session { background: rgba(9, 16, 36, .82); padding: 1.8rem 1.6rem 1.6rem; display: flex; flex-direction: column; gap: .7rem; transition: background .3s; }
.ts-session:hover { background: rgba(16, 26, 56, .92); }
.ts-session p { color: var(--ts-muted); font-size: .97rem; line-height: 1.6; }
.ts-session .ts-session__meta { margin-top: auto; padding-top: .6rem; font-size: .8rem; color: var(--ts-text); opacity: .7; letter-spacing: .02em; }
@media (max-width: 980px) { .ts-sessions { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .ts-sessions { grid-template-columns: 1fr; } }

.ts-ev { align-self: flex-start; font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding: .28rem .6rem; border-radius: 999px; border: 1px solid currentColor; }
.ts-ev--well { color: var(--ts-shallows); }
.ts-ev--promising { color: var(--ts-moon); }
.ts-ev--early { color: var(--ts-sand); }
.ts-ev--mixed { color: var(--ts-ember); }

/* Planner */
.ts-planner { margin-top: clamp(2.5rem, 5vw, 4rem); display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(1.5rem, 4vw, 3.5rem); padding: clamp(1.5rem, 4vw, 3rem); border-radius: calc(var(--ts-r) + 8px); background: linear-gradient(160deg, rgba(201,188,255,.10), rgba(79,209,197,.05) 60%, rgba(6,13,25,.2)); border: 1px solid var(--ts-stroke); }
.ts-planner h3 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: .8rem; }
.ts-planner__controls { display: grid; gap: 1.2rem; margin-top: 1.6rem; }
.ts-planner__foot { grid-column: 1 / -1; }
.ts-field { display: flex; flex-direction: column; gap: .5rem; font-size: .9rem; color: var(--ts-muted); }
.ts-field span { display: flex; justify-content: space-between; }
.ts-field output { color: var(--ts-text); font-family: var(--ts-display); font-weight: 600; }
.ts-field input[type="time"] { font: 600 1.6rem/1 var(--ts-display); color: var(--ts-text); background: rgba(6,13,25,.55); border: 1px solid var(--ts-stroke); border-radius: 14px; padding: .7rem 1rem; color-scheme: dark; max-width: 11rem; }
.ts-field input[type="range"] { accent-color: var(--ts-moon); width: 100%; }
.ts-field--inline { flex-direction: row; align-items: center; gap: 1rem; }
.ts-planner__table { list-style: none; padding: 0; margin: 0; position: relative; }
.ts-planner__table::before { content: ""; position: absolute; left: 4.6rem; top: .8rem; bottom: .8rem; width: 1px; background: linear-gradient(var(--ts-dusk), var(--ts-moon), var(--ts-shallows)); opacity: .6; }
.ts-planner__table li { display: grid; grid-template-columns: 4rem 1fr; gap: 1.3rem; padding: .7rem 0; align-items: baseline; position: relative; }
.ts-planner__table li::before { content: ""; position: absolute; left: calc(4.6rem - 4px); top: 1.15rem; width: 9px; height: 9px; border-radius: 50%; background: var(--ts-midnight); border: 2px solid var(--k, var(--ts-moon)); }
.ts-planner__table time { font-family: var(--ts-display); font-weight: 600; font-variant-numeric: tabular-nums; font-size: 1.05rem; }
.ts-planner__table b { display: block; font-weight: 600; font-size: 1rem; padding-left: .9rem; }
.ts-planner__table small { display: block; color: var(--ts-muted); font-size: .86rem; padding-left: .9rem; line-height: 1.5; }
@media (max-width: 860px) { .ts-planner { grid-template-columns: 1fr; } }

/* Split chapters */
.ts-split { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.ts-split--rev { grid-template-columns: .9fr 1.1fr; }
@media (max-width: 900px) { .ts-split, .ts-split--rev { grid-template-columns: 1fr; } .ts-split--rev > :first-child { order: 2; } }
.ts-ticks { list-style: none; padding: 0; margin: 1.8rem 0 0; display: grid; gap: .75rem; }
.ts-ticks li { padding-left: 1.8rem; position: relative; color: var(--ts-text); line-height: 1.5; }
.ts-ticks li::before { content: ""; position: absolute; left: 0; top: .55em; width: 14px; height: 6px; border-radius: 6px 6px 0 0; border: 2px solid var(--ts-moon); border-bottom: 0; }

/* Player */
.ts-player { position: relative; border-radius: 32px; padding: 2.2rem 1.8rem 2rem; background: radial-gradient(120% 90% at 50% 0%, rgba(201,188,255,.14), rgba(6,13,25,.85) 70%); border: 1px solid var(--ts-stroke); text-align: center; display: grid; gap: 1.1rem; justify-items: center; overflow: hidden; }
.ts-player__orb { width: 180px; height: 180px; position: relative; margin-bottom: .6rem; }
.ts-player__orb i { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(201,188,255,.35); transform: scale(.55); opacity: 0; }
.ts-player__orb::after { content: ""; position: absolute; inset: 38%; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #fff, var(--ts-moon) 45%, #6B5BD6); box-shadow: 0 0 60px 10px rgba(201,188,255,.35); transition: transform 1.2s ease; }
.ts-player.is-playing .ts-player__orb i { animation: ts-ripple 9s ease-out infinite; }
.ts-player.is-playing .ts-player__orb i:nth-child(2) { animation-delay: 3s; }
.ts-player.is-playing .ts-player__orb i:nth-child(3) { animation-delay: 6s; }
.ts-player.is-playing .ts-player__orb::after { animation: ts-swell 10s ease-in-out infinite; }
@keyframes ts-ripple { 0% { transform: scale(.45); opacity: .9; } 100% { transform: scale(1.15); opacity: 0; } }
@keyframes ts-swell { 0%, 100% { transform: scale(.9); } 50% { transform: scale(1.18); } }
@media (prefers-reduced-motion: reduce) { .ts-player.is-playing .ts-player__orb i, .ts-player.is-playing .ts-player__orb::after { animation: none; } }
.ts-player__choices { display: inline-flex; background: rgba(6,13,25,.6); border: 1px solid var(--ts-stroke); border-radius: 999px; padding: 4px; }
.ts-player__choices button { background: none; border: 0; color: var(--ts-muted); font: 600 .9rem var(--ts-display); padding: .55rem 1.1rem; border-radius: 999px; cursor: pointer; }
.ts-player__choices button[aria-checked="true"] { background: var(--ts-moon); color: var(--ts-on-moon); }
.ts-player__play { min-width: 9rem; justify-content: center; }
.ts-player .ts-field--inline { width: 100%; max-width: 18rem; }
.ts-player .ts-small { max-width: 22rem; }

/* Low tide: the red-shifted chapter */
.ts-low { color: #F1D4CF; }
.ts-low .ts-chapter__time { -webkit-text-stroke-color: rgba(233,151,140,.6); }
.ts-low .ts-serif, .ts-low .ts-eyebrow { color: var(--ts-ember); }
.ts-low .ts-lead { color: #C9A9A4; }
.ts-steps { list-style: none; padding: 0; margin: 3rem 0 2.5rem; display: grid; gap: 1rem; counter-reset: step; }
.ts-steps li { display: grid; grid-template-columns: 3rem 1fr; column-gap: 1rem; padding: 1.4rem 1.5rem; border-radius: 20px; background: rgba(40, 10, 12, .35); border: 1px solid rgba(233,151,140,.18); }
.ts-steps li::before { counter-increment: step; content: counter(step); grid-row: span 2; font: 300 2.2rem/1 var(--ts-display); color: var(--ts-ember); }
.ts-steps b { font-family: var(--ts-display); font-weight: 600; font-size: 1.08rem; }
.ts-steps span { color: #C9A9A4; font-size: .97rem; margin-top: .3rem; }
.ts-low .ts-muted { color: #A88E8A; }

/* Dreams */
.ts-dreamcard { position: relative; padding: 2rem 1.8rem; border-radius: 26px; background: linear-gradient(150deg, rgba(120, 96, 220, .22), rgba(10, 8, 34, .9)); border: 1px solid rgba(201,188,255,.25); box-shadow: 0 40px 80px -30px rgba(80, 60, 200, .55); transform: rotate(-2deg); }
.ts-dreamcard::before { content: ""; position: absolute; inset: -40px -30px auto auto; width: 120px; height: 120px; border-radius: 50%; background: radial-gradient(circle, rgba(201,188,255,.35), transparent 70%); filter: blur(6px); }
.ts-dreamcard__date { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ts-moon); }
.ts-dreamcard__text { font-family: var(--ts-serif); font-style: italic; font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.45; margin-top: 1rem !important; color: #ECE7FF; }
.ts-dreamcard__text em { color: var(--ts-moon); }
.ts-dreamcard__tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.4rem !important; }
.ts-dreamcard__tags span { font-size: .75rem; padding: .3rem .7rem; border-radius: 999px; background: rgba(201,188,255,.12); color: var(--ts-moon); }

/* Morning tide chart */
.ts-tidechart { margin: 0 0 clamp(2rem, 4vw, 3rem); padding: clamp(1rem, 3vw, 2rem); border-radius: calc(var(--ts-r) + 6px); background: rgba(6,13,25,.55); border: 1px solid var(--ts-stroke); }
.ts-tidechart svg { width: 100%; height: auto; display: block; }
.ts-tidechart__legend { display: flex; flex-wrap: wrap; gap: .4rem 1.3rem; margin-top: 1rem; color: var(--ts-text); }
.ts-tidechart__legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: .45rem; vertical-align: -1px; }
.k-awake { background: var(--ts-dusk); } .k-rem { background: var(--ts-moon); } .k-core { background: var(--ts-shallows); } .k-deep { background: #2D6FA8; }
.ts-tidechart__legend .ts-muted { flex-basis: 100%; }
.ts-cards3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.ts-card { padding: 1.7rem; border-radius: var(--ts-r); background: var(--ts-glass); border: 1px solid var(--ts-stroke); }
.ts-card h3 { margin-bottom: .6rem; }
.ts-card p { color: var(--ts-muted); font-size: .97rem; }
@media (max-width: 900px) { .ts-cards3 { grid-template-columns: 1fr; } }
.ts-wearables { margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: 2rem; border-top: 1px solid var(--ts-stroke); }
.ts-wearables ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.5rem; }
@media (max-width: 1100px) { .ts-wearables ul { grid-template-columns: repeat(3, 1fr); } }
.ts-wearables b { display: block; font-family: var(--ts-display); font-size: 1.35rem; font-weight: 600; letter-spacing: -.01em; }
.ts-wearables span { color: var(--ts-muted); font-size: .92rem; }
@media (max-width: 760px) { .ts-wearables ul { grid-template-columns: 1fr; } }

/* Facts */
.ts-factgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin: 2.6rem 0 2.2rem; }
.ts-fact { padding: 1.8rem 1.6rem; border-radius: var(--ts-r); background: linear-gradient(180deg, rgba(242,214,162,.08), rgba(6,13,25,.3)); border: 1px solid rgba(242,214,162,.18); }
.ts-fact b { display: block; font: 600 clamp(2.2rem, 4vw, 3rem)/1 var(--ts-display); color: var(--ts-sand); letter-spacing: -.03em; margin-bottom: .8rem; }
.ts-fact span { color: var(--ts-muted); font-size: .96rem; }
@media (max-width: 860px) { .ts-factgrid { grid-template-columns: 1fr; } }

/* Download and family */
.ts-download__card { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(2rem, 5vw, 4rem); padding: clamp(2rem, 5vw, 4rem); border-radius: 36px; background: linear-gradient(135deg, rgba(243,166,131,.18), rgba(201,188,255,.14) 45%, rgba(79,209,197,.10)); border: 1px solid var(--ts-stroke); }
.ts-download__card .ts-btn { margin-top: 2rem; }
.ts-download__card .ts-btn[aria-disabled="true"] { cursor: default; }
.ts-family { display: grid; gap: .7rem; align-content: start; }
.ts-family__app { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 1rem 1.2rem; border-radius: 16px; background: rgba(6,13,25,.5); border: 1px solid var(--ts-stroke); border-left: 3px solid var(--c); color: var(--ts-text) !important; text-decoration: none; transition: transform .2s; }
a.ts-family__app:hover { transform: translateX(4px); }
.ts-family__app b { font-family: var(--ts-display); font-weight: 600; }
.ts-family__app span { color: var(--ts-muted); font-size: .88rem; }
.ts-family__app--here { background: rgba(201,188,255,.12); }
@media (max-width: 860px) { .ts-download__card { grid-template-columns: 1fr; } }

/* Footer */
.ts-footer { position: relative; z-index: 1; border-top: 1px solid var(--ts-stroke); padding: 4rem 0 2rem; background: rgba(6,13,25,.85); }
.ts-footer__grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 2rem; }
.ts-footer__grid p + p { margin-top: .8rem; }
.ts-footer__brand { font-family: var(--ts-display); font-size: 1.3rem; margin-bottom: .8rem !important; }
.ts-footer__brand b { color: var(--ts-moon); }
.ts-footlinks { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.ts-footlinks a { color: var(--ts-text) !important; text-decoration: none; font-size: .95rem; opacity: .85; }
.ts-footlinks a:hover { opacity: 1; color: var(--ts-moon) !important; }
.ts-footer__base { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .8rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--ts-stroke); }
@media (max-width: 860px) { .ts-footer__grid { grid-template-columns: 1fr 1fr; } .ts-footer__grid > :first-child { grid-column: 1 / -1; } }

/* Inner pages */
.ts-page-hero { padding: 150px 0 clamp(2.5rem, 6vw, 4.5rem); position: relative; }
.ts-page-hero h1 { font-size: clamp(2.5rem, 6.4vw, 5rem); max-width: 16ch; margin-top: 1rem !important; }
.ts-page-hero .ts-lead { max-width: 44rem; }
.ts-toc { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2rem; }
.ts-toc a { font-size: .86rem; padding: .45rem .9rem; border-radius: 999px; border: 1px solid var(--ts-stroke); color: var(--ts-text) !important; text-decoration: none; }
.ts-toc a:hover { border-color: var(--ts-moon); }
.ts-legend { display: flex; flex-wrap: wrap; gap: 1rem 1.6rem; margin-top: 1.8rem; padding: 1.1rem 1.3rem; border-radius: 16px; background: rgba(18,30,58,.45); border: 1px solid var(--ts-stroke); font-size: .9rem; color: var(--ts-muted); }
.ts-legend .ts-ev { margin-right: .5rem; }
.ts-block { padding: clamp(3rem, 6vw, 5rem) 0; border-top: 1px solid var(--ts-stroke); }
.ts-block > .ts-wrap > h2 { margin-bottom: .5rem; }
.ts-block__intro { color: var(--ts-muted); max-width: 46rem; margin-top: .8rem !important; }
.ts-claims { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.1rem; margin-top: 2.2rem; }
.ts-claim { padding: 1.6rem 1.5rem 1.4rem; border-radius: 20px; background: var(--ts-glass); border: 1px solid var(--ts-stroke); display: flex; flex-direction: column; gap: .7rem; }
.ts-claim h3 { font-size: 1.12rem; }
.ts-claim p { color: var(--ts-muted); font-size: .96rem; line-height: 1.62; }
.ts-claim .ts-src { margin-top: auto; padding-top: .5rem; font-size: .8rem; color: var(--ts-text); opacity: .8; }
.ts-claim .ts-src a { color: var(--ts-moon); }
.ts-claim--wide { grid-column: 1 / -1; }
@media (max-width: 820px) { .ts-claims { grid-template-columns: 1fr; } }
.ts-note { margin-top: 2rem; padding: 1.3rem 1.4rem; border-radius: 16px; border-left: 3px solid var(--ts-sand); background: rgba(242,214,162,.06); color: var(--ts-text); font-size: .96rem; }
.ts-note--warn { border-left-color: var(--ts-ember); background: rgba(233,151,140,.07); }
.ts-note p + p { margin-top: .6rem; }
.ts-refs { margin-top: 1.5rem; font-size: .86rem; color: var(--ts-muted); padding-left: 1.2rem; }
.ts-refs li { margin: .45rem 0; }
.ts-table { width: 100%; border-collapse: collapse; margin-top: 2rem; font-size: .95rem; }
.ts-table th, .ts-table td { text-align: left; padding: .9rem .8rem; border-bottom: 1px solid var(--ts-stroke); vertical-align: top; }
.ts-table th { font-family: var(--ts-display); font-weight: 600; color: var(--ts-moon); font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; }
.ts-table td { color: var(--ts-muted); }
.ts-table td:first-child { color: var(--ts-text); font-weight: 600; }
.ts-tablewrap { overflow-x: auto; }
.ts-redflags { list-style: none; padding: 0; margin: 1.8rem 0 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem; }
.ts-redflags li { padding: 1.1rem 1.2rem; border-radius: 16px; background: rgba(233,151,140,.07); border: 1px solid rgba(233,151,140,.22); }
.ts-redflags b { display: block; color: #F6CFC9; margin-bottom: .25rem; font-family: var(--ts-display); font-weight: 600; }
.ts-redflags span { color: var(--ts-muted); font-size: .94rem; }
@media (max-width: 760px) { .ts-redflags { grid-template-columns: 1fr; } }
.ts-prose { padding-top: 140px; padding-bottom: 5rem; }
.ts-prose h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); margin-bottom: 1.5rem; }
.ts-prose p { margin-bottom: 1rem; color: var(--ts-muted); }
.ts-flow { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 2.2rem; border-radius: 20px; overflow: hidden; border: 1px solid var(--ts-stroke); }
.ts-flow > div { padding: 1.4rem 1.3rem; background: rgba(9,16,36,.7); border-right: 1px solid var(--ts-stroke); }
.ts-flow > div:last-child { border-right: 0; }
.ts-flow b { display: block; font-family: var(--ts-display); margin-bottom: .4rem; }
.ts-flow small { display: block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ts-moon); margin-bottom: .6rem; }
.ts-flow p { color: var(--ts-muted); font-size: .92rem; }
@media (max-width: 860px) { .ts-flow { grid-template-columns: 1fr; } .ts-flow > div { border-right: 0; border-bottom: 1px solid var(--ts-stroke); } }

/* Reveal on scroll */
.ts-reveal { opacity: 0; transform: translateY(18px); transition: opacity .9s ease, transform .9s ease; }
.ts-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .ts-reveal { opacity: 1; transform: none; transition: none; } }

/* Promises (from what users complain about elsewhere) */
.ts-promises { list-style: none; padding: 0; margin: clamp(2rem, 4vw, 3rem) 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.ts-promises li { padding: 1.3rem 1.3rem 1.2rem; border-radius: 18px; background: rgba(79,209,197,.05); border: 1px solid rgba(79,209,197,.18); }
.ts-promises b { display: block; font-family: var(--ts-display); font-weight: 600; margin-bottom: .35rem; color: var(--ts-shallows); }
.ts-promises span { color: var(--ts-muted); font-size: .92rem; line-height: 1.5; }
@media (max-width: 980px) { .ts-promises { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ts-promises { grid-template-columns: 1fr; } }

/* ---------- App screens (CSS design previews) ---------- */
.ts-screens { padding-bottom: clamp(3rem, 6vw, 5rem); }
.ts-screens__row { margin-top: clamp(2rem, 4vw, 3.5rem); overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 1.5rem 0 1rem; }
.ts-screens__row::-webkit-scrollbar { display: none; }
.ts-screens__track { display: flex; gap: clamp(1.5rem, 3vw, 2.75rem); align-items: flex-end; padding: 0 max(var(--ts-gutter), calc((100vw - 1240px) / 2 + var(--ts-gutter))); width: max-content; }
.ts-screens__track figure { margin: 0; scroll-snap-align: center; flex: none; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.ts-screens__track figcaption { font-size: .82rem; color: var(--ts-muted); text-align: center; max-width: 14rem; }
.ts-screens__note { margin-top: .5rem; }

/* iPhone */
.ts-phone { width: 262px; }
.ts-phone__frame { width: 262px; height: 548px; border-radius: 42px; background: #0A1220; border: 7px solid #1C2A3A; box-shadow: 0 30px 70px -25px rgba(0,0,0,.8), inset 0 0 0 1px rgba(255,255,255,.06); position: relative; overflow: hidden; }
.ts-phone__notch { position: absolute; top: 9px; left: 50%; transform: translateX(-50%); width: 84px; height: 24px; border-radius: 14px; background: #000; z-index: 3; }
.ts-phone__screen { position: absolute; inset: 0; padding: 44px 16px 14px; display: flex; flex-direction: column; gap: .45rem; font-family: var(--ts-body); color: var(--ts-text); background: linear-gradient(180deg, #0E1A32 0%, var(--ts-midnight) 60%); overflow: hidden; }
.ts-app--dark { background: radial-gradient(120% 70% at 50% 20%, rgba(201,188,255,.16), var(--ts-midnight) 70%); align-items: center; text-align: center; }
.ts-app--night { background: #0B070D; color: #F1D4CF; }
.ts-app__status { position: absolute; top: 12px; left: 22px; right: 22px; display: flex; justify-content: space-between; font: 600 .7rem var(--ts-display); }
.ts-app__sig { display: inline-flex; gap: 2px; align-items: flex-end; }
.ts-app__sig i { width: 3px; background: currentColor; border-radius: 1px; height: 5px; } .ts-app__sig i:nth-child(2) { height: 8px; } .ts-app__sig i:nth-child(3) { height: 11px; }
.ts-app__eyebrow { font: 600 .58rem var(--ts-display); letter-spacing: .14em; text-transform: uppercase; color: var(--ts-muted); margin-top: .35rem; }
.ts-app--night .ts-app__eyebrow { color: var(--ts-ember); }
.ts-app__title { font: 600 1.25rem/1.1 var(--ts-display); letter-spacing: -.02em; }
.ts-app__title em { font: italic 400 1.25rem var(--ts-serif); color: var(--ts-moon); }
.ts-app--night .ts-app__title em { color: var(--ts-ember); }
.ts-app__title--c { text-align: center; margin-top: .2rem; }
.ts-app__sub { font-size: .74rem; color: var(--ts-muted); line-height: 1.4; }
.ts-app--night .ts-app__sub { color: #C9A9A4; }
.ts-app__sub--c { text-align: center; }
.ts-app__card { display: flex; align-items: center; gap: .7rem; padding: .7rem .8rem; border-radius: 16px; background: rgba(201,188,255,.10); border: 1px solid rgba(201,188,255,.25); }
.ts-app__card--hero { margin: .3rem 0 .4rem; position: relative; padding-right: 5.4rem; }
.ts-app__card--hero .ts-app__ev { position: absolute; right: .7rem; top: 50%; transform: translateY(-50%); margin: 0; }
.ts-app__card > div { min-width: 0; } .ts-app__card b { display: block; font: 600 .84rem var(--ts-display); white-space: nowrap; } .ts-app__card span { font-size: .66rem; color: var(--ts-muted); white-space: nowrap; }
.ts-app__card .ts-app__ev { margin-left: auto; }
.ts-app__tide { width: 38px; height: 38px; border-radius: 50%; background: var(--ts-harbour); position: relative; overflow: hidden; flex: none; }
.ts-app__tide i { position: absolute; left: -10%; right: -10%; height: 60%; bottom: -10%; background: var(--ts-moon); border-radius: 45% 45% 0 0; opacity: .5; }
.ts-app__tide i:nth-child(2) { bottom: -20%; opacity: .35; } .ts-app__tide i:nth-child(3) { bottom: 0; opacity: .8; height: 45%; }
.ts-app__ev { font: 600 .48rem var(--ts-display); letter-spacing: .08em; text-transform: uppercase; color: var(--ts-moon); border: 1px solid currentColor; border-radius: 999px; padding: .15rem .4rem; white-space: nowrap; }
.ts-app__ev--early { color: var(--ts-sand); }
.ts-app__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 1px; border-radius: 14px; overflow: hidden; background: var(--ts-stroke); border: 1px solid var(--ts-stroke); }
.ts-app__list li { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; align-items: center; column-gap: .5rem; padding: .5rem .7rem; background: rgba(9,16,36,.9); }
.ts-app__list b { grid-column: 1; grid-row: 1; font: 600 .76rem var(--ts-display); white-space: nowrap; } .ts-app__list span { grid-column: 1; grid-row: 2; font-size: .62rem; color: var(--ts-muted); white-space: nowrap; } .ts-app__list em { grid-column: 2; grid-row: 1 / span 2; font-style: normal; }
.ts-app__tabs { margin-top: auto; display: flex; justify-content: space-between; padding: .5rem .3rem 0; border-top: 1px solid var(--ts-stroke); font: 600 .6rem var(--ts-display); color: var(--ts-muted); }
.ts-app__tabs .is-on { color: var(--ts-moon); }
.ts-app__orb { width: 120px; height: 120px; position: relative; margin: .6rem auto .2rem; }
.ts-app__orb i { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(201,188,255,.35); transform: scale(.7); opacity: .6; }
.ts-app__orb i:nth-child(2) { transform: scale(.85); opacity: .35; } .ts-app__orb i:nth-child(3) { transform: scale(1); opacity: .18; }
.ts-app__orb b { position: absolute; inset: 36%; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #fff, var(--ts-moon) 45%, #6B5BD6); box-shadow: 0 0 40px 8px rgba(201,188,255,.35); }
.ts-app__chips { display: flex; gap: .3rem; justify-content: center; margin-top: .4rem; }
.ts-app__chips span, .ts-app__row2 span { font: 600 .62rem var(--ts-display); padding: .32rem .6rem; border-radius: 999px; border: 1px solid var(--ts-stroke); color: var(--ts-muted); }
.ts-app__chips .is-on, .ts-app__row2 .is-on { background: var(--ts-moon); color: var(--ts-on-moon); border-color: transparent; }
.ts-app__slider { width: 80%; height: 4px; border-radius: 4px; background: var(--ts-stroke); margin: .9rem auto .5rem; position: relative; }
.ts-app__slider i { display: block; height: 100%; border-radius: 4px; background: var(--ts-moon); position: relative; }
.ts-app__slider i::after { content: ""; position: absolute; right: -7px; top: -5px; width: 14px; height: 14px; border-radius: 50%; background: #fff; }
.ts-app__row2 { display: flex; gap: .3rem; justify-content: center; }
.ts-app__big { margin-top: auto; align-self: stretch; text-align: center; font: 600 .9rem var(--ts-display); padding: .8rem; border-radius: 999px; background: var(--ts-moon); color: var(--ts-on-moon); }
.ts-app__big--ember { background: var(--ts-ember); color: #2A0E0B; }
.ts-app__foot { font-size: .62rem; color: var(--ts-muted); text-align: center; }
.ts-app__foot--ember { color: #A88E8A; }
.ts-app__steps { list-style: none; padding: 0; margin: .4rem 0 0; display: grid; gap: .5rem; }
.ts-app__steps li { display: flex; gap: .7rem; align-items: center; padding: .65rem .75rem; border-radius: 14px; background: rgba(40,10,12,.5); border: 1px solid rgba(233,151,140,.2); }
.ts-app__steps i { font: 300 1.3rem var(--ts-display); color: var(--ts-ember); }
.ts-app__steps b { display: block; font: 600 .8rem var(--ts-display); } .ts-app__steps span { font-size: .64rem; color: #C9A9A4; }
.ts-app__three { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; margin: .4rem 0 .2rem; }
.ts-app__three div { padding: .5rem .3rem; border-radius: 12px; background: var(--ts-glass); border: 1px solid var(--ts-stroke); text-align: center; }
.ts-app__three b { display: block; font: 600 1rem var(--ts-display); letter-spacing: -.02em; } .ts-app__three span { font-size: .58rem; color: var(--ts-muted); text-transform: uppercase; letter-spacing: .08em; }
.ts-app__band { color: var(--ts-shallows); }
.ts-app__chart { width: 100%; height: auto; display: block; border-radius: 12px; background: rgba(6,13,25,.6); border: 1px solid var(--ts-stroke); }
.ts-app__hint { font-size: .58rem; color: var(--ts-muted); }
.ts-app__tags { display: flex; flex-wrap: wrap; gap: .3rem; }
.ts-app__tags span { font-size: .6rem; padding: .25rem .5rem; border-radius: 999px; border: 1px solid var(--ts-stroke); color: var(--ts-muted); }
.ts-app__tags .is-on { background: rgba(79,209,197,.15); color: var(--ts-shallows); border-color: rgba(79,209,197,.4); }
.ts-app__mood { display: flex; align-items: center; gap: .5rem; font-size: .68rem; color: var(--ts-muted); margin-top: .1rem; }
.ts-app__mood i { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--ts-muted); opacity: .5; font-size: 0; } .ts-app__mood i.is-on { opacity: 1; border-color: var(--ts-sand); background: rgba(242,214,162,.3); }

/* Apple Watch */
.ts-watch { width: 190px; align-items: center; }
.ts-watch__band { width: 92px; height: 54px; background: linear-gradient(90deg, #141C2A, #22304A, #141C2A); border-radius: 10px; }
.ts-watch__band:first-child { border-radius: 10px 10px 4px 4px; } .ts-watch__band:nth-child(3) { border-radius: 4px 4px 10px 10px; }
.ts-watch__case { width: 176px; height: 214px; border-radius: 48px; background: #0B0F16; border: 6px solid #2A3545; position: relative; box-shadow: 0 25px 50px -20px rgba(0,0,0,.8), inset 0 0 0 1px rgba(255,255,255,.05); }
.ts-watch__crown { position: absolute; right: -13px; top: 52px; width: 9px; height: 30px; border-radius: 4px; background: #2A3545; }
.ts-watch__btn { position: absolute; right: -11px; top: 98px; width: 6px; height: 40px; border-radius: 3px; background: #2A3545; }
.ts-watch__screen { position: absolute; inset: 0; border-radius: 42px; background: #000; padding: 20px 16px 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; text-align: center; color: var(--ts-text); }
.ts-w__eyebrow { font: 600 .56rem var(--ts-display); letter-spacing: .14em; text-transform: uppercase; color: var(--ts-moon); }
.ts-w__sub { font-size: .66rem; color: var(--ts-text); } .ts-w__sub--muted { color: var(--ts-muted); font-size: .6rem; }
.ts-w__ring { width: 96px; height: 96px; border-radius: 50%; position: relative; display: grid; place-items: center; margin: .2rem 0; }
.ts-w__ring i { position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--ts-moon); opacity: .9; box-shadow: 0 0 30px rgba(201,188,255,.35), inset 0 0 24px rgba(201,188,255,.25); }
.ts-w__ring b { font: 600 .78rem var(--ts-display); }
.ts-w__big { font: 600 1.9rem/1 var(--ts-display); letter-spacing: -.03em; margin-top: .2rem; }
.ts-w__chart { width: 120px; height: auto; margin-top: .3rem; }
.ts-w__mic { width: 70px; height: 70px; border-radius: 50%; background: var(--ts-moon); display: grid; place-items: center; margin: .4rem 0; box-shadow: 0 0 30px rgba(201,188,255,.4); }
.ts-w__mic i { width: 14px; height: 24px; border-radius: 7px; background: var(--ts-on-moon); position: relative; }
.ts-w__mic i::after { content: ""; position: absolute; left: -6px; right: -6px; bottom: -8px; height: 14px; border: 2px solid var(--ts-on-moon); border-top: 0; border-radius: 0 0 13px 13px; }
@media (prefers-reduced-motion: no-preference) {
	.ts-w__ring i { animation: ts-wring 6s ease-in-out infinite; }
	@keyframes ts-wring { 0%,100% { transform: scale(.78); } 50% { transform: scale(1); } }
}

/* Journal list (templates/home.html) */
.ts-prose .wp-block-post-template { list-style: none; padding: 0; margin: 2rem 0 0; display: grid; gap: 2rem; }
.ts-prose .wp-block-post-title { font-size: 1.5rem; margin: 0 0 .4rem; }
.ts-prose .wp-block-post-title a { color: var(--ts-text); text-decoration: none; }
.ts-prose .wp-block-post-title a:hover { color: var(--ts-moon); }
.ts-prose .wp-block-post-date { display: block; margin-bottom: .5rem; }
.ts-prose .wp-block-query-pagination { margin-top: 2.5rem; display: flex; gap: 1.5rem; }
