/* Photo Composition — layered, gently animated */
.tbw-hv { position: relative; width: 100%; max-width: 560px; margin-inline: auto; padding: 2.5rem 1.5rem 3rem 2.5rem; padding-inline: 2.5rem 1.5rem; }
.tbw-hv__main { position: relative; overflow: hidden; aspect-ratio: 4 / 4.9; box-shadow: var(--tb-shadow-lg);
	border-start-start-radius: var(--tb-radius-xl); border-start-end-radius: 240px; border-end-end-radius: var(--tb-radius-xl); border-end-start-radius: var(--tb-radius-xl); }
.tbw-hv--arch .tbw-hv__main { border-radius: 1000px 1000px var(--tb-radius-xl) var(--tb-radius-xl); }
.tbw-hv__img { width: 100%; height: 100%; object-fit: cover; }

/* Floating round photo */
.tbw-hv__sub { position: absolute; inset-inline-start: 0; bottom: 0; width: 42%; aspect-ratio: 1; border-radius: 50%; padding: 8px; background: var(--tb-bg); box-shadow: var(--tb-shadow); animation: tb-float 8s ease-in-out infinite; }
.tbw-hv__subimg { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

/* Glass card */
.tbw-hv__card {
	position: absolute; inset-inline-start: 0; top: 16%; display: flex; align-items: center; gap: .85rem; padding: .8rem 1.2rem .8rem .8rem; padding-inline: .8rem 1.2rem;
	border-radius: 22px; background: rgba(255, 255, 255, .82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	border: 1px solid rgba(255, 255, 255, .7); box-shadow: var(--tb-shadow); animation: tb-float 7s ease-in-out .8s infinite;
}
:root[data-theme="dark"] .tbw-hv__card { background: rgba(12, 61, 68, .78); border-color: rgba(255, 255, 255, .12); }
.tbw-hv__card .tbw-ichip { width: 48px; height: 48px; border-radius: 14px; }
.tbw-hv__card .tbw-ichip .tbw-icon { width: 26px; height: 26px; }
.tbw-hv__cardtext { display: grid; font-size: .8rem; line-height: 1.35; color: var(--tb-muted); }
.tbw-hv__cardtext strong { font-size: .95rem; font-weight: 600; color: var(--tb-heading); }

/* Rotating badge */
.tbw-hv__badge { position: absolute; inset-inline-end: 0; bottom: 14%; width: 128px; height: 128px; display: grid; place-items: center; border-radius: 50%; background: var(--tb-brand); color: var(--tb-on-brand); box-shadow: var(--tb-shadow); }
.tbw-hv__badge > svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: tbw-spin 22s linear infinite; }
.tbw-hv__badge text { font: 600 9.5px/1 var(--tb-font-sans); fill: currentColor; text-transform: uppercase; }
.tbw-hv__badgeicon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--tb-gold); color: #10282b; }
.tbw-hv__badgeicon .tbw-icon { width: 28px; height: 28px; }
@keyframes tbw-spin { to { transform: rotate(360deg); } }
[dir="rtl"] .tbw-hv__badge > svg { animation-direction: reverse; }

@media (max-width: 767.98px) {
	.tbw-hv { padding: 1.5rem .5rem 2.5rem 1.25rem; padding-inline: 1.25rem .5rem; }
	.tbw-hv__badge { width: 100px; height: 100px; }
	.tbw-hv__badgeicon { width: 42px; height: 42px; }
	.tbw-hv__card { top: 8%; padding: .6rem .9rem .6rem .6rem; }
}
